728x90
반응형
728x90
반응형
# Situation 신규 프로젝트 생성 후 필요한 Gradle Dependency 추가 Application 구동 테스트 시 에러 ## Error Log Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 간단하게 직역하면, Database 연결을 위한 URL이 없다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 즉, jpa dependency 추가 시 자동으로 Database 설정을 진행하는데 이때 연결을 위한 Database URL이 없다는 의미이다. Consider..
# Heroku Heroku는 다양한 언어를 지원하는 클라우드 Paas이다. Paas (Platform as a Service) 클라우드 컴퓨팅 서비스 중 하나이다. 앱을 개발하거나 구현할 때, 관련 인프라를 구축하고 유지 보수하는 작업 없이 쉽게 애플리케이션을 개발, 실행, 관리할 수 있게 도와주는 플랫폼 서비스이다. https://heroku.com/ Heroku dashboard.heroku.com ## 회원 가입 https://id.heroku.com/login Heroku | Login id.heroku.com ## Pipeline 생성 Heroku에 로그인하면 Dashboard 페이지가 열린다. 여기서 이제 Heroku Pipeline을 생성한다. Pipeline Name을 입력하고 owne..
# Mockito @ExtendWith(MockitoExtension.class) Mockito의 Mock 객체를 사용하기 위해 선언 JUnit4는 RunWith(MockitoJUnitRunner.class) 사용 @InjectMocks 생성한 Mock 객체를 주입 sut : system under test @Mock Mock 객체를 생성 FLOW given - when - then given : 테스트 대상의 초기 상태 when : 어떤 상황이 되었을 때 then : 기대하는 상태 given 게시글 ID를 선언하고, 해당 ID로 조회하면 해당 게시글을 리턴 받는다. 일반적으로 Mockito의 when()을 given에 사용한다. 그래서 사용하는 것이 BDDMockito의 given()이다. when s..
@WebMvcTest Controller Layer Slice Test Application Context를 완전하게 구동하지 않고 Web Layer Test 진행 시 사용 즉, Present Layer 관련 Component만 Scan @SpringBootTest는 모든 Bean을 Load하기에 테스트 구동 시간이 길고, 무겁다 # Example @WebMvcTest(ArticleController.class) 명시한 Controller 지정 스캔 가능 MockMvc Test용 MVC 환경을 만들어 요청, 전송, 응답 기능을 제공하는 Utility Class 생성자 주입 사용, 이때 test package에서는 @Autiwired 생략이 불가능 Flow Controller를 거쳐 View가 호출 되는지..
# Config @EnableJpaAuditing Audit 기능 활성화를 위한 어노테이션 AuditorAware createdBy, modifiedBy 맵핑을 위해 Bean 등록 # Auditing Field Entity 공통 요소를 추출하여 소스 중복 제거 createdAt createdBy modifiedAt modifiedBy @EntityListeners(AuditingEntityListener.class) Entity가 DB로 load/persist 되기 전후에 커스텀 로직을 선언하는 인터페이스 AuditingEntityListener 특정 어노테이션을 탐색하여 Entity 변경 시 해당 값들을 자동으로 업데이트 @CreatedDate @CreatedBy @LastModifiedDate @La..
AOP (Aspect Oriented Programming) 관점 지향 프로그래밍 흩어진 Aspect를 모듈화할 수 있는 프로그래밍 기법이다. 동일한 색상의 선을 중복되는 메서드 & 필드 & 코드라고 가정할 때, 여러 클래스에 반복되서 사용 되기 때문에 흩어진 관심사(Crosscutting Concerns)이라 부른다. 그리고 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것이 AOP다. Interceptor, Filter도 일종의 AOP이다. 또한, 중복되는 주황색 부분의 수정이 생기면 A, B, C 클래스 모두 수정을 해야 한다. 이는 SOLID 원칙 중 SRP(Single Responsibility Programming)에 위반된다. Spring AOP 스프..