멋쟁이사자처럼 3기 백엔드 스쿨을 수강하면서, 웹 배포 분야도 배우게 되었다. 이와 관련해서 Naver Cloud Platform 에서 예비/주니어 개발자를 위해 크레딧을 지급하는 서비스에 대해 소개받았다. 소개받기 전에는 AWS 에 대해서만 알고 있었는데, AWS 프리티어를 사용 하고 요금 폭탄을 맞았다는 말을 많이 들어 조심스러웠다. 네이버 클라우드 플랫폼의 크레딧 덕분에 요금 폭탄 걱정 없이 배포를 진행했다. 신규 가입 10만원 크레딧을 제공했고, 이후 20만원의 크레딧이 제공되었다. 20만원의 크레딧은 아마 멋쟁이사자처럼 측과 연계하여 지급되는 것 같다. 이후 70만 크레딧을 추가로 제공한다고 한다. 사용 내용 멋사 수업기간 중 4주 프로젝트를 2회 진행했는데, 두 프로젝트 모두 내가 배포를 맡게..
배경 이전에 언급한 MultipartFile 처리와 연결되는 이슈다. [트러블 슈팅] - MultipartFile 예외 처리 배경 프로젝트에서 게시글 작성 시 이미지를 첨부하는 기능을 추가했다. 이미지는 MultipartFile의 형태로, 프론트로부터 받아왔다. 기존 게시글 작성 메서드에 매개변수로 MultipartFile을 추가했고, hojunking.tistory.com 이미지 첨부 기능을 추가하면서, 게시물을 작성하는 create 메소드에 MultipartFile을 매개변수로 추가되었다. create 메소드에 대한 기존 테스트 케이스는 이미지 첨부 기능 이전에 작성하였기에 수정이 필요했다. 문제 상황 이전에 작성한 글에 나오는 이슈와 마찬가지로 null 값을 매개변수로 전달하는 방식을 시도했다. 그..
배경 프로젝트 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..
배경 프로젝트에서 게시글 작성 시 이미지를 첨부하는 기능을 추가했다. 이미지는 MultipartFile의 형태로, 프론트로부터 받아왔다. 기존 게시글 작성 메서드에 매개변수로 MultipartFile을 추가했고, 이미지를 처리하는 코드를 추가했다. 이미지를 추가하지 않은 게시글이 존재하도록 설계했기 때문에, 이미지를 추가했을 때에만 이미지 처리 작업이 진행되어야 했다. 따라서, 이미지 추가 여부를 확인하는 예외 처리 코드를 작성했다. 그러나, 코드가 원하는 방식으로 작동하지 않았다. 문제 상황 이미지를 처리하지 않았을 때 MultipartFile 이 null 값을 반환할 것이라고 예상했다. 따라서, 예외 처리를 위해 다음과 같은 코드를 추가하였다. if(multipartFile != null){ //이미..
배경 프로젝트 기간이 끝난 후 서면 피드백을 받았다. 발표 직후 받은 피드백을 포함하여 정리한 내용은 다음과 같다. 1. 테스트가 실패했다. 2. @Value 대신 @ConfigurationProperties 사용을 고려해 봐라 실제로, 시크릿 키를 담은 “Application-secret.yml”이 없을 때 테스트가 실패했다. 테스트 실패 원인은 @Value 때문이 아니었고, 간단하게 해결했다. 따라서, @ConfigurationProperties에 대해 알아보고 적용했다. 추가 학습 @Value VS @ConfigurationProperties Relaxed Binding @Value는 정확히 일치하게 적어야 해당 값을 매칭할 수 있다. @Configuration은 정확히 일치하지 않아도 특정 규칙을..