๋ชฉ๋ก๐Ÿƒ๐Ÿป‍โ™‚๏ธ ๊ธฐ๋ณธํ›ˆ๋ จ (32)

hades

[JPA] JPA ๊ธฐ์ดˆ

JPA ์†Œ๊ฐœJPAJava Persistnce APIJava ์ง„์˜์˜ ORM ํ‘œ์ค€ ORMObject-relational mapping (๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘)๊ฐ์ฒด๋Š” ๊ฐ์ฒด๋Œ€๋กœ ์„ค๊ณ„ํ•˜๊ณ , ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Œ€๋กœ ์„ค๊ณ„ํ•˜๊ณ , ORM ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ค‘๊ฐ„์—์„œ ๋งคํ•‘๋Œ€์ค‘์ ์ธ ์–ธ์–ด์—๋Š” ๋Œ€๋ถ€๋ถ„ ORM ๊ธฐ์ˆ ์ด ์กด์žฌ JPA๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ JDBC ์‚ฌ์ด์—์„œ ๋™์ž‘์ฐธ๊ณ ) JDBC(Java Database Connectivity)๋Š” ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ž๋ฐ” API์ด๋‹ค. ํŠธ๋žœ์žญ์…˜(Transaction)์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„์ด๋‹ค. ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๋ฌธ์ด ์•„๋‹ˆ๋‹ค. JPA ๋™์ž‘ - ์ €์žฅpersist๋ฅผ ํ•œ๋‹ค๋ฉด, MemberDAO(EntityM..

[Spring] ์Šคํ”„๋ง ๊ธฐ์ดˆ (2)

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ์Šคํ”„๋ง ๋นˆ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑApplicationContext๋Š” ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์ด์ž ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹คํ˜•์„ฑ์ด ์ ์šฉ๋œ๋‹ค. AnnotationConfigApplicationContext๋„ ์žˆ๊ณ , ๋‹ค๋ฅธ ApplicationContext๋“ค๋„ ์žˆ๋‹ค.์„ค์ •์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” @Configuration์ด ๋ถ™์€ AppConfig.class๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•˜๋Š” AnnotationConfigApplicationContext์„ ์ƒ์„ฑํ•˜๋ฉด, @Bean์ด ๋ถ™์€ ๊ฒƒ๋“ค์ด ์Šคํ”„๋ง ์ €์žฅ์†Œ์— ์ €์žฅ๋œ๋‹ค. ๋นˆ ์ด๋ฆ„์€ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„, ๋นˆ ๊ฐ์ฒด๋Š” return ๊ฐ’์ด๋‹ค. ๋นˆ์˜ ์ด๋ฆ„์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์ด๋ฉฐ, ํ•ญ์ƒ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๋ถ€์—ฌํ•ด์•ผ ํ•œ๋‹ค. 3. ์Šคํ”„๋ง ๋นˆ ์˜์กด ๊ด€๊ณ„ ์„ค์ •์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ์„ค์ • ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ฃผ์ž…ํ•œ๋‹ค...

[Spring] ์Šคํ”„๋ง ๊ธฐ์ดˆ (1)

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑSpring ํ”„๋กœ์ ํŠธ๋Š” https://start.spring.io/ ์—์„œ ์ƒ์„ฑํ•œ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์™€ ๊ฐ™์ด ์„ค์ • ํ›„ Generateํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๊ตฌ์„ฑ ํ•ญ๋ชฉ๋“ค์„ ์‚ดํŽด๋ณด์ž. src์—์„œ main๊ณผ test๋ฅผ ๋ถ„๋ฆฌํ•ด๋†“์•˜๋Š”๋ฐ, ์ด๋Š” test๊ฐ€ ์š”์ฆ˜ ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.main์—์„œ java๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํŒŒ์ผ์€ resources์— ์žˆ๋‹ค. gradle์€ ๋ฒ„์ „ ์„ค์ • ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. HelloSpringApplication์€ Application์„ ์‹คํ–‰์‹œํ‚ค๋Š”๋ฐ ์ž์ฒด์ ์œผ๋กœ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ†ฐ์บฃ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์–ด์„œ, ์„œ๋ฒ„ ์—ญํ• ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. Setting - Build - Gradle์—์„œ IntelliJ IDEA๋กœ ๋ฐ”๊พธ๋ฉด, ์ž์ฒด์ ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ๋นจ๋ผ..

[Docker] ๋„์ปค ๊ธฐ์ดˆ

๋„์ปค๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์šฉํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€์ƒ๋จธ์‹ ์ฒ˜๋Ÿผ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ „๋ถ€ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ€์ƒ๋จธ์‹ ์ฒ˜๋Ÿผ ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปจํŠธ๋กค ๊ทธ๋ฃน์ด๋ž€ ํ”„๋กœ์„ธ์Šค๋กœ ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ๋Œ€ ๋“ฑ)์„ ์ œํ•œํ•œ๋‹ค. ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด Image๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. github์— ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค. Public Cloud๋Š” public registry, On-premises๋Š” private registry๋ฅผ ์˜๋ฏธํ•œ๋‹ค.Registry์—์„œ Image๋ฅผ PULLํ•˜๊ณ , ๊ทธ Image๋กœ Container๋ฅผ ๋งŒ๋“ค์–ด Memory์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค.Container๋Š” ๊ฐ™์€ ์„ค์ •์œผ๋กœ ์ค‘..