๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL59

01/31(์ˆ˜) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 28์ผ์ฐจ TIL - ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ๐Ÿฅ” ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ž€? - Persistence๋ฅผ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•˜๋ฉด ์˜์†์„ฑ, ์ง€์†์„ฑ์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. Persistence๋ฅผ ๊ฐ์ฒด์˜ ๊ด€์ ์œผ๋กœ ํ•ด์„ํ•ด ๋ณด์ž๋ฉด ๊ฐ์ฒด๊ฐ€ ์ƒ๋ช…(๊ฐ์ฒด๊ฐ€ ์œ ์ง€๋˜๋Š” ์‹œ๊ฐ„)์ด๋‚˜ ๊ณต๊ฐ„(๊ฐ์ฒด์˜ ์œ„์น˜)์„ ์ž์œ ๋กญ๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์˜ ์„ฑ์งˆ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋Š” JPA๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์šฉ์–ด์ด๋‹ค. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ฐœ๋… ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š์Œ ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ ‘๊ทผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•ด ๋ณด์ž๋ฉด Entity ๊ฐ์ฒด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ๋น„์˜์†(new/transient) : ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์ „ํ˜€ ๊ด€๊ณ„๊ฐ€ ์—†๋Š” ์ƒˆ๋กœ์šด ์ƒํƒœ ์˜์†(managed) : ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์—.. 2024. 1. 31.
01/30(ํ™”) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 27์ผ์ฐจ TIL - ๊ฐ™์€ Bean์ด 2๊ฐœ์ผ ๋•Œ ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ Bean ๐Ÿฅ” ๊ฐ™์€ ํƒ€์ž… Bean ๋“ฑ๋ก Food Interface public interface Food { void eat(); } Chicken import org.springframework.stereotype.Component; @Component public class Chicken implements Food { @Override public void eat() { System.out.println("์น˜ํ‚จ์„ ๋จน์Šต๋‹ˆ๋‹ค."); } } Pizza import org.springframework.stereotype.Component; @Component public class Pizza implements Food { @Override public void eat() { Syst.. 2024. 1. 30.
01/29(์›”) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 26์ผ์ฐจ TIL - Bean ์ˆ˜๋™ ๋“ฑ๋ก ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ Bean ๐Ÿฅ” Bean ์ˆ˜๋™ ๋“ฑ๋ก @Component๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด @ComponentScan์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์Šค์บ”๋˜์–ด ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ Bean์œผ๋กœ ๋“ฑ๋ก ํ•ด์ค๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ @Component๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Bean์„ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ ์ˆ˜๋ก ๋“ฑ๋กํ•  Bean๋“ค์ด ๋งŽ์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™๋“ฑ๋ก์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋“ค์€ ๊ทธ ์ˆ˜๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— @Controller, @Service์™€ ๊ฐ™์€ ์• ๋„ˆํ…Œ์ด์…˜๋“ค์„ ์‚ฌ์šฉํ•ด์„œ Bean์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ฉด ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. โ—๏ธ Bean ์ˆ˜๋™ ๋“ฑ๋ก์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ๋‚˜ ๊ณตํ†ต์ ์ธ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฑ„๋“ค์„ ์ˆ˜๋™์œผ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. - ๊ณตํ†ต ๋กœ๊ทธ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ง€์›.. 2024. 1. 29.
01/26(๊ธˆ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 25์ผ์ฐจ TIL - Bean ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ Bean ๐Ÿฅ” Bean Bean : Spring์ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด Spring IoC ์ปจํ…Œ์ด๋„ˆ : 'Bean'์„ ๋ชจ์•„๋‘” ์ปจํ…Œ์ด๋„ˆ โ—๏ธ Bean ๋“ฑ๋ก ๋ฐฉ๋ฒ• @Component - Bean์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค ์œ„์— ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. @Component public class MemoService { ... } Spring ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ IoC ์ปจํ…Œ์ด๋„ˆ์— 'Bean'์„ ์ €์žฅํ•ด ์ค๋‹ˆ๋‹ค. - @Component๊ฐ€ ์„ค์ •๋œ ํด๋ž˜์Šค์— ๋Œ€ํ•ด Spring์ด ํ•ด์ฃผ๋Š” ์ผ ํ™•์ธํ•˜๊ธฐ // 1. MemoService ๊ฐ์ฒด ์ƒ์„ฑ MemoService memoService = new MemoService(); // 2. Spring IoC ์ปจํ…Œ์ด๋„ˆ์— Bean (memoService) ์ €์žฅ // memoServic.. 2024. 1. 26.
01/25(๋ชฉ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 24์ผ์ฐจ TIL - REST API ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ REST ๐Ÿฅ” REST Representational State Transfer์˜ ์•ฝ์ž๋กœ, ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ. HTTP URI(Uniform Resource Identifier)๋ฅผ ํ†ตํ•ด ์ž์›(Resource)์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(POST, GET, PUT, DELETE, PATCH ๋“ฑ)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›(URI)์— ๋Œ€ํ•œ CRUD Operation์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. โ—๏ธ CRUD Operation CRUD๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ธ Create(์ƒ์„ฑ), Read(์ฝ๊ธฐ), Update(๊ฐฑ์‹ ), Delete(์‚ญ์ œ)๋ฅผ ๋ฌถ์–ด์„œ ์ผ์ปซ๋Š” ๋ง๋กœ REST์—์„œ์˜ CRUD Operation ๋™์ž‘.. 2024. 1. 25.
01/24(์ˆ˜) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 23์ผ์ฐจ TIL - 3 Layer Architecture ๐Ÿ“– ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ Controller Service Repository ๐Ÿฅ” 3 Layer Architecture Controller ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” ๊ณณ ์š”์ฒญ์— ๋Œ€ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ๋Š” Service์—๊ฒŒ ์ „๋‹ฌ Service์—์„œ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต Service ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ค์„ธ ์ค‘์˜ ์‹ค์„ธ (๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง) DB ์ €์žฅ ๋ฐ ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” Repository์—๊ฒŒ ์š”์ฒญ Repository DB ๊ด€๋ฆฌ (์—ฐ๊ฒฐ, ํ•ด์ œ, ์ž์› ๊ด€๋ฆฌ) ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. DB CRUD ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฅ” ํ”„๋กœ์ ํŠธ ์ „์ฒด์ ์ธ ํ๋ฆ„ build.gradle, application.properties entity์™€ dto controller service repository ์˜ค๋Š˜์€ ์œ„๊ฐ™์€ ์ˆœ์„œ๋กœ ์Šคํ”„๋ง.. 2024. 1. 24.