๐ Language/โ JAVA
![[Spring][ํผ๊ณต] 6. ์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ - (2) ์์ JDBC](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMHQM2%2FbtrfouNIDIE%2F0lSJIuvu5s3yKyx5AUPAd0%2Fimg.png)
[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 ์ค์น](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbbOKL%2FbtreJwDZEZE%2FjZ7QemDpBwBLaWcLkpYBKk%2Fimg.png)
[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 ๊ฐ๋ฐ - ํ์ ์น ๊ธฐ๋ฅ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmvX4v%2Fbtrd14PHBxD%2FiVZkTju02i00boVakUgAV1%2Fimg.png)
[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) ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV7dX9%2FbtrcIUu9d4Q%2Fqc7eksnudotHhXzEF0ODX0%2Fimg.png)
[Spring][ํผ๊ณต] 4. ์คํ๋ง ๋น๊ณผ ์์กด๊ด๊ณ - (1) ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์
์คํ๋ง ๋น๊ณผ ์์กด๊ด๊ณ ์ง๊ธ๊น์ง ํ์ ์๋น์ค๋ฅผ ํตํด ํ์ ๊ฐ์ ๊ณผ ์กฐํ๋ฅผ ํ์ฌ ํ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์ฅํ๊ณ ๋ค์ ๊บผ๋ผ ์ ์๋๋ก ๋ก์ง์ ๋ง๋ค์๋ค. ์ด์ ์น์ ๋ณด์ด๋๋ก ํ๋ฉด์ ๋์์ผ ํ๋๋ฐ, ์ด ์์ ์ ์ํด์ Controller์ View๊ฐ ํ์ํ๋ค. ์ฌ๊ธฐ์ ํ์ ์ปจํธ๋กค๋ฌ๋ ํ์ ์๋น์ค๋ฅผ ํตํด ํ์ ๊ฐ์ ๊ณผ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ํ๋ค. ์ด๋ฌํ ๊ด๊ณ๋ฅผ ์๋ก ์์กด๊ด๊ณ๊ฐ ์๋ค๊ณ ํํํ๋๋ฐ, ์ฆ ํ์ ์ปจํธ๋กค๋ฌ๋ ํ์ ์๋น์ค๋ฅผ ์์กดํ๊ณ ์๋ค. ํ์ ์ปจํธ๋กค๋ฌ๊ฐ ํ์ ์๋น์ค์ ํ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์์กด๊ด๊ณ๋ฅผ ์ค์ ํด๋ณด์. ์คํ๋ง ๋น์ ๋ฑ๋กํ๊ณ ์์กด๊ด๊ณ๋ฅผ ์ค์ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ ์๋ฐ ์ฝ๋๋ก ์ง์ ์คํ๋ง ๋น ๋ฑ๋กํ๊ธฐ ์คํ๋ง ๋น(Spring Bean) Spring IOC ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ์..
![[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (4) ํ์ ์๋น์ค ๊ฐ๋ฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV5ZrD%2Fbtrb24pyz1B%2Fb1ZuvWkfvLfJ72KSeHoRw0%2Fimg.png)
[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..