๐Ÿ’ป ๊ณต๋ถ€ ๊ธฐ๋ก/โ˜• Java

Java | DB insert

  • -

์ตœ๊ทผ์— ์ž๋ฐ”์˜ ํฌ์ŠคํŒ… ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๋ฐฐ์› ๋‹ค.

 

 

 

ํ•œ ๋ฒˆ ๋ฐฐ์šด ๊ฒƒ์œผ๋กœ๋Š” ํ„ฑ์—†์ด ๋ถ€์กฑํ•ด..

 

 

 

์ž๋ฐ”๋Š”.. ์‚ฌ์ „ ์„ค์ •์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๋‹ค..

๊ทธ๋งŒํผ ๋””ํ…Œ์ผํ•˜๊ณ  ์—๋Ÿฌ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค..

 

์•Œ์•„์„œ ๋‹ค ํ•ด์ฃผ๋˜ python, djang ๊ฐ€ ๋ณด๊ณ ์‹ถ์–ด์กŒ๋‹ค..

ํ˜ผ์ž์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ ฅ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๋“ฏ ํ•˜๋‹ค..

 

๊ทธ๋ž˜๋„ ์—ด์‹ฌํžˆ ํ•ด๋ณด์ž.

 


+ 2023. 2. 28. ์ถ”๊ฐ€๊ธ€)

๊ณต๋ถ€์šฉ์œผ๋กœ ๋‚จ๊ธด ๊ธ€๋กœ์จ ๋ณด๋Ÿฌ ์˜ค์‹  ๋ถ„๋“ค์—๊ฒŒ๋Š” ํฐ ๋„์›€์ด ๋˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ ๊ทธ๋ƒฅ ์ด๋ ‡๊ฒŒ ๊ณต๋ถ€ํ•˜๋Š”๊ฐ€๋ณด๋‹ค ํ•˜๊ณ  ๋ด์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค 

 


 

๋ณต์Šต

1. HTML(.html)

๊ฐ„๋‹จํ•œ html ์„ ๋งŒ๋“ค์–ด์„œ ์ž…๋ ฅ๊ณผ ๋ณด๋‚ด๊ธฐ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋‹ค.

<form action="test-input-post" method="post">
    <h3>์ž…๋ ฅํ•˜์„ธ์š” 1 : <input id="test-input1" name="testInput1" type="text" /></h3>
    <h3>์ž…๋ ฅํ•˜์„ธ์š” 2 : <input id="test-input2" name="testInput2" type="text" /></h3>
    <h3>์ž…๋ ฅํ•˜์„ธ์š” 3 : <input id="test-input3" name="testInput3" type="text" /></h3>

    <button type="submit">๋ณด๋‚ด๊ธฐ</button>
</form>
  • action : controller ์—์„œ ๋ฐ›์„ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค ex) test-input-post.do
  • method : get, post ํƒ€์ž…์„ ์„ค์ •ํ•œ๋‹ค.
  • ํŒŒ์ผ๋ช… : home.jsp

 

2. controller(.java)

1) html ๊ฒฝ๋กœ๋ฅผ ์„ค์ •

  • ์กฐ๊ฑด : ๊ธฐ๋ณธ๊ฐ’ ( / ) ์œผ๋กœ ํŽ˜์ด์ง€ ์ด๋™
  • ํŒŒ์ผ๋ช… : HomeController.java
@Controller
@RequestMapping("/")

	@RequestMapping(value = "/test-page.do", method = RequestMethod.GET)
	public String testPageGet(Locale locale, Model model) {
		return "home";
	}

 

2) html ์—์„œ ๋ณด๋‚ด๋Š” ์‹ ํ˜ธ๋ฅผ controller ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ

  • form ํƒœ๊ทธ์˜ action ๊ฒฝ๋กœ(test-input-post )๋กœ ์‹ ํ˜ธ ๋ณด๋‚ด๊ธฐ
  • @ResponseBody ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •์ƒ๊ฒฝ๋กœ๋กœ ์ž˜ ์ด๋™ํ•˜๋Š”์ง€ ํ™•์ธ
    • ์ •์ƒ ํ™•์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ์ง€์›Œ์ค€๋‹ค.
	@ResponseBody
	@RequestMapping(value = "/test-input-post.do", method = RequestMethod.POST)
	public String testPagePost(Locale locale, Model model) {
		
		return "home";
	}

๊ฒฝ๋กœ์™€ return ์œผ๋กœ ์ž…๋ ฅํ•œ home ์ด html ๋กœ ์ถœ๋ ฅ๋จ.

 

3. DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ(dbeaver)

  • ๊ธ€์“ด์ด๋Š” postgresql ๋ฅผ ์‚ฌ์šฉ
  • ํŽธ์ง‘๊ธฐ๋Š” DBeaver ์‚ฌ์šฉ

1) db table ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ปฌ๋Ÿผ์„ ์„ค๊ณ„

๋Œ€์ถฉ table ์„ ์„ค๊ณ„ํ•œ๋‹ค. ERD์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•ด๋„ ์ข‹๋‹ค.

2) table ์„ ์ƒ์„ฑํ•˜๊ณ  ์„ค๊ณ„ํ•œ ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€

ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ ์ƒ์„ฑ

3) ์ผ๋ฐ˜์ ์œผ๋กœ table ์—๋Š” ๊ณ ์œ ์˜ id ๊ฐ’์ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์œ„์— ๋ณด์ด๋Š” table ์—๋Š” id ๋ฅผ ๊นœ๋นกํ•˜๊ณ  ๋„ฃ์ง€ ์•Š์•˜๋‹ค. id๋„ ์ถ”๊ฐ€ํ•ด์ฃผ์ž.

  • ๊ณ ์œ  id ์ƒ๊ฐํ•ด๋ณด์•„์•ผํ•  ๊ฒƒ
    1. ๊ณ ์œ ๊ฐ’์ธ id๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ๋Š˜์–ด๋‚˜์•ผํ•œ๋‹ค.
    2. ์ปฌ๋Ÿผ id ๋งŒ ์ถ”๊ฐ€ํ•œ ์ƒํƒœ๋ผ๋ฉด์€ ์ €์žฅํ•˜๋ ค๊ณ  ํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค.
    3. id ์ปฌ๋Ÿผ์— ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

4) ์„ค์ • ๋ฐฉ๋ฒ•

(1) dbeaver ์˜ sql ํŽธ์ง‘๊ธฐ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

(2) ํ•ด๋‹น table ์˜ DDL ์„ ๋ณต์‚ฌํ•˜๊ณ  ๋ถ™์ธ๋‹ค.

์ด๋Ÿฐ ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค.

 

(3) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œํ€€์Šค(Sequence)๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. 

  • ์ž ๊น! ์‹œํ€€์Šค๋ž€?
    • ์œ ์ผ(UNIQUE)ํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์˜ค๋ผํด ๊ฐ์ฒด์ด๋‹ค.
    • ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ๋ณธํ‚ค์™€ ๊ฐ™์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ปฌ๋Ÿผ์„ ์ž๋™์ ์œผ๋กœ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ณดํ†ต PRIMARY KEY ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ•œ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ์— Cache๋˜์—ˆ์„ ๋•Œ SEQUENCE ๊ฐ’์˜ ์•ก์„ธ์Šค ํšจ์œจ์ด ์ฆ๊ฐ€ ํ•œ๋‹ค.
    • SEQUENCE๋Š” ํ…Œ์ด๋ธ”๊ณผ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ €์žฅ๋˜๊ณ  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ SEQUENCE๋ฅผ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์—์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
    • ํ•œ๋งˆ๋””๋กœ ๊ณ ์œ  id ๊ฐ’์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ๋Š” ์˜ค๋ผํด์˜ ๊ฐ์ฒด์ด๋‹ค. (๋‚˜๋„ ์˜ค๋Š˜ ์ฒ˜์Œ ์•Œ์•˜๋‹ค..)

๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•์„ ์ ์šฉํ•ด์„œ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

(4) ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅํ•œ ์‹œํ€€์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด, ์‹œํ€€์Šค ํด๋”์™€ ํ•จ๊ป˜ ์‹œํ€€์Šค ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋œ๋‹ค.

 

(5) ์ถ”๊ฐ€๋œ ์‹œํ€€์Šค๋ฅผ id ์ปฌ๋Ÿผ์— ์ ์šฉํ•œ๋‹ค.

(6) ์‹œํ€€์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ table ์„ ์‚ญ์ œํ•˜๊ณ  ํŽธ์ง‘๊ธฐ์—์„œ ์œ„์˜ ๋ฌธ๋ฒ•์„ ์ ์šฉํ•œ ๋’ค์— CREATE TABLE ๋ฌธ๋ฒ•์„ ์‹คํ–‰ํ•œ๋‹ค.

์‹คํ–‰ํ•˜๋ฉด ์‚ญ์ œ๋œ table ์ž๋ฆฌ์— ๋‹ค์‹œ table ์ด ์ƒ๊ธด๋‹ค.

 

(7) ์‹œํ€€์Šค๊นŒ์ง€ ์ ์šฉํ–ˆ๋‹ค๋ฉด ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด๊ธฐ.

  •  insert into " table ๋ช…" ()  ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • id ๋Š” ์‹œํ€€์Šค๋กœ ์ž๋™ ์ฆ๊ฐ€๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๋„ฃ์ง€ ์•Š๋Š”๋‹ค.
  • values ๋Š” ์ปฌ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋„ฃ๋Š”๋‹ค.


๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ ์‹คํ–‰



์ •์ƒ ์‹คํ–‰ํ•œ ํ™”๋ฉด

table ์—์„œ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

(8) DB์„ค์ • ๋!

 

4. VO ์„ธํŒ…

๋‹ค์‹œ ์ดํด๋ฆฝ์Šค๋กœ ๋Œ์•„์™€์„œ DB ์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

 

๋ฐฐ์šด๋ฐ๋กœ ํ•ด๋ณธ๋‹ค๋ฉด

VO > mappers > service(interface + impl) > DAO ์ˆœ์œผ๋กœ ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. (๊ฐœ์ธ์˜ ์ฐจ๊ฐ€ ์žˆ๋‹ค.)

 

1) VO ์ƒ์„ฑ

๋ณ„๋„ vo ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์•„์˜ฌ name ์„ ์„ค์ •ํ•œ๋‹ค.

name = ์€ ๋˜๋„๋ก ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•œ๋‹ค.

ํ”„๋ก ํŠธ form

VO ์—์„œ ์ƒ์„ฑํ•œ class ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

package com.company.common.vo;

public class TestSettingVO {

	// ํ”„๋ก ํŠธ์—์„œ ๋ฐ›์•„์˜ฌ name ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค.	
	private String test_input1;
	private String test_input2;
	private String test_input3;
}

private ์„ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด source > Generate Getters and Settings ๋ฅผ ๋ˆ„๋ฅด๊ณ ,

(์ปค์„œ๋Š” private ๋ฐ‘์— ๋‘๊ณ  ์‹คํ–‰ํ•˜์ž.)

์ „์ฒด ์„ ํƒ ํ›„ OK ๋ฅผ ํด๋ฆญ

์ •์ƒ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด,

์ด์™€ ๊ฐ™์€ ์ž๋™์™„์„ฑ์ด ๋œ๋‹ค.

์ด์ œ ๋ฐ›์„ ๋ฐ์ดํ„ฐ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ์œผ๋‹ˆ ์ž˜ ๋ฐ›์•„์˜ค๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

source > Generate toString() ์„ ํด๋ฆญํ•œ๋‹ค.

์ž๋™์™„์„ฑํ•ด์ค€๋‹ค. ํŽธํ•˜๋‹ค ^^

๋ˆˆ์œผ๋กœ ๋ณด๊ธฐ ์œ„ํ•ด controller ์—์„œ ์„ค์ •ํ•ด์ค€๋‹ค.

 

๋ฐ›๋Š” ์ฃผ์†Œ์—์„œ ๊ฐ์ฒด์ƒ์„ฑ์„ ํ•˜๊ณ  ํ”„๋ฆฐํŠธ๋กœ ํ™•์ธํ•œ๋‹ค.

์ €์žฅํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ณ  ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€๋ณด๋ฉด console ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋œ๋‹ค.

์ž˜ ๋ฐ›์•„์กŒ๋Š”์ง€๊นŒ์ง€ ํ™•์ธํ–ˆ์œผ๋‹ˆ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€์ž.

 

5. mappers ์„ธํŒ…

mappers ์„ค์ •์€ sqlmap ๋ฐ”๋กœ ์•„๋ž˜ ํ•˜์œ„ ํŒŒ์ผ์ธ mybatis-config ์™€ mappers ํ•˜์œ„ ํŒŒ์ผ example_SQL_psql ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์„ค์ •ํ•œ๋‹ค.

ํŒŒ์ผ ๊ตฌ์กฐ

1) mybatis-config ์„ค์ •

VO ๊ฐ์ฒด๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.

alias = VO ์˜ ํŒŒ์ผ ์ด๋ฆ„ / type = ๊ฒฝ๋กœ

๊ทธ ๋‹ค์Œ์œผ๋กœ mappers ์— example SQL psql ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ ๋ฐ ์„ค์ •ํ•œ๋‹ค.

<resultMap> ์€ ์ปจํŠธ๋กค ์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ์ž๋™์™„์„ฑ์„ ์ด์šฉํ•˜์ž.

  • type : VO ์ด๋ฆ„
  • id : ๊ณ ์œ  ์ด๋ฆ„

๋ณต์‚ฌ ํ›„ ๋ถ™์—ฌ์˜จ ๊ธฐ๋ณธ ํ‹€์—์„œ resultMap ๋งŒ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

๊ทธ ๋‹ค์Œ์œผ๋กœ DB๋กœ insert ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

์ฒ˜์Œ์—๋Š” ๋ญ˜ ์–ด๋”ฐ ์จ์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์“ฐ๋‹ค๋ณด๋ฉด '์•„! ์—ฌ๊ธฐ์—” ์ด๊ฑธ ์“ฐ๋Š”๊ตฌ๋‚˜' ํ•˜๋ฉฐ ์“ฐ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

6. service ์„ธํŒ…

๋จผ์ € service ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

service ์™€ DAO ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
ํŒŒ์ผ ๋‚ด๋ถ€ ์ฝ”๋“œ DAO ์™€ ๋™์ผํ•˜๋‹ค.

๊ทธ ๋‹ค์Œ์œผ๋กœ impl ๊ตฌ์„ฑ 

class ํ˜•์‹์œผ๋กœ service ํŒŒ์ผ๋ช…+Impl ์„ ๋ถ™์—ฌ์„œ ์ƒ์„ฑ
DAO ์™€ Service ๋ฅผ implements ํ•ด์ค€๋‹ค.

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” DAO ์™€ Service ๋ฅผ ๋”ฐ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

 

1) DAOImpl

  • @Repository(value="TestSettingDAO") ์„ค์ •
  • extends EgovAbstractMapper ์œผ๋กœ insert ํ™œ์„ฑ
  • return insert() ์„ค์ •
    • ~psql.xml ์—์„œ DB insert ํ–ˆ๋˜ id ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.

DAOImpl

 

2) ServiceImpl

  • DAO ๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐ€๋Š” ์„ค๊ณ„์™€ Service ๋ฅผ ์ด์šฉํ•ด์„œ ํ•œ๋ฒˆ ์ค‘๊ฐ„์„ ๊ฑฐ์น˜๊ฒŒ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ถ„?
    • ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๊ณต๋ถ€ ํ•„์š”..
  • @Service(value=" * ") ์„ค์ •
  • @Resource(name=" * ") ์„ค์ •
    • private ~DAO ๊ฐ์ฒด๋ช…+DAO; ์„ค์ •
  • return ~DAO ๊ฐ์ฒด insertTestSettingOne() ์„ค์ •

ServiceImpl

 

7. controller VO ์„ค์ •

1) @Resource ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ~Service ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

2) controller.java ํŒŒ์ผ์—์„œ vo ๋ฅผ ์„ค์ •ํ•œ๋‹ค

์–ด๋…ธํ…Œ์ด์…˜(@)ModelAttribute ๋ฅผ ๋ถ™์ด๊ณ , TestSettingVO&nbsp; testSettingVO ๋กœ ๊ฐ์ฒด ์„ค์ •ํ•œ๋‹ค.

3) ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ ํ˜ธ๋ฅผ ์ž˜ ๋ถˆ๋Ÿฌ์˜ค๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

- ๋ฆฌ์†Œ์Šค๋กœ ๋ฐ›์€ private ๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” insertTestSettingOne์˜ ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  parameterType ์œผ๋กœ ๋ฐ›์€ VO ์— ์ €์žฅ๋œ String์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

- print ๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ 0 ๊ณผ 1๋กœ ์‹ ํ˜ธ๋ฅผ ์ž˜ ๋ฐ›๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ์ฐธ๊ณ  : ๋‚˜๋Š” ๋ณด๋‚ด๊ธฐ ํ›„ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ์–ด์„œ redirect ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

8. ์‹คํ–‰

์ž…๋ ฅ!!
console ์— 1 ์ถœ๋ ฅ(์ •์ƒ ์ž‘๋™!)
DB ์—๋„ ์ž˜ ์ €์žฅ๋˜์—ˆ๋‹ค!

 

์ดํ›„์—๋Š” post ์•ˆ์— ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์›ํ•˜๋Š” return ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๊ณ , Service ์—์„œ insert ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์„œ๋ฒ„๋‚˜ ๊ธฐ๋Šฅ์— ๊ด€๋ จํ•œ ๊ฒƒ๋“ค์„ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


 

 

์ด ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ๋งŒ ํ•˜๋ฃจ ๊ผฌ๋ฐ• ๊ฑธ๋ ธ๋‹ค.

 

์ด์ œ๋Š” ํ˜ผ์ž ํ•˜๋ผ๊ณ  ํ•˜๋ฉด ์ด์ •๋„๊นŒ์ง€๋Š” ํ˜ผ์ž ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ,

์•„์ง๋„ ๊ตฌ์กฐ์ƒ์˜ ์ดํ•ด๋„๊ฐ€ ๋ถ€์กฑํ•ด์„œ ํ•ด๋ฒ„๋ฆ‡ ํ•˜๋ฉฐ ์ ์‘ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

์ž๋ฐ” DB insert ๋!

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.