Spring(72)
-
[Spring] VO, DAO, DTO, Entity์ ๋ํด์
๐ VO( Value Object ) ๐ฝ ๊ฐ๋ Value Object๋ DTO์ ๋์ผํ ๊ฐ๋ ์ด๋ ์ฐจ์ด์ ์ read only ์์ฑ์ ๊ฐ๋ ๊ฒ์ด์์. Value Object๋ ๊ด๊ณ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ ์ฝ๋์ ๋์๋๋ ์๋ฐ ํด๋์ค์ธ ๊ฒ์ด์์. ํํ๋ db ๋ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ํ๋๋ค์ Value Object์ Attribute๋ก ํ๊ณ ํด๋น ๋ณ์์ ์ ๊ทผํ ์ ์๋ Getter, Setter ๋ฉ์๋์ ์กฐํฉ์ผ๋ก ํด๋์ค๊ฐ ํ์ฑ๋์ด์ง ํด๋์ค์ธ ๊ฒ์ด์์. ๐ก ์ฐธ๊ณ : JPA์ Entity์์๋ Setter ์ฌ์ฉ์ ์ง์ํ๋, VO๋ ์๋๋ค. ํน์ฑ์ ๋์ฒด๋ก ๋ถ๋ณ์ฑ์ด๊ณ equlas()๋ก ๋น๊ตํ ๋ ๊ฐ์ฒด์ ๋ชจ๋ ๊ฐ์ ๋น๊ตํด์ผ ํ๋ ๊ฒ์ด์์. ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์๊ฐ ํ๋ฉด์์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ์กฐํ ์์ฒญ์ด ์์ ๋ ์ ๋ ฅ๋ ๋ฐ์ดํฐ..
2022.03.09 -
[BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - Paging ์ฒ๋ฆฌ
๐ง๐ป๐ป Git Hub ์ฃผ์ ๐ ๋ชฉ์ฐจ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๊ธ ๋ฑ๋ก(์์ฑ) / ์์ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๋ชฉ๋ก ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์์ธ ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์ญ์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ๋ฑ๋ก / ์์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ์ญ์ ๐จ๐ฉ๐ง๐ฆ ํ์ ๊ด๋ จ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค -..
2022.03.09 -
[Exception ์ ๋ฆฌ] com.querydsl.core.types.ExpressionException: No constructor found for class
๐ Code Content Query dsl์ ์ฌ์ฉํ์ฌ ์ฃผ๋ํ๋์ด ๋ง๋ค ๊ฐ์กฑ ์ปค๋ฎค๋ํฐ ๊ฒ์ํ์ ๋ชฉ๋ก ์กฐํ๋ฅผ ๊ตฌํํ๋ ค๊ณ ํ๋ ๊ฒ์ด์์. ์คํ๋ง๊ณผ JPA๋ฅผ ํ์ฉํ ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ธํธ COUPANG www.coupang.com "์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค." ๐ฝ SystemManualQueryRepository package com.hongga.repository.querydsl.system_manual; import com.hongga.dto.SystemManualResponseDTO; import com.querydsl.core.types.Projections; import com.querydsl.jpa.impl.JPAQue..
2022.02.05 -
[Exception ์ ๋ฆฌ] Spring Security PasswordEncoder Test NPE(Null Pointer Exception)
๐ Code Content Spring Security๋ฅผ ์ฌ์ฉํด์ ํ์๊ฐ์ , ๋ก๊ทธ์ธ ๋ฑ์ ์ฒ๋ฆฌํ๋ ค๊ณ ํ๋ ๊ฒ์ด์์. ๋จผ์ ํ์์ด ์ ๋ง๋ค์ด์ง๋์ง Test๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด Test Code๋ฅผ ์์ฑํ ๊ฒ์ด์์. package com.hongga.repository; import com.hongga.entity.Member; import com.hongga.entity.MemberRole; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframewo..
2022.01.26 -
[์ฐ๋ฆฌ์ง ๊ฐ์กฑ ์ปค๋ฎค๋ํฐ ์น ์๋น์ค ํ๋ก์ ํธ] ๊ธฐ์ ์ ๋ฆฌ - Spring Security ์ด๊ธฐ ๊ตฌ์ฑ
์ฐ๋ฆฌ ๊ฐ์กฑ์ ์ปค๋ฎค๋ํฐ ์น ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋จผ์ Server ์์ ์ ํ๊ณ ์๋ ๊ฒ์ด์์. ์ฝ๋ฉ์ ํ๋ฉด์ ๋ด์ฉ์ ์ ๋ฆฌํด์ ๋์ค์ ์ฃผ๋ ํ๋๋ ํ์ธํ๊ณ , ์ฌ๊ธฐ ์ค์ ์ฌ๋ฌ๋ถ๋ค๊ณผ๋ ๊ณต์ ํ๊ณ ์ถ์ ๊ฒ์ด์์! ๊ทธ๋ผ ์์ํด ๋ณด๊ฒ ์ต๋๋ค! ํด๋น ํ๋ก์ ํธ์ ๋ํ Source Code๋ '์ฃผ๋ํ๋ Git Hub'์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐ ๋ชฉ์ฐจ(INDEX) 1. ์ด๊ธฐ๊ตฌ์ฑ 2. Spring Security ์ด๊ธฐ ๊ตฌ์ฑ 3. Interceptor ์ค์ . 4. ์ด๊ธฐ Domain ์ค์ ๐ Package Tree ๐ CORS Filter ๋จผ์ ์ด ์ฝ๋๋ CORS Filter๋ฅผ ๊ตฌํํ ๋ค Bean์ผ๋ก ๋ฑ๋กํ๊ธฐ ์ํด ์์ฑํ ๊ฒ์ด์์. ์ด ๋ฐฉ๋ฒ์ Spring MVC๊ฐ ์๋ Srping WEB์๋ง ์์กดํ๊ฑฐ๋, Security ์ค..
2021.12.21 -
[๋์ ๊ธฐ์ !] ํ ํฐ ์ ๋ต, ๊ถํ ์ธ์ฆ
๐ ํ ํฐ์ ์ฌ์ฉํ ์ด์ ? ๊ฐ์ฅ ํฐ ์ด์ ๋ HTTP์ ํน์ง ์ค Connectionless ์ Stateless ๋๋ฌธ์ ๋๋ค. HTTP ํ๋กํ ์ฝ์ ํ๋ฒ์ ์์ฒญ - ์๋ต ์ฌ์ดํด์ด ์๋ฃ๋๋ฉด ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ๋๋ฌธ์, ๋์ผํ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฌ๋ฒ ์์ฒญ์ ํด์ค๋๋ผ๋ ์๋ฒ๋ ํด๋น ํด๋ผ์ด์ธํธ์ ๋ํ ๊ถํ์ ์ธ์งํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ํ์ ์ผ๋ก ์ธ์ ๊ณผ ์ฟ ํค ๋ฐฉ์์ด ์์ต๋๋ค. Cookie ๋ฐฉ์ : ๊ฐ๋ณ Client ์ํ ์ ๋ณด๋ฅผ HTTP Request / Response Header์ ๋ด์ ์ ๋ฌํ๋ Infomation / Data๋ฅผ ์ด์ผ๊ธฐ ํฉ๋๋ค. Cookie๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐ๋ก ๋ณด์ ์ทจ์ฝ์ ์ ๋๋ค. Cookie ๋ฐฉ์์ Client ์ํ ์ ๋ณด๋ฅผ Client์ ์ ์ฅํ๊ณ ,..
2021.12.21