한 주간 배우면서 새로 알게된 개념이나 잘 못 알았던 개념을 서로 나누어 보아요.
유민환
@CsvSource
에서 Enum 받기
@DisplayName("해당하는 MenuType을 반환한다.") @ParameterizedTest @CsvSource(value = {"create,CREATE", "list,LIST", "exit,EXIT"}) void of_MenuCommand_ReturnMenuType(String command, MenuType menuType) throws WrongInputMenuException { assertThat(MenuType.of(command)).isEqualTo(menuType); }
- logback의 filter 기능
- 테스트 코드에서는 하드코딩을 하자
- 테스트 코드에서는 소프트 코딩 즉, 도메인 로직을 사용하지 않는 것이 좋다.
- Mockito를 무작정 사용하는 것이 맞을까?
- 무분별하게 테스트 더블을 활용하지 말고 실제 객체를 사용하되 어려운 경우 테스트 더블을 사용하는 것이 좋아 보입니다.
박우진
- Connection Pool은 커넥션 객체를 일정량 모아둔 pool에 생성해두고 계속 재활용하는 방식이다
- 테스트 코드에서 @ValueSource, @EnumSource를 사용하면 지정한 배열값으로 테스트가 가능하다.
- @TestInstace를 테스트코드에서 사용하면 테스트 인스턴스의 라이프 사이클을 설정할 수 있다.
- 트랜잭션 격리수준과 전파수준
- 스프링에서 어노테이션을 통해 트랜잭션을 설정해주려면 @Transactional과 함께 @EnableTrasactionManagement를 사용해줘야 적용이 된다.
- 커스텁 익셉션은 언제써야할까?
- 표준 예외로도 충분히 명시가 가능할 경우처리가 가능한 경우면 표준 예외를 사용하고 표준 예외로 명시가 제대로 안되면 커스텀 익셉션을 쓰라는것 같습니다. 상세한 예외 정보 제공 등..
김수빈
강용수
Resouce로 파일 읽기
- application.getResource("classpath:file_name")
- 스프링 부트가 시작되면 resources 폴더의 파일을 읽는다
- 그 후 target 폴더에 동일한 파일이 생겨 애플리케이션이 실행되는 동안 target폴더의 파일을 계속 읽게 된다.
- resources폴더의 파일이 수정되더라도 수정 부분이 반영되지 못함.
- application.getResource("file:"+절대경로)
- 절대 경로를 지정하면서 수정된 파일을 읽을 수 있게 되었음.
김재욱