[원티드 프리온보딩 백엔드] 사전 과제를 구현해보다.

원티드 프리 온보딩 사전과제에서 구현한 기술들을 정리하고자 합니다.

🟤 원티드 프리온보딩을 신청하다.

백엔드로 전향하기 위해 스터디한지 어연 6개월차가 다 되어간다. 본격적인 구직을 하기 앞서 여러 사람들을 만나 개발 지식들을 나누고 스터디하는 그룹들을 찾고 싶었는데 마침 원티드에서 프리온보딩 백엔드 코스를 진행하는 것을 보게 되었다. 구직에 필요한 정보와 여러 도움들도 함께 제공하기에 1석 2조라 생각하여 모집 공고글을 본 즉시 바로 신청 사이트에 접속하였다.

하지만 원티드 프리온보딩에 참여하려면 몇가지의 주어진 과제를 이행하여 제출하고 선발되어야 했다. 이 글은 원티드 프리온보딩 사전 과제를 구현해보고 사용했던 기술들에 대해 정리해보고자 하기 위한 목적으로 쓰려고 한다.


🌱 사전 과제에서 주어진 구현사항

가능한한 추가 기능 구현까지 모두 구현해보고 싶었다. 필수로 주어진 과제는 간단한 CRUD를 통해 게시판을 만들어보고, 좀 더 나아가 JWT를 사용한 사용자 인증, 게시판 모델링 등이 있었다. 추가 구현 사항으로는 단위 or 통합 테스트 코드를 작성하기, docker-compose로 간단한 서버 환경 구축하기, AWS로 배포 후 해당 도메인으로 API 작동 확인하기 등이 있다.

  • 필수 구현사항
    • JWT로 로그인 및 일부 API는 JWT를 통한 인증
    • 게시판 글 추가, 조회, 수정, 삭제
  • 추가 구현사항
    • 단위, 통합 테스트 코드 작성하기
    • docker-compose로 서버 환경 구축하기
    • AWS에 배포 후 배포된 도메인으로 API 작동 확인하기

이 정도로 정리할 수 있다. (당연히 게시판은 모델링까지 직접해야했다!)


🌱 기술적으로 정리해보고자 하는 것들

기술적으로 어떻게 고민했는지, 왜 이렇게 구현했는지 등을 생각해본 것들 위주로 정리해보고자 한다.

  1. JWT를 통한 사용자 인증(+ Session과 뭐가 다를까?)
  2. 게시판 모델링과 변경과 테스트 코드 이야기

🟤 원티드 프리온보딩 사전과제를 통해 느낀점

해당 과제를 구현하면서 시간이 제일 많이 소요된 기술은 JWT와 AWS EC2와 Docker-Compose로 서버 환경을 구축하는 것이었다.

이번 과제에서는 AWS EC2에서 docker-compose를 사용하지 않고 EC2 컴퓨팅 메모리에 직접 MySQL과 Java -jar 파일을 실행시켜 동작하도록 했다. 그 이유는 docker-compose가 내 로컬환경에서는 잘 동작하는데, EC2환경에서는 말썽을 계속 일으키는 바람에 일단 AWS에는 docker-compose를 사용하지 않았다. (포트 포워딩을 잘못해준건지.. 추후에 다시 차근차근 스터디해보아야할 내용라고 생각한다.) 애초에 EC2에 docker-compose로 한번에 서버 인프라 구성하는 것보다는 nginx로 https 리버스 프록시같은 로드벨런서도 추가해주고, EC2는 서버 어플리케이션, RDS 서버에 MySQL을 실행시켜 VPC로 묶어주는 등의 작업이 훨씬 인프라적으로 안정적이겠지만..혹시 모를 예산적 문제가 발생할 수도 있을 것 같아 일단 이렇게 구현했다.

그동안 AWS 등 인프라 관련된 스터디에 많이 소홀히했던 것 같은데 슬슬 분산 시스템에 대한 간단한 인프라 구축 등도 포함해서 스터디를 병행해야할 때가 온 것 같다. (면접에 대비하여..!) 이제는 기본적인 CS 및 Java, Spring에 관련된 지식들은 탄탄한 복습 위주로 스터디하고 조금씩 영역을 확장하면서 넓어진 개념에 deep dive하면서 CS와 연계하여 스터디해야겠다고 느꼈다. (특히 DB..!)


© 2021. All rights reserved.