[Numble] 23-03 인스타그램 챌린지_회고록 작성

devholic (David)·2023년 4월 12일
1

넘블_챌린지

목록 보기
3/4
post-thumbnail

갑작스런 회고록

원래 회고록을 작성하기 전에 글을 더 작성하고 싶었지만.. 내일까지 최종 제출을 해야 하다보니 회고록을 먼저 작성해본다.

아쉬운 점

코로나 감염

가장 아쉬운 점은 그동안 전혀 걸려보지 않았던 코로나를 마감이 열흘 정도 남았을 때 걸렸다는 것이다. 3-4일 간 아무것도 하지 못하게 되면서 시간이 더 촉박해진 게 프로젝트를 끝까지 완료하지 못한 이유 중 하나인 것 같다.

CI / CD 배포 최종 실패

연습용 레포지토리에서 CI / CD가 성공한 후 RDS를 연결하기만 하면 문제없겠다는 생각이 들었었는데, 예상치 못했던 곳에서 계속 막혀서 CI / CD 부분도 최종적으로는 실패하였다.

버전 라벨링 불일치

첫 번째로 마주했던 문제는 ELB에 배포 파일을 업로드하는 것 까지는 문제 없었으나, 계속 예상된 버전 이름과 다르다는 이유로 배포까지 가지 못했었다.

다른 글들을 참고하면서 롤링 업데이트와 배포추가 배치를 사용한 롤링으로 했었는데, 추가 배치를 사용한 롤링은 새로운 인스턴스를 하나 더 만드는 방식으로 하는 것이다보니 두 인스턴스 간 가지고 있는 배포 버전 이름이 다르기 때문에 발생한 문제라고 생각이 들었다. 한 번에 모두 방식으로 변경을 하니 이 문제는 해결할 수 있었다.

health-check 에러 발생

남은 문제는 ELB의 헬스 체크 에러가 발생한 것이다. 아마도 Nginx나 ELB의 포트 설정에 대한 문제인 것 같은데, 어떤 방법을 시도해봐도 해결되지 못해 결국 최종 배포를 하지 못했다. (깃허브 액션에서 작업한 파일이 ELB에 배포되는 것은 완료했으나, 해당 파일로 돌렸을 때 502 에러가 나고 있다.

배운 점

그래도 배운 점은 매우 많았다.

백엔드 프로젝트를 진행해본 것

스프링으로 방향을 바꾸면서 그동안 해 본 프로젝트는 간단한 게시판 프로젝트밖에 없었는데, 작년에 node.js를 활용해 개발을 했던 것 처럼 백엔드 일원으로서 주어진 API 문서를 만드는 경험을 할 수 있어 좋았다. 더욱이 나는 아직 스프링 데이터 JPA를 사용해본 적이 없는데, 이렇게 직접 부딪히면서 스프링 데이터 JPA를 시도해보니 이후에 이론을 학습한다면 더 빠르게 학습할 수 있을 것 같다는 생각이 들었다. (이것이 영한 님이 말한 야생형 학습 같다.)

CI / CD를 시도해본 것

완료를 하지 못했고, 구현 위주로만 학습하긴 했지만 아예 불가능하다고 여겨졌던 CI / CD에 대해 예전보다는 자신감이 살짝(1% 정도..?) 생기게 되었고, 큰 관점에서의 원리는 어느 정도 이해된 것 같다는 생각이 든다. 그러나 위에서도 언급했듯이 이 프로젝트가 끝났다고 해서 미완성인 채로 끝내기보다는, 1, 2, 3등한 분들의 레포지토리와 코드 리뷰 등을 받으면서 부족했던 부분을 끝까지 완수할 계획이다.

스프링 시큐리티 추가 학습

스프링 시큐리티와 JWT 또한 구현에만 급급했기에 아직까지 작성한 파일들에 대해 깊이 있게 학습한 상태는 아니다. 그렇기 때문에 비밀번호와 권한 없이 오직 닉네임만으로 로그인 및 회원가입을 해야 하는 과정에서 어떻게 코드를 작성했는지 아직도 개념이 부족하다. 스프링 시큐리티와 JWT는 기본적인 로그인 및 회원가입에서 자주 사용되는 만큼, 더 깊이 있게 학습해야겠다는 생각이 들었다.

인프라 추가 학습

결과적으로 프로젝트를 실패한 원인 중에는 인프라에 대한 개념도 잘 확립되지 않았기 때문으로 여겨진다. 이제 AWS에서 제공되는 인프라 관련 내용들, 그리고 다른 블로그 등에서 참고할 수 있는 지식 등으로 인프라에 대한 학습도 진행하여 CI / CD에 대한 내용을 더 공부해야겠다고 느꼈다.

결론

가장 바쁜 3-1학기를 보내면서 처음 해보는 넘블 프로젝트를 하는 것은 절대 쉬운 일이 아니었다. 대학생 분들은 진짜 넘블에 대한 시간을 많이 투자할 수 있을 것이 아니라면 방학 중에 하는 것을 권장하며, 만약 끝까지 완주했다면 프로젝트를 시작하기 전 보다 더 많은 것을 배울 수 있을 것이라고 생각한다. 참고로 API 문서에 대한 가이드만 있을 뿐, 해당 기능을 구체적으로 어떻게 완료할 수 있을 지에 대한 것은 본인 스스로 학습해야 한다.
나한테는 이번 학기에 넘블을 신청한 것은 매우 적절한 선택이었다. 다음 프로젝트를 할 때는 지금보다 더 성장하고 완성도 높은 프로젝트를 만들기를..!

향후 할 것

  • 1 ~ 3등 레포지토리 보면서 CI / CD 어떻게 해결했는지 참고하기
  • 현직자의 코드 리뷰를 통해 더 성장하기
  • 테스트 코드 작성하기
  • 벨로그 등에 넘블을 하면서 배운 점 등을 더 기록해두기
  • GitBook을 통해 문서화를 더 깊이 있게 하기
profile
개발이 너무 좋아요

0개의 댓글