분류 전체보기
[Spring] 설정파일과 Bean 사이의 순환참조(circular references) 이슈 및 해결
[Spring] 설정파일과 Bean 사이의 순환참조(circular references) 이슈 및 해결
2022.10.31Spring Security만을 사용해서 개인 프로젝트에 간단한 회원가입과 인증 프로세스를 개발하면서 부딪혔던 내용 중 하나를 정리하고자 합니다. Spring Security 설정파일 작성 후 애플리케이션 실행 시 발생했던 순환참조(circular references, dependency cycle)에 대해 기록한 내용입니다. 📌 1. 개발했던 내용 오직 Spring Security 내용을 가지고 인증 프로세스를 구현했던 내용을 정말 간단하게 요약하고 문제상황을 보여드리는게 좋을 것 같습니다. /** * 실제 인증 절차 수행 * @property userDetailsService email로 계정 찾기 */ @Component class ApiAuthenticationProvider( private va..
[JUnit] mock을 이용한 신규 생성 로직 단위 테스트(JUnit5, mockito)
[JUnit] mock을 이용한 신규 생성 로직 단위 테스트(JUnit5, mockito)
2022.08.13(메인 사진 출처: https://famunity.net/kotlin-junit5/) 개인프로젝트 진행하며 카페 도메인 신규 생성 서비스 로직에 대한 단위테스트를 적용했던 내용을 기록겸 작성한 글입니다. 서비스 단위 테스트를 위해 JUnit5, mockito를 이용하여 진행하였습니다. 📌 1. 서비스 테스트를 위한 기본 구성 @ExtendWith(MockitoExtension::class) @TestMethodOrder(MethodOrderer.DisplayName::class) internal class CafeServiceTest { @InjectMocks lateinit var mockCafeService: CafeService @Mock lateinit var mockCafeRepository: ..
[Kotlin] "companion object of enum class is uninitialized" 이슈 해결
[Kotlin] "companion object of enum class is uninitialized" 이슈 해결
2022.07.29실무에서 자바 to 코틀린 변환 작업을 하면서 자바 enum class를 코틀린으로 변환하는 과정에서 있었던 이슈 하나를 기록해보고자 합니다. 📌 1. Java Enum static method public enum HelloJavaStrategy { KOREAN(convertLang(Locale.KOREAN)), ENGLISH(convertLang(Locale.ENGLISH)), JAPANESE(convertLang(Locale.JAPANESE)); private final String hello; HelloJavaStrategy(String hello) { this.hello = hello; } public String getHello() { return hello; } private static S..
[Spring Core #2] 스프링 컨테이너와 스프링 빈 (스프링 핵심 원리 강의정리)
[Spring Core #2] 스프링 컨테이너와 스프링 빈 (스프링 핵심 원리 강의정리)
2022.07.12Index 📌 스프링 컨테이너 생성 - 스프링 컨테이너 생성 과정 📌 컨테이너에 등록된 모든 빈 조회 📌 스프링 빈 조회 - 기본 - 스프링 빈 조회 (동일한 타입 둘 이상인 경우) - 스프링 빈 조회 (상속 관계) 📌 BeanFactory와 ApplicationContext - BeanFactory - ApplicationContext 📌 다양한 설정 형식 지원 - XML, 설정 클래스 파일 📌 스프링 빈 설정 메타 정보 - BeanDefinition 📌 정리 해당 내용은 강의 내용을 기억하기 위한 정리글입니다. 자세한 내용은 강의에서 확인하실 수 있습니다. (저는 코틀린 베이스로 강의를 진행하였고 게시글의 코드 예시는 대부분 코틀린으로 이루어져 있습니다.) 스프링 핵심 원리 - 기본편(김영한님) #광..
[Spring Core #1] 스프링의 객체 지향 원리 적용 (스프링 핵심 원리 강의정리)
[Spring Core #1] 스프링의 객체 지향 원리 적용 (스프링 핵심 원리 강의정리)
2022.07.01Index 📌 새로운 요구사항의 추가 📌 관심사 분리 📌 AppConfig 리팩토링 📌 좋은 객체 지향 설계 5가지 원칙 적용 📌 IoC, DI, 컨테이너 📌 정리 해당 내용은 강의 내용을 기억하기 위한 정리글입니다. 자세한 내용은 강의에서 확인하실 수 있습니다. (저는 코틀린 베이스로 강의를 진행하였고 게시글의 코드 예시는 대부분 코틀린으로 이루어져 있습니다.) 스프링 핵심 원리 - 기본편(김영한님) #광고아님, #내돈내산, #적극추천 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 📌 새로운 요구사항의 추가 주문서비스가 있고 주문..
[Spring] 객체 지향 설계를 극대화한 스프링의 핵심 개념 정리
[Spring] 객체 지향 설계를 극대화한 스프링의 핵심 개념 정리
2022.06.20Index 📌 스프링 탄생 배경 - EJB의 한계 - 스프링의 등장 📌 스프링의 핵심 📌 객체 지향 5가지 원칙과 스프링 - 스프링 IoC와 DI - 스프링은 객체지향 원칙을 잘 준수해요 📌 정리 📌 1. 스프링의 탄생 배경 1-1. EJB 한계 지금은 알 필요가 없는 EJB읜 한계를 극복하기 위해 로드 존슨 형님이 스프링을 제안하였고 이를 개발했습니다. (유겐 휠러 형님이 사실상 스프링 대부분의 코드 지분을 가지고 있음) EJB(Enterprise Java Beans)에 대해서 본인은 이쪽 세대도 아니었고 한 번도 사용해본 적이 없었기 때문에 EJB 개념조차 제대로 알지 못합니다. 하지만 스프링이 왜 태어났는지에 대해서 찾아보거나 강의를 듣게 되면 EJB는 빠짐없이 등장합니다. 대략적으로 스프링이 탄생..