본문 바로가기

Development/TIL

클론 코딩 프로젝트 회고

오늘 클론 코딩 프로젝트를 발표하고 종료되었다.

토이 프로젝트를 한 차례 진행한 경험이 있어서인지

전체적인 진행에 지난번과 같은 아쉬움은 없었다.

 

 

프로젝트 발표에서 기술 매니저님의 피드백

// 게시물 작성
  createPost = async (req, res) => {
    try {
      const { user_id } = res.locals.user;
      const { content } = req.body;
      const img_urls = req.img_url;

      if (!content) {
        return res.status(412).json({ errorMessage: '게시글 내용을 입력해주세요.' });
      }

      // content만 입력할 경우
      if (img_urls === undefined) {
        const createPostData = await this.postService.createPost(
          user_id,
          content,
        );
        console.log(createPostData);
      };

      // 이미지 파일을 함께 업로드 할 경우
      if (img_urls !== undefined) {
        const createPostImageData = await this.postService.createPostImage(
          user_id,
          content,
          img_urls,
        );
        console.log(createPostImageData);
      }

      return res.status(200).json({ message: "게시물 작성에 성공했습니다." });
    } catch (err) {
      console.error(err);
      return res.status(400).json({ errorMessage: '요청한 데이터 형식이 올바르지 않습니다.' });
    }
  };

현재 프로젝트의 post.controller.js 파일의 일부 코드는 위와 같다.

에러 핸들링과 클라이언트에게 받은 요청 validation이 모두 이루어지고 있다. 

하지만 매니저님은 controller 계층은 클라이언트의 요청을 받고 응답을 주는 역할로 한정해두는 것이 좋다고 하셨다.

에러 핸들링과 논리 로직은 service계층에서! 그런데 클라이언트에게 받은 요청을 토대로 validation을 해야하면 어떻게 하냐고 질문했더니 joi를 사용하라고 하셨다. (본적은 있지만 실제 사용해본적은 없는.........) 아무튼 그렇다고 한다.

종료된 프로젝트의 코드를 내버려두지말고 새로배운 것들을 적용해보며 틈틈히 리팩토링을 해봐야겠다.

 

 

회고

알게된 것

  • multer를 사용하여 single, multiple 컨텐츠 파일 업로드
  • aws S3와 Cloud Front 사용 및 적용했을 때 장점
  • 코드 에러를 해결하는 자세
    => 에러 메세지를 정확히 이해하고 코드를 한줄씩 차근차근 살펴보기 (생각보다 쉽지 않다)

 

아쉬운 점

이번에 거의 유일한 아쉬운 점은 나 자신에게 있었다.

약간의 기능이 추가된 CRUD만 구현했을 뿐 도전적인 과제를 수행해보지는 못한 것 같다.

마지막에 jest를 이용한 테스트 코드를 작성해보려고 했지만 아직 나에겐 적용하기 어려웠다.

거기다 약간의 게으름도 추가.....

이제 내일부터 최종 프로젝트가 시작되는데 풀어졌던 마음을 다시 조이고 종료까지 스퍼트해야겠다!

 

 

부끄럽지만 이번 프로젝트의 github 주소를 공유해본다.

'Development > TIL' 카테고리의 다른 글

기획 단계의 소통과 의사 결정에 대하여  (0) 2023.05.20
최종 프로젝트 시작  (0) 2023.05.20
S3와 cloud front 속도 비교  (0) 2023.05.18
type error  (0) 2023.05.17
multer multiple 적용  (0) 2023.05.16