본문 바로가기

개발 일지

[WIL] 사이드 프로젝트 주차(1월 30일 ~ 2월 5일)

 

1. 개발 진행 상황

 

30일(월): 프론트엔드에서 에러 확인 요청이 들어왔다! 

이 요청이 반가울 수가ㅠㅠ 부트캠프 끝나고 다들 취업 준비로 바쁘기도 하고.. 팀원 한명은 벌써 취업이 되기도해서 진행이 우리가 처음 잡았던 계획보다 더딘감이 조금 있긴하다.. 근데 이 에러 요청이 휘몰아 치면  스트레스에 취약한 내가 너무 힘들 것이기에... 

오랜만에 이 요청이 잠시 반가웠당...ㅎ 

 

두가지 문제였는데, 첫번째 문제는 너무나도 간단한 문제....그냥 HTTP 요청을 잘못한 거여서 따로 기록할 필요도 없을 것 같고

두번째 문제는 put 요청 할 때 이미지 처리 문제였음

내가 작성한 코드는 이미지가 없으면 NullPointException을 발생시키게 예외처리를 해놓고, 이미지 파일(jpg, jpeg, png.. 등)만 받을 수 있고, 그 이미지 파일은 aws에서 제공하는 s3버킷에 저장하고 URL를 반환받아 URL로 관리를 하는 형태로 되어있음

게시글 수정을 하는 경우 글 내용만 수정하고 이미는 수정하지 않는 경우를 생각안한 것이 문제였다.

일단 이미지를 안넣으면 널포인트익셉션이 발생할 것이고, 기존에 작성한 이미지를 넣으려고 URL을 넣으면 이미지 파일이 아닌 URL 주소라서 받을 수 없는 상황이 발생하는 것...;; 

 

31일(화): 코드 수정

문제점 파악을 했으니 코드 수정을!

@PutMapping("/{postId}")
    public ResponseEntity<Object> updatePost(@PathVariable Long postId,
                                             @RequestPart(value = "data") @Valid PostRequestDto postRequestDto,
                                             @RequestPart(value = "image", required = false) MultipartFile image,
                                             @AuthenticationPrincipal UserDetailsImpl userDetails) throws IOException {
                                             //...
}

required = false로 두어 해당 필드가 없는 경우에도 nullpointException이 발생하지 않도록 하고

 

        if (image != null) {
            s3Uploader.deleteImage(imageUrl, "post/image");
            imageUrl = s3Uploader.upload(image, "post/image");
        }

        post.update(postRequestDto, imageUrl);

새로운 이미지가 있는 경우에만 기존에 저장되어있는 이미지를 삭제하고 새로 저장되도록 코드를 수정하였다.

이미지가 적용된 다른 코드들도 살피고, 테스트 코드도 작성하였다.

 

1일(수): 서버 올리기

테스트 코드 작성해서 돌려보았지만... 난 그래도 아직도... 로컬 서버도 돌려보고 포스트맨도 돌려보고 다 해봐야 마음이 편안~~

해지는 그런게 있다ㅠㅠ

그래도 예전에는 테스트 코드를 아예 안썼으니까... 코드 조금 고치고 서버 돌리고 포스트맨 해보고 x 무한 반복.. 노트북은 웅웅거리면서 돌아가고... 버벅거리고 그래었는데... 테스트 코드 좀 익숙해졌다고... 테스트 코드 먼저 돌리는 나.. 제법 멋지다...ㅎ

테스트 코드를 더 잘 쓰게 된다면 완전 의존할 수 있겠지...? 

 

그리고 서버 배포도 다 자동화 되어있어서 슝슝 금방 올렸다.

 

 

2일(목)

3일(금)

4일(토)

5일(일)

 

2. 새로 배운 것

 

3. TO-DO LIST

 

4.  11주차 회고