๐ฟ Spring(35)
-
[Springboot] log ์ ์ฉ ์ log symbol: variable log ์๋ฌ
์ํฉ @Slf4j ๋ก๊ทธ ์ ์ฉ์ log symbol: variable log ์๋ฌ ๋ฐ์ ์์ธ๊ณผ ํด๊ฒฐ annotation processing ๊ด๋ จ ๋ฌธ์ ๋ก ์ถ์ . ์ด๋ ธํ ์ด์ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก builde.gradle ์ dependencies ์ ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค. dependencies { ... annotationProcessor 'org.projectlombok:lombok:1.18.12' ... }
2022.03.04 -
์ปดํฌ๋ํธ ์ค์บ
1. ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์์กด๊ด๊ณ ์๋ ์ฃผ์ ์ปดํฌ๋ํธ ์ค์บ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ @Bean ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๊ฑฐ๋ XML ์ ํ๊ทธ ๋ฑ์ ํตํด ์ค์ ์ ๋ณด์ ์ง์ ๋ฑ๋กํ ์คํ๋ง ๋น์ ๋์ดํ์ง๋ง, ๋ฑ๋กํ ๋น์ด ์๋ฐฑ๊ฐ์ง๊ฐ ๋๋ฉด ๋ฒ๊ฑฐ๋กญ๋ค. @Component Scan @Component ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ๋น์ ๋ชจ์กฐ๋ฆฌ ์ฐพ์๋ด๊ณ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค. @Configuration ์ ์ ์ด์ @Component ๋ฅผ ํฌํจํ๊ธฐ ๋๋ฌธ์ ์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํด filter ๋ฅผ ์ฌ์ฉ. @Configuration // ํํฐ ํ์ ์ annotation ์ผ๋ก ์ง์ @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuratio..
2022.02.07 -
์ฑ๊ธํค ์ปจํ ์ด๋
๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ ์๊ฐ ํ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์ ์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์คํ๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ... www.inflearn.com 1. ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฑ๊ธํค ๋ฌธ์ ์ : ๊ณ ๊ฐ ์์ฒญ์ด ์ฌ ๋๋ง๋ค ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ธ๋ค. 1000๋ฒ์ ์์ฒญ์ด ์ค๋ฉด, 1000๊ฐ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๋ฐ ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ด๋ํ๋ค. ํด๊ฒฐ์ฑ : ํด๋น ๊ฐ์ฒด๊ฐ ๋ฑ 1๊ฐ๋ง ์์ฑ๋๊ณ , ๊ณต์ ํ๋๋ก ์ค๊ณํ๋ฉด ๋๋ค. => ์ฑ๊ธํค ํจํด ์ฑ๊ธํค ํจํด JVM ๋ด์์, ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ฑ 1๊ฐ๋ง ์์ฑ๋๋ ๊ฒ์ ๋ณด์ฅํ๋ ๋์์ธ ํจํด. public class SingletonServi..
2022.02.06 -
์คํ๋ง ์ปจํ ์ด๋์ ์คํ๋ง ๋น
๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ ์๊ฐ ํ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์ ์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์คํ๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ... www.inflearn.com 1. ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext ๋ฅผ ์คํ๋ง ์ปจํ ์ด๋๋ผ ๋ถ๋ฅธ๋ค. ๊ธฐ์กด์๋ ๊ฐ๋ฐ์๊ฐ AppConfig(์์) class ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ DI ๊น์ง ํ์ง๋ง, ApplicationContext ๋ฅผ ํตํด ์คํ๋ง ์ปจํ ์ด๋๋ก ์คํ๋ง ๋น ..
2022.02.04 -
[Spring] Service, ServiceImpl ์ ๊ด๊ณ (feat. OCP)
๋ฌธ์ ์ธ์ง ํ์ฌ์์ ๊ฐ๋ฐ์ค์ธ spring boot ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด์ Service layer ์ impl ํด๋์ interface ๊ฐ ๋์ ๊ณ์ ๋ฐํ์ต๋๋ค. ๋ณธ๋ ์๋ฐ์์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๊ฐ์ฒด์งํฅ ํน์ง ์ค ํ๋์ธ ๋คํ์ฑ ์ ๋๋ค. ๋คํ์ฑ: ํ๋์ ์๋ฃํ์ ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋์ ํ์ฌ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ด๋ ์ฑ์ง ๊ทธ๋ฐ๋ฐ ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ํ๋์ ์๋ฃํ(Interface ICSA2010Service)์ ๋ํ์ฌ ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋์? ์๋๋๋ค. ํด๋น ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ impl ํจํค์ง ํ์์ ํ๋ ๋ฐ์ ์กด์ฌํ์ง ์์ต๋๋ค. ์ฆ 1:N ๊ด๊ณ๊ฐ ์๋ 1:1์ ๊ด๊ณ๋ฅผ ํ์ฑํ๋ฉด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉ์ค์ธ ๊ฒ์ด์ฃ . OCP ์ ์ ๊ฐํ ์ฝ๋์ด๊ธด ํ๋,, ์๋๋ฅผ ์๊ณ ์ฐ๋ ๊ฒ์ธ๊ฐ? ์ฌ์ค ์ด๊ฒ ์๋ชป ๋ ๊ฒ์ ์..
2022.02.02 -
๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง
์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ ์๊ฐ ํ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์ ์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์คํ๋ง ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํ์คํ ๋ค์ง ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ... www.inflearn.com 1. ์คํ๋ง์ด๋ ์คํ๋ง์ ํต์ฌ ํน์ง 1. ์๋ฐ ์ธ์ด ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ 2. ์๋ฐ์ ํฐ ํน์ง: ๊ฐ์ฒด ์งํฅ ์ธ์ด 3. ์ฆ ๊ฐ์ฒด ์งํฅ ์ธ์ด๊ฐ ๊ฐ์ง ๊ฐ๋ ฅํ ํน์ง์ ์ด๋ ค๋ผ ์ ์๋ ํ๋ ์์ํฌ : Spring 4. ์ ๋ฆฌํ์๋ฉด, ์ข์ ๊ฐ์ฒด ์งํฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ ์ข์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? 1. ๊ฐ์ฒด ์งํฅ์ ์ ์ : ํ์ค์ธ๊ณ๋ฅผ ์ฝ๋๋ก ๋ฐ์ํ์ฌ, ํ๋ก๊ทธ๋จ ๊ตฌํ์ ํ์ํ ๊ฐ์ฒด(ex ํ์ค์ ์ฌ๋ฌผ, etc)๋ฅผ ..
2022.01.26 -
ResponseEntity ๋์ Custom DTO ๋ฅผ ๋ฆฌํดํ ๋ ์ฃผ์ํ ์ (feat. @ResponseBody)
[ ๊ธฐ์กด ์์ธ์ฒ๋ฆฌ ํธ๋ค๋ฌ ์ฝ๋ ] ๋ฆฌํด ํ์ ์ด ResponseEntity ์ธ ํด๋์ค๋ค. ๋ฌธ์ ์์ด ์๋ฌ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์์๋๋ฐ, ๋ฆฌํด ํ์ ์ KlagoExceptionDTO ๋ก ๋ฐ๊พธ์ด ๋ณด๊ณ ์ถ์์ต๋๋ค. (KlagoExceptionDTO ๋ ์ปค์คํ ์์ธ์ฒ๋ฆฌ DTO ์ ๋๋ค.) ์ด์ ๋ ResponseEntity์ ๋๋ฒ์งธ ์ธ์๋ก ๋งค๋ฒ httpStatus ์ฝ๋๋ฅผ ์ฝ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ธ๋ฐ, @ResponseStatus() ์ด๋ ธํ ์ด์ ์ ๋ถ์ด๋ฉด ์กฐ๊ธ๋ ์ง๊ด์ ์ธ ์ฝ๋๊ฐ ๋ ๊ฒ์ด๋ผ ์๊ฐํ์ต๋๋ค. ( * ์ฌ์ค httpStatus ๋ฅผ ๋๊ธฐ๋ ๊ฒ๊ณผ @ResponseStatus() ์ด๋ ธํ ์ด์ ์ ๋ถ์ด๋ ๊ฒ์ ์ฐจ์ด๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ) @ControllerAdvice public class KlagoExceptionAdvice { @Excep..
2021.12.22 -
Spring-boot, postgresql ์ฐ๋ ์ค ๋ฐ์ํ ์๋ฌ
์๋ ๋นจ๊ฐ ๋๊ทธ๋ผ๋ฏธ๋ฅผ postgres ๋ผ๊ณ ๋ง ์จ๋์ ๋ฐ์ํ ์๋ฌ -> postgresql ๋ก ์์ ํ์ฌ buildํ๋ค. ์๋ฌ ํด๊ฒฐ :)
2021.07.11