
๋ ธ์ ์์ ํ์ธํ๊ธฐ! [OT] ๊น๊ณผ ๊นํ๋ธ๋ฅผ ์์๋ณด์! 01. Git? GitHub? www.notion.so

์ง๊ธ๊น์ง ๋ฐฐ์ ๋ ๊ฒ๋ค ๋ค์์ผ๋ก! ์ง๊ธ๊น์ง ์คํ๋ง์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์๊ณ ๋๊ฒ ํ์ตํ๋ค. ์ด์ ๋ถํฐ๋ ๊ฐ๊ฐ์ ๊ธฐ์ ๋ค์ ๊น์ด์๊ฒ ์ดํดํด์ผ ํ๋ค. ๊ฑฐ๋ํ ์คํ๋ง์ ๋ชจ๋ ๊ฒ์ ์ธ์ธํ๊ฒ ์ ํ์๋ ์๋ค. ์ฐ๋ฆฌ๋ ์คํ๋ง์ ๋ง๋๋ ๊ฐ๋ฐ์๊ฐ ์๋๋ค. ์คํ๋ง์ ํ์ฉํด์ ์ค๋ฌด์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ์ ํด๊ฒฐํ๋ ๊ฒ์ด ํจ์ฌ ์ค์ํ๋ค. ๋ฐ๋ผ์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋, ๋๋ต ์ด๋์ฏค ๋ถํฐ ์ฐพ์๋ค์ด๊ฐ๋ฉด ๋ ์ง, ํ์ํ ๋ถ๋ถ์ ์ฐพ์์ ์ฌ์ฉํ ์ ์๋ ๋ฅ๋ ฅ์ด ๋ ์ค์ํ๋ค. ์์ผ๋ก์ ๋ก๋๋งต [ ์ฐ์ํํ์ ๋ค ์ต์ฐ์ ๊ธฐ์ ์ด์ฌ ๊น์ํ์ ์คํ๋ง ์์ ์ ๋ณต ] ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ ์คํ๋ง MVC 1ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํต์ฌ ๊ธฐ์ ์คํ๋ง MVC 2ํธ - ..

AOP๊ฐ ํ์ํ ์ํฉ ๊ฐ์๊ธฐ ์ ๋ ์์ฌ๊ฐ ๋ํ๋ ์์ ์ฐ๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค๋ฉฐ ๋ชจ๋ ๋ฉ์๋์ ํธ์ถ ์๊ฐ์ ์ธก์ ํด ๋ณด๋ผ๊ณ ํ๋ค. ๋ ๋ฉ์๋ 1000๊ฐ์ ์์๊ณผ ๋์ ์๊ฐ ์ธก์ ๋ก์ง์ ๋ชจ๋ ์ฌ์ด์ผ ํ๋ค. ๋จธ๋ฆฌ์ ํฐ์ผ๋ฌ๋ค๋ ์๊ฐ ๋ฟ์ด๋ค. ๊ทธ๋ ๊ฒ ์ด์ฌํ ์์ ํด๋๋๋, ์์ฌ๊ฐ ๋ค์ ์์ ์ด ๋จ์๋ก ์ธก์ ํ๋ ์ ์ ๋์ค๋ค..๋ผ๋ฉฐ ๋ฐ๋ฆฌ์ธ์ปจ๋ ๋จ์๋ก ๋ฐ๊พธ๋ผ๊ณ ํ๋ค. . . . ๋ชจ๋ ๋ฉ์๋์ ํธ์ถ ์๊ฐ์ ์ธก์ ํ๊ณ ์ถ๋ค๋ฉด? ๊ณตํต ๊ด์ฌ ์ฌํญ(cross-cutting concern) vs ํต์ฌ ๊ด์ฌ ์ฌํญ(core concern) ํ์ ๊ฐ์ ์๊ฐ, ํ์ ์กฐํ ์๊ฐ์ ์ธก์ ํ๊ณ ์ถ๋ค๋ฉด? MemberService ํ์ ์กฐํ ์๊ฐ ์ธก์ ์ถ๊ฐ src/main/java/hello.hellospring/service/Memb..

JPA JPA๋ ๊ธฐ์กด์ ๋ฐ๋ณต ์ฝ๋๋ ๋ฌผ๋ก ์ด๊ณ , ๊ธฐ๋ณธ์ ์ธ SQL๋ JPA๊ฐ ์ง์ ๋ง๋ค์ด์ ์คํํด์ค๋ค. JPA๋ฅผ ์ฌ์ฉํ๋ฉด, SQL๊ณผ ๋ฐ์ดํฐ ์ค์ฌ์ ์ค๊ณ์์ ๊ฐ์ฒด ์ค์ฌ์ ์ค๊ณ๋ก ํจ๋ฌ๋ค์์ ์ ํ์ ํ ์ ์๋ค. JPA๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฌ๊ฒ ๋์ผ ์ ์๋ค. build.gradle ํ์ผ์ JPA, h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' //implementation 'org.springframework.boot:spring-boot-st..

์์ JDBC ํ๊ฒฝ ์ค์ # build.gradle ํ์ผ์ jdbc, h2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ // DB์ ์ฐ๋ํ๊ธฐ ์ํด ํ์ํ ๋๋ผ์ด๋ฒ implementation 'org.springframework.boot:spring-boot-starter-jdbc' // DB์ ๋ถ์ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ๊ณตํ๋ ํด๋ผ์ด์ธํธ runtimeOnly 'com.h2database:h2' # ์คํ๋ง ๋ถํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์ ์ถ๊ฐ resources/application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.datasource...

๋ค์ด๊ฐ๊ธฐ ์ ์ ์ฐ๋ฆฌ๋ ์ด์ ํฌ์คํ ์์ ํ์ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ฅผ ๊ป๋ค ์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ๋ชจ๋ ์ฌ๋ผ์ก๋ค. ์ค๋ฌด์์๋ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํด ์ ์ฅํ๊ณ ๊ด๋ฆฌํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ์ฐ์ ๊ฐ๋ณ๊ณ ๊ฐ๋จํ H2 ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ DB๋ฅผ ์ฐ๊ฒฐํด ๋ณด์. ์ฐ๊ฒฐํ ๋ ํ์ํ ๊ฒ์ด ๋ฐ๋ก Jdbc๋ผ๋ ๊ธฐ์ ์ด๋ฉฐ, ๋จผ์ ์ค๋ ์ ์ ๊ฐ๋ฐ์๋ค์ด ์ด๋ป๊ฒ ๊ฐ๋ฐํ๋์ง ์์ํ Jdbc๋ก ๊ฒฝํ์ ํด ๋ณด๊ณ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ DB๋ก SQL์ ํธํ๊ฒ ๋ ๋ฆด ์ ์๋ ์คํ๋ง Jdbc Template์ ์ฌ์ฉํ ์์ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋์๊ฐ์ SQL์กฐ์ฐจ ๊ฐ๋ฐ์๋ค์ด ์ง์ ์ง์ง ์๊ณ JPA๋ผ๋ ๊ธฐ์ ์ ํตํด ๋ฑ๋ก/์์ /์ญ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆด ์..