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. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 10 ๋ค์