[Numble] 23-03 인스타그램 챌린지_소개 및 프로젝트 환경설정

devholic (David)·2023년 3월 28일
0

넘블_챌린지

목록 보기
1/4
post-thumbnail

넘블 챌린지 시작

23년 3월 24일, 계속 기다리고 있었던 넘블 인스타그램 챌린지가 시작되었다.

👀 넘블?

넘블 (Numble)은 실제 서비스와 유사한 기능들을 모아놓은 서비스를 만들어볼 수 있는 연습을 하며, 실제 현직자로 계신 분께 코드 리뷰도 받아볼 수 있는 챌린지들이 있는 플랫폼이다. 기획, 디자인, 웹 프론트엔드, 백엔드 직군의 사람들이 각각 개인적 직무로 프로젝트를 해볼 수 있으며, 또는 이 직무들이 연계되어 프로젝트를 해 볼수도 있다. (기간은 약 3주 정도이다.)

인스타그램 챌린지

나는 스프링을 활용한 백엔드 직군을 준비할 것이기 때문에, 그와 관련된 인스타그램의 서버 API를 연습해볼 수 있는 챌린지를 신청하였다. 제공된 API의 예시로는 다음과 같았다.

  • 회원가입 및 로그인, 탈퇴 (단, 닉네임으로만 진행되어야 함)
  • 글 생성, 수정, 삭제
  • 댓글 생성, 수정, 삭제
  • 답글 생성, 수정, 삭제
  • 피드 조회
  • DM
  • JWT + Spring Security를 통한 보안 및 인증
  • AWS Elastic beanstalk + Github Actions를 통한 CI/CD 작업
  • 팔로우 등록 및 취소

초기 생각

나는 작년에 멋쟁이사자처럼 활동을 하면서 node.js를 활용해 백엔드 개발을 했었으나, 스프링을 활용한 프로젝트를 만들어 본 적은 없다. 그래서 과연 제대로 할 수 있을까? 라는 생각이 들었으나, 기왕 프로젝트를 진행해볼 거 아예 코드 리뷰를 받아보자는 생각으로 옵션2를 결제했기에 무조건 최소한 리뷰 받을 수 있을 정도로까지는 해 보자는 생각이 들었다. 이번 챌린지를 통해서 확실히 얕게 알고 있었던 스프링을 이해하는 데 더 가까워질 수 있을 것이라고 생각한다.

프로젝트 환경설정

더 이상의 소개는 생략하고, 설정했던 프로젝트 환경설정을 보겠다.
프로젝트는 스프링 환경에서 진행할 것 이기에, 스프링부트를 통해 프로젝트를 생성하였다.

데이터베이스로 MySQL을 사용할 것이기에 MySQL Driver를 선택하고, json 형식으로 결과를 출력할 것이기에 Spring Web, 요구사항을 반영하기 위해 Spring Security를 적용하였다. 또, 개발을 하면서 편의성을 얻기 위해 Lombok도 선택하였고, Spring Data JPA를 사용하여 데이터베이스에 접근할 것이므로 Spring Data JPA를 선택하였다.
자바 버전은 17을 적용하였다.
이외에도 JWT 설정을 위해 build.gradle에 다음과 같이 의존 코드를 작성했다.

implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.2'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.2'

lombok 어노테이션을 사용한다면 어노테이션 처리 활성화를 해야 한다! 설정 창에서 적용할 수 있다.

나머지 내용은 다음 글에서 작성하겠다.

profile
개발이 너무 좋아요

0개의 댓글