โ๏ธ Today I Learned(TIL)79 [TIL] ๋ค์ ์ฐ๊ธฐ ์์ํ TIL 1์ผ์ฐจ.. ๐ ์ค๋์ ์ด๋ค ํ๋ฃจ์์ง..์ค๋์ ์ด์ ๋ถํฐ ์์ํ Pass By Pass 2์ผ ์ฐจ์ด๋ค. ์ด์ ๋ฏธ๋ค๋ ์ ํ ์์์ ์ฐ์ด์ ํผ๋๋ฐฑ ํ๋ ๊ฒ์ ์ค์ ์ ๋๋ด๊ณ , ์ง๊ธ๋ฐ์ ๊ฐ์๋ค์ ๋ค์๋๋ ์ค์ ์ด ์์๊ฐ์ ์ง๋๊ฐ๋ค.์ ์ฌ์ ๋จน๊ณ ๋ฎ์ ์ ์ผ๋ฌด์ง๊ฒ ์ ๋ค์์, ๊ธฐ์ ๋ง์ธ๋๋งต์ ๊ทธ๋ฆฌ๊ธฐ ์์ํ๋ค.๋จผ์ ํ๋ ๋ถ์ ์กฐ์ธ์ ์ป์ด์ Obsidian์ ํ์ฉํด์ ๋ด์ฉ์ ์ฑ์๋๊ฐ๋๋ฐ, ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ด๋ผ์ ๊ทธ๋ฐ์ง ์์ํ๋ค. ๋ ธ์ ์ ๊ณ์ ์ฌ์ฉํ๋ค ๋ณด๋ ๋งํฌ ๋ค์ด ๋ฌธ๋ฒ์ ์ต์ํด์ง ๊ฒ ๊ฐ๋ค! ์ฌ์ฉ์ ์์ํ์ง๋ง.. ํ๋ํ๋ ์์ฑํ๋๋ฐ ์๊ฐ์ด ๋งค์ฐ ์ค๋ ์์ฒญ ๋ง์ด ๊ฑธ๋ ธ๋ค.. ๋ฉ์ธ ํค์๋ 4๊ฐ๋ง ์ ์๋๋ฐ 5์ ๋ฐ์ด์๋ค...... ์ด๋ด ์๊ฐ..์ ๋ ์ ๋จน๊ณ ๋์๋ ๋งค์ผ ํ๊ณ ์๋ ์ฝํ 1๋ฌธ์ ๋ฅผ ํ๊ณ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ๋ค. ์๊ฐ๋ณด๋ค .. 2025. 4. 15. [ TIL ] ํ๋ฌ์ค ํ๋ก์ ํธ_Day 6 ์ค๋ ํ ๊ณต๋ถ ๐ง ํ๋ก์ ํธ์ ์บ์ ์ ์ฉํ๋ฃจ์ข ์ผ ๊ณต๋ถํ๋ ์บ์๋ฅผ ํ๋ก์ ํธ์ ์ ์ฉํ๋ค. ๊ฒ์์ด๋ฅผ ํตํด ์ํ๋ค์ ์กฐํํ ๋์ ์ธ๊ธฐ ๊ฒ์์ด ์กฐํํ ๋ ์บ์๋ฅผ ์ ์ฉํ๋ค. ํ์ง๋ง ๊ฒ์์ด๋ฅผ ํตํด ์ํ๋ค์ ์กฐํํ ๋ ์ฌ์ฉํ ๊ฒ์์ด๋ฅผ DB์ ์ ์ฅํ๊ฑฐ๋ count ์๋ฅผ ์ฆ๊ฐ์์ผ์ผ ํ๊ธฐ ๋๋ฌธ์ DB์ Cache ๊ฐ์ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ํฌ๊ฒ ๋์ง ์์๋ค.์ธ๊ธฐ ๊ฒ์์ด๋ ์กฐ๊ธ ๋ฌ๋๋ค. ConcurrentHaspMap์ ์ด์ฉํด์ ์บ์์ ๊ฒ์์ด๋ฅผ ๋ชจ๋ ์ ์ฅํ๊ณ ๋ง์ด ์ ์ฅ๋ ์์๋๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ๋์ด ์กฐํ๋๊ฒ๋ ๋ก์ง์ ๊ตฌํํ๋๋ DB์์ ์ง์ ์ธ๊ธฐ ๊ฒ์์ด๋ฅผ ์กฐํํ๋ ๊ฒ๊ณผ Cache์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๋ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค.ํ๋ก์ ํธ์ Redis ์ ์ฉ๊ทธ๋ค์์ ์บ์๋ฅผ ์ ์ฉํ๋ ๋ถ๋ถ์ Redis๋ก ๋ณ๊ฒฝํด ์ฃผ๋ ์์ ์ ์งํํ๋ค.์๊ฐ๋ณด๋ค R.. 2025. 2. 5. [ TIL ] ํ๋ฌ์ค ํ๋ก์ ํธ_Day 5 ์ค๋ ํ ๊ณต๋ถ ๐ง ์บ์ ๊ณต๋ถํ๋ก์ ํธ์ ์บ์๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์์๊น?์คํ ๋ค๋๋ฐ Redis ์ธ์ ๋ฃ๊ธฐ ์ค๋ ํ๋ฃจ ์ ๋ฆฌ โ๏ธ ๋ด์ผ ๊ณํ โฐ 2025. 2. 5. [ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 4 ์ค๋ ํ ๊ณต๋ถ ๐ง ํ์ ๊ณผ์ ํด๊ฒฐSpring Security์ธ์ฆ, ๊ถํ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๋ณดํธ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ์น ๊ฐ๋ฐ ๊ณผ์ ์์ ํ์์ ์ธ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ๋์์ ์ฃผ๋ Spring์ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ์ด๋ค.์ฌ์ฉํ๋ ์ด์ Spring Security๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ Spring์ ์ํ๊ณ์์ ๋ณด์์ ํ์ํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ์ ์ ์ฅ์์ ์ผ์ผ์ด ๋ณด์ ๊ด๋ จ ๋ก์ง์ ์์ฑํ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค. Spring Security๋ Spring์ด๋ผ๋ ํ๋ ์์ํฌ์์ ํ์ฉํ๊ธฐ ์ ์ ํ ๊ตฌ์กฐ๋ก, ๋ณด์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ํ์ฉํ๊ธฐ ์ข๋ค. ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ ๊ฒฝ์ฐ Spring์์ ์ถ๊ตฌํ๋ IoC/DI ํจํด๊ณผ ๊ฐ์ ํ์ฅ ํจํด์ ๊ณ ๋ คํ์ฌ ์ธ์ฆ/์ธ๊ฐ ๋ถ๋ถ์ ์ง์ ๊ฐ๋ฐํ๊ธฐ ์ฝ์ง ์์ง๋ง.. 2025. 1. 24. [ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 3 ์ค๋ ํ ๊ณต๋ถ ๐ง QueryDSL ์ฑ๋ฆฐ์ง๋ฐ ์ธ์ ๋ฃ๊ธฐ๊ณผ์ ์ ์ ์ฉํ๊ธฐ ์ํด QueryDSL ๊ณต๋ถSQL, JPQL ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ Java ์ฝ๋๋ก ์์ฑํ ์ ์๋๋ก ํด์ฃผ๋ ORM ๊ธฐ๋ฐ ์ฟผ๋ฆฌ ๋น๋SQL์ Java ์ฝ๋๋ก ์์ฑํ๋ฉด์, ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ๋ํญ ๊ฐ์ ๋๋ค.๋์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ๋งค์ฐ ์ ์ฐํ๋ค.์ด๊ธฐ ์ธํ ์ด ๋งค์ฐ ๋ณต์กํ๋ค.Q ํด๋์ค ์์ฑ์ด ํ์ํ๋ค.๊ณผ์ ํด๊ฒฐJPQL๋ก ์์ฑ๋ ๋ฉ์๋๋ฅผ QueryDSL๋ก ๋ณ๊ฒฝ์ธ์ ์์ ๋ฐฐ์ด๋๋ก ์ด๊ธฐ ์ธํ todoId๋ฅผ ํตํด ์ผ์ ์ ์กฐํํ๋ ๊ฐ๋จํ ๋ฉ์๋๋ผ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ๋ ์์ฑ@Repository@RequiredArgsConstructorpublic class TodoQueryRepository { private final JPAQueryFactory queryFactor.. 2025. 1. 23. [ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 1 ์ค๋ ํ ๊ณต๋ถ ๐ง ๊ฐ์ธ ๊ณต๋ถ (BaseEntity, GlobalExceptionHandler)BaseEntity์ํฐํฐ(Entity) : ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ํธํ๋ค.์ธ์คํด์ค(Instance) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ด์ฉ์ ์ ์ฒด ์งํฉ์ ์๋ฏธํ๋ค.์์ฑ(Attribute) : ์ธ์คํด์ค์ ๊ตฌ์ฑ์์๋ก์จ ๋ ์ด์ ๋ถ๋ฆฌ๋์ง ์๋ ๋จ์๋ก, ์ ๋ฌด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.JPA๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ํฐํฐ ํด๋์ค๋ฅผ ์ค๊ณํ ๋ ๊ณตํต ์์ฑ์ธ created_at, updated_at ์ปฌ๋ผ์ ๋ํด ๋ชจ๋ ์ํฐํฐ ํด๋์ค์์ ๊ณตํต์ ์ผ๋ก ์์ ํ ๊ฐ๋ฅ์ฑ์ด ๋ณด์ฌ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ ๊ฒ์ด๋ค.์์ฑ์ผ, ์์ ์ผ์ด ๊ณตํต ์์ฑ์ผ๋ก ํด๋นํ๋ค. ์ด ์ฝ๋๋ค์ ์ํฐํฐ์ ๋ชจ๋ ์ ์ด์ค ๊ฒฝ์ฐ ์ฝ๋์ ์ค๋ณต์ด ๋ฐ์ํ๋ค. ์ด๋ฐ ์ฝ๋์ ์ค๋ณต์.. 2025. 1. 21. ์ด์ 1 2 3 4 ยทยทยท 14 ๋ค์