๐Ÿ“ Language/โœ JAVA

    [Spring][ํ˜ผ๊ณต] 6. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  - (2) ์ˆœ์ˆ˜ JDBC

    [Spring][ํ˜ผ๊ณต] 6. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  - (2) ์ˆœ์ˆ˜ JDBC

    ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  2. ์ˆœ์ˆ˜ JDBC ์ด๋ฒˆ ๊ธ€์€ `์•„์ฃผ ์˜ค๋ž˜์ „์—๋Š” ์ด๋ ‡๊ฒŒ JDBC API๋ฅผ ์ง์ ‘ ์ฝ”๋”ฉํ–ˆ๊ตฌ๋‚˜` ์ •๋„๋กœ๋งŒ ์ฐธ๊ณ ๋กœ ์•Œ์•„๋‘์ž 1) ํ™˜๊ฒฝ ์„ค์ • build.gradle ํŒŒ์ผ์— jdbc, h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ์Šคํ”„๋ง ๋ถ€ํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ • ์ถ”๊ฐ€ url์€ ์ด์ „ ๊ธ€์— ์„ค์น˜ํ•œ h2์˜ url์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ๋งŒ์•ฝ driver class name ์ž…๋ ฅ ์‹œ ๋นจ๊ฐ„ ๊ธ€์”จ๋กœ ๋…ธ์ถœ๋œ๋‹ค๋ฉด, build.gradle๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋ฉด ๋œ๋‹ค. 2) Jdbc ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ตฌํ˜„ package hello.hello.spring.repository; import hello.hello.spring.domain.Member; import org.springframework.jdbc.datasource.Dat..

    [Spring][ํ˜ผ๊ณต] 6. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  - (1) H2 DB ์„ค์น˜

    [Spring][ํ˜ผ๊ณต] 6. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  - (1) H2 DB ์„ค์น˜

    ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ  ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ๋‚ด๋ ค๊ฐ€๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์‚ฌ๋ผ์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค๋ฌด์—์„œ๋Š” DB(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์— ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ์ˆœ์ˆ˜ JDBC: JDBC๋Š” DB SQL์„ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ DB๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ๋กœ ์ˆœ์ˆ˜ JDBC๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์˜ˆ์ „์— ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ์Šคํ”„๋ง JDBC Template: ์ˆœ์ˆ˜ JDBC๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์šฐ๋‹ˆ ์Šคํ”„๋ง์ด ์ค‘๋ณต ์ œ๊ฑฐ์™€ ๊ฐ™์€ ์ž‘์—…์„ ํ•œ Template์„ ์ œ๊ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DB๋กœ SQL์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. JPA: SQL์„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง์ ‘ ์งœ๋Š” ๊ฒƒ์ด ์•„๋‹Œ JPA๊ฐ€ ๊ฐ์ฒด์˜ ๋“ฑ๋ก, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ ์ฟผ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA: JPA๋ฅผ ํŽธ๋ฆฌ..

    [Spring][ํ˜ผ๊ณต] 5. ์›น MVC ๊ฐœ๋ฐœ - ํšŒ์› ์›น ๊ธฐ๋Šฅ

    [Spring][ํ˜ผ๊ณต] 5. ์›น MVC ๊ฐœ๋ฐœ - ํšŒ์› ์›น ๊ธฐ๋Šฅ

    ์›น MVC ๊ฐœ๋ฐœ 1. ํšŒ์› ์›น ๊ธฐ๋Šฅ 1) ํ™ˆ ํ™”๋ฉด ์ถ”๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ •์  ํŒŒ์ผ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. ์ฆ‰, ์›ฐ์ปด ํŽ˜์ด์ง€(index.html)๊ฐ€ ์žˆ์–ด๋„ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ •์  ํŽ˜์ด์ง€๋Š” ๋ฌด์‹œ๋œ๋‹ค. package hello.hello.spring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 2) ํšŒ์› ๋“ฑ๋ก form: ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” HTML ํƒœ๊ทธ์ด๋‹ค. ์•„๋ž˜ ..

    [Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ - (2) ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ

    ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ 2. ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ 1) ๊ตฌํ˜„ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ์Šคํ”„๋งํ•œํ…Œ ์ง์ ‘ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. @Service, @Repository, @Autowired ์• ๋…ธํ…Œ์ด์…˜์„ ์ œ๊ฑฐํ•˜๊ณ  ์ง„ํ–‰ํ•œ๋‹ค. ํ–ฅํ›„ ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ, ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋ฐฉ์‹ ๋Œ€์‹  ์ง์ ‘ ์„ค์ •ํ•  ๊ฒƒ์ด๋‹ค. package hello.hello.spring; import hello.hello.spring.repository.MemberRepository; import hello.hello.spring.repository.MemoryMemberRepository; import hello.hello.spring.service.MemberService; import org.springfra..

    [Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ - (1) ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •

    [Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ - (1) ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •

    ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ ์ง€๊ธˆ๊นŒ์ง€ ํšŒ์› ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ํšŒ์› ๊ฐ€์ž…๊ณผ ์กฐํšŒ๋ฅผ ํ•˜์—ฌ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ๋กœ์ง์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด์   ์›น์— ๋ณด์ด๋„๋ก ํ™”๋ฉด์— ๋„์›Œ์•ผ ํ•˜๋Š”๋ฐ, ์ด ์ž‘์—…์„ ์œ„ํ•ด์„  Controller์™€ View๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํšŒ์› ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ํšŒ์› ๊ฐ€์ž…๊ณผ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ์„œ๋กœ ์˜์กด๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ์ฆ‰ ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํšŒ์› ์„œ๋น„์Šค๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค. ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํšŒ์› ์„œ๋น„์Šค์™€ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด๋ณด์ž. ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๊ณ  ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ ์Šคํ”„๋ง ๋นˆ(Spring Bean) Spring IOC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž..

    [Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (4) ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ

    [Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (4) ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ

    ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ 4. ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ 1) ํšŒ์› ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ service ํŒจํ‚ค์ง€ ์ƒ์„ฑ MemberService ํด๋ž˜์Šค ์ƒ์„ฑ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋„๋ฉ”์ธ์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค. ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ธ ์ด๋ฆ„์œผ๋กœ ๊ตฌํ˜„ํ•˜์ง€๋งŒ, ํšŒ์› ์„œ๋น„์Šค๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์นœํ™”์ ์ธ ์ด๋ฆ„์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. package hello.hello.spring.service; import hello.hello.spring.domain.Member; import hello.hello.spring.repository.MemberRepository; import hello.hello.spring.repository.MemoryMemberRepository; import java.util.List; impo..