23년 3월 24일, 계속 기다리고 있었던 넘블 인스타그램 챌린지가 시작되었다.
넘블 (Numble)은 실제 서비스와 유사한 기능들을 모아놓은 서비스를 만들어볼 수 있는 연습을 하며, 실제 현직자로 계신 분께 코드 리뷰도 받아볼 수 있는 챌린지들이 있는 플랫폼이다. 기획, 디자인, 웹 프론트엔드, 백엔드 직군의 사람들이 각각 개인적 직무로 프로젝트를 해볼 수 있으며, 또는 이 직무들이 연계되어 프로젝트를 해 볼수도 있다. (기간은 약 3주 정도이다.)
나는 스프링을 활용한 백엔드 직군을 준비할 것이기 때문에, 그와 관련된 인스타그램의 서버 API를 연습해볼 수 있는 챌린지를 신청하였다. 제공된 API의 예시로는 다음과 같았다.
나는 작년에 멋쟁이사자처럼 활동을 하면서 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
어노테이션을 사용한다면어노테이션 처리 활성화
를 해야 한다! 설정 창에서 적용할 수 있다.
나머지 내용은 다음 글에서 작성하겠다.