트러블 슈팅

프로젝트/팀 프로젝트 - MyPill

[트러블 슈팅] - MultipartFile 테스트 케이스

배경 이전에 언급한 MultipartFile 처리와 연결되는 이슈다. [트러블 슈팅] - MultipartFile 예외 처리 배경 프로젝트에서 게시글 작성 시 이미지를 첨부하는 기능을 추가했다. 이미지는 MultipartFile의 형태로, 프론트로부터 받아왔다. 기존 게시글 작성 메서드에 매개변수로 MultipartFile을 추가했고, hojunking.tistory.com 이미지 첨부 기능을 추가하면서, 게시물을 작성하는 create 메소드에 MultipartFile을 매개변수로 추가되었다. create 메소드에 대한 기존 테스트 케이스는 이미지 첨부 기능 이전에 작성하였기에 수정이 필요했다. 문제 상황 이전에 작성한 글에 나오는 이슈와 마찬가지로 null 값을 매개변수로 전달하는 방식을 시도했다. 그..

프로젝트/팀 프로젝트 - MyPill

[리팩토링] @NotNull vs @Column(nullable = false)

배경 프로젝트 MyPill은 도메인을 나누었고, 독립적으로 개발을 진행했다. 전체 리팩토링 과정에서 살펴보니 @NotNull 과 @Column(nullable = false) 를 혼용해서 사용하고 있었다. 필드에 Null 값이 들어올 수 없다는 공통적인 목적을 가진 것인데, 통일시키기 이전에 두 방식의 차이가 궁금해 찾아보았다. 공통 환경 엔티티 @Entity @Getter @Builder @AllArgsConstructor @NoArgsConstructor @Table(name = "categories") public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "category_id") p..

프로젝트/팀 프로젝트 - MyPill

[트러블 슈팅] - MultipartFile 예외 처리

배경 프로젝트에서 게시글 작성 시 이미지를 첨부하는 기능을 추가했다. 이미지는 MultipartFile의 형태로, 프론트로부터 받아왔다. 기존 게시글 작성 메서드에 매개변수로 MultipartFile을 추가했고, 이미지를 처리하는 코드를 추가했다. 이미지를 추가하지 않은 게시글이 존재하도록 설계했기 때문에, 이미지를 추가했을 때에만 이미지 처리 작업이 진행되어야 했다. 따라서, 이미지 추가 여부를 확인하는 예외 처리 코드를 작성했다. 그러나, 코드가 원하는 방식으로 작동하지 않았다. 문제 상황 이미지를 처리하지 않았을 때 MultipartFile 이 null 값을 반환할 것이라고 예상했다. 따라서, 예외 처리를 위해 다음과 같은 코드를 추가하였다. if(multipartFile != null){ //이미..

프로젝트/팀 프로젝트 - MyPill

[개선 작업] @Value → @ConfigurationProperties

배경 프로젝트 기간이 끝난 후 서면 피드백을 받았다. 발표 직후 받은 피드백을 포함하여 정리한 내용은 다음과 같다. 1. 테스트가 실패했다. 2. @Value 대신 @ConfigurationProperties 사용을 고려해 봐라 실제로, 시크릿 키를 담은 “Application-secret.yml”이 없을 때 테스트가 실패했다. 테스트 실패 원인은 @Value 때문이 아니었고, 간단하게 해결했다. 따라서, @ConfigurationProperties에 대해 알아보고 적용했다. 추가 학습 @Value VS @ConfigurationProperties Relaxed Binding @Value는 정확히 일치하게 적어야 해당 값을 매칭할 수 있다. @Configuration은 정확히 일치하지 않아도 특정 규칙을..

호준송
'트러블 슈팅' 태그의 글 목록