TIL59 03/18(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 58์ผ์ฐจ TIL - ORM์ ์ฌ์ฉํ๋ฉด์ ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด ์ง ๋ ๐ ์ค๋์ ํ์ต ํค์๋ ORM ๐ฅ ORM์ ์ฌ์ฉํ ๋ ORM์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋งคํํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ฒด ์งํฅ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ผ๋ฉฐ, DB์์ ์ํธ์์ฉ์ ๊ฐ์ํํ ์ ์์ต๋๋ค. ๊ฐ๋จํ, ORM์ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ฒ์ญ๊ธฐ๋ก ๋ณผ ์ ์๋ค. ORM์ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ ์์ฑ๊ณผ DB ์์ ์ํธ ์์ฉ์ด ํจ์ฌ ํธ๋ฆฌํด์ง์ง๋ง, ๋ณต์กํ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ์ ORM ๋ง์ผ๋ก๋ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค. ์ด๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. 1. ORM์ Query Builder ์ฌ์ฉ : ๋๋ถ๋ถ์ ORM์ Query Builder๋ฅผ ์ ๊ณตํ์ฌ SQL ์ฟผ๋ฆฌ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ.. 2024. 3. 18. 03/15(๊ธ) ๋ด์ผ๋ฐฐ์์บ ํ Java 57์ผ์ฐจ TIL - StringBuilder ๐ ์ค๋์ ํ์ต ํค์๋ StringBuilder ๐ฅ StringBuilder ์๋ฐ์์ ๋ฌธ์์ด์ด๋ผ๊ณ ํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ String์ด ๋ ์ค๋ฆ ๋๋ค. String์ ๋ถ๋ณ๊ฐ์ฒด๋ผ๊ณ ํฉ๋๋ค. String str1 = "abc";, String str2 = "123"; 2๊ฐ์ String๊ฐ์ฒด๊ฐ ์์ ๋, ๋ง์ฝ str1 + str2; ์ ๊ฐ์ ์ฐ์ฐ์ ํ๊ฒ ๋๋ฉด ์๋ก์ด String์ ์์ฑํ๊ฒ๋ฉ๋๋ค. ์ฆ, String๊ฐ์ฒด์ String๊ฐ์ฒด๋ฅผ ๋ํ๋ ํ์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ๋ฐ์ํ์ํค๋ฉฐ, ๋ํ๋ ์ฐ์ฐ์ด ๋ง์์ง๋ฉด ์ฑ๋ฅ์ ์ผ๋ก ์ข์ง์์ต๋๋ค. ๊ทธ๋์ StringBuilder๋ผ๋ ๋ ์์ด ๋์์ต๋๋ค. StringBuilder๋ String๊ณผ ๋ฌธ์์ด์ ๋ํ ๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด์ ๋ฐ์ดํฐ์ ๋ํ๋ ๋ฐฉ์์ ์ฌ์ฉ.. 2024. 3. 15. 03/14(๋ชฉ) ๋ด์ผ๋ฐฐ์์บ ํ Java 56์ผ์ฐจ TIL - AWS ๐ ์ค๋์ ํ์ต ํค์๋ AWS ๐ฅ AWS ํด๋ผ์ฐ๋ AWS๋ Amazon Web Services์ ์ฝ์ด๋ก, ์๋ง์กด๋ท์ปด์ด ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. AWS๋ ์ ์ธ๊ณ์ ๋ถ์ฐ๋์ด ์๋ ๋ฐ์ดํฐ ์ผํฐ์์ ๊ณ ๊ฐ์๊ฒ IT ์ธํ๋ผ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ ํ์ํ ์ธํ๋ผ๋ฅผ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ค์ ํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. โ๏ธAWS ์ฃผ์ ์๋น์ค ์ปดํจํ : EC2 (Elastic Compute Cloud), Elastic Beanstalk ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค : RDS (Relational Database Service) ๋ฑ ์คํ ๋ฆฌ์ง : S3 (Simple Storage Service) , EBS (Elastic Block Store) ๋ฑ ๋คํธ์ํน : VPC (Virtual Private Cloud), Clou.. 2024. 3. 14. 03/13(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 55์ผ์ฐจ TIL - Spring AOP ๐ ์ค๋์ ํ์ต ํค์๋ Spring AOP ๐ฅ Spring AOP Spring AOP (Aspect-Oriented Programming)๋ ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ ํํ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๋ชจ๋์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ชจ๋ํํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๊ฐ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํต๋๋ค. Spring AOP์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๊ฐ๋ ์ ์๋์ ๊ฐ์ต๋๋ค. Aspect (๊ด์ ) : ๊ด์ ์ ํน์ ํ ๊ด์ฌ์ฌ๋ฅผ ๋ํ๋ด๋ ๋ชจ๋์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ก๊น , ํธ๋์ญ์ ๊ด๋ฆฌ, ๋ณด์ ๋ฑ์ด ๊ด์ ์ ์์์ ๋๋ค. Join Point (๊ฒฐํฉ ์ง์ ) : ๊ฒฐํฉ ์ง์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ค์ Aspect๊ฐ ์ ์ฉ๋ ์ ์๋ ์ง์ ์ ๋งํฉ๋๋ค. ๋ฉ์๋ ํธ์ถ, ์์ธ ๋ฐ์ .. 2024. 3. 13. 03/12(ํ) ๋ด์ผ๋ฐฐ์์บ ํ Java 54์ผ์ฐจ TIL - QueryDSL ๐ ์ค๋์ ํ์ต ํค์๋ QueryDSL ๐ฅ QueryDSL? : QueryDSL์ ํ์ด๋ฒ๋ค์ดํธ ์ฟผ๋ฆฌ ์ธ์ด์ ์ฟผ๋ฆฌ๋ฅผ ํ์ ์ ์์ ํ๊ฒ ์์ฑ ๋ฐ ๊ด๋ฆฌํด ์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค. : QueryDSL์ ์ ์ ํ์ ์ ์ด์ฉํ์ฌ SQL๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ค๋๋ค. : ์๋ฐ ๋ฐฑ์๋์์๋ Spring Boot์ Spring Data JPA๋ฅผ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. : ํ์ง๋ง, ๋ณต์กํ ์ฟผ๋ฆฌ, ๋์ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํํ๋ ๋ฐ ์์ด์ ํ๊ณ๊ฐ ์์ต๋๋ค. : ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฒ์ด QueryDSL์ ๋๋ค. : QueryDSL์ด ๋ฑ์ฅํ๊ธฐ ์ด์ ์๋ Mybatis, JPQL, Criteria ๋ฑ : ๋ฌธ์์ด ํํ๋ก ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ์ฌ ์ปดํ์ผ ์์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ์์ต๋๋ค. : ํ์ง๋ง, QueryDSL์ ์๋ฐ ์ฝ๋๋ก S.. 2024. 3. 12. 03/11(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 53์ผ์ฐจ TIL - SOLID ๐ ์ค๋์ ํ์ต ํค์๋ SOLID ๐ฅ SOLID(๊ฐ์ฒด์งํฅ ์ค๊ณ์์น) ๋จ์ผ ์ฑ ์ ์์น (Single Responsibiity Principle - SRP) ๊ฐ๋ฐฉ-ํ์ ์์น (Open/Closed Principle - OCP) ๋ฆฌ์ค์ฝํ ์นํ ์์น (Liskov Substitution Principle - LSP) ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (Interface Segregaion Principle - ISP) ์์กด ์ญ์ ์์น (Dependency Inversion Principle - DIP) ๐ฅ ๋จ์ผ ์ฑ ์ ์์น (SRP) : ์ด ์์น์ ํด๋์ค๋ ๋ชจ๋์ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค. : ์ฆ, ํด๋์ค๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ์ด์ ๋ ํด๋น ํด๋์ค๊ฐ ๋ด๋นํ๋ ์ฑ ์ ๋๋ฌธ์ด์ด์ผ ํฉ๋๋ค. : ์ด๋ ์ฝ๋์ ์์ง์ฑ์ ๋.. 2024. 3. 12. ์ด์ 1 2 3 4 ยทยทยท 10 ๋ค์