728x90
  • 협업/소통 툴 : Github, Trello, JANDI, KakaoTalk, Goolge Meet
  • 테스트 : Postman, JUnit
  • 배포환경 : EC2(Ubuntu, Nginx), RDS(MySQL)

개발 과정 요약

  1. 프레임워크, DBMS 선정 [2021/10]
  2. Node.js + MySQL 로 선정했다. [2021/10]
  3. 와이어프레임 분석 후 API 명세서 작성 [2022/01 ~ 2022/07 개발 중에도 변경사항 생기면 즉시 반영]
  4. ERD 설계 [2021/10 ~ 2022/07 개발 중에도 변경사항 생기면 즉시 반영]
  5. 백엔드 협업 불가 문제로 Node.js 개발 중단 결정새로운 팀원 영입 결정 [2022/01/28]
  6. Spring 프레임워크로 전환새로운 팀원 영입 [2022/01/29]
  7. User/Post 파트를 나누어, 각자의 역할 부여 [2022/01/29]
  8. 주 4~6회 구글 미팅을 통한 백엔드 진행상황 공유 및 소통시작 [2022/01/29 ~ 배포 당일까지]
  9. Service, Repository 기능 구현 [2022/01/29 ~]
  10. 컨트롤러 연결 [2022/01/29 ~]
  11. 기능 구현 및 테스트(Postman) [2022/03]
  12. 실제 배포준비를 위해 EC2 인스턴스대여 및 RDB 대여 [2022/03]
  13. "가비아" 에서 도메인 대여 [2022/03]
  14. Nginx, Jdk, Gradle, Certbot 셋팅 [2022/03]
  15. 데모 배포 시작 [2022/03]
  16. PM(Android) + Front + Backend + IOS 모여서 테스트
  17. 완성 배포 시작 [2022/08]

담당 로직

User API

  • 아이디 중복확인
  • 이메일 중복확인
  • 회원가입
  • 이메일 인증
  • 아이디 찾기
  • 비밀번호 찾기
  • 비밀번호 재설정
  • 로그인 (Mobile Environment)
  • 로그인 (Web Environment)
  • 로그아웃 (Web Environment)
  • 토큰 재발급
  • 휴면 계정 처리
  • 회원탈퇴
  • 내 정보
  • 이용제한 내역 조회
  • 블랙리스트 내역 조회
  • 강의평가 신고하기
  • 시험정보 신고하기

Admin API

  • 관리자 로그인
  • 신고된 게시글 리스트 불러오기
  • 신고된 게시글 자세히 보기(강의평가)
  • 신고된 게시글 자세히 보기(시험정보)
  • 강의평가 삭제 및 유저 정지 조치
  • 시험정보 삭제 및 유저 정지 조치
  • 강의평가 삭제 및 유저 블랙리스트 조치
  • 시험정보 삭제 및 유저 블랙리스트 조치
  • 신고된 시험정보 이상 없음 조치
  • 신고된 강의평가 이상 없음 조치

With John

API 명세서 작성

스키마 설계

NGINX 셋팅

첫 배포!


회고

2021년 12월 말

Node.js 런타임 엔진과 Express.js 프레임워크로 서버개발을 진행했지만, 프로젝트가 진행되던 중 내부 이슈로 인해 더 이상 Node.js로 진행하지 않게 되었다.

2022년 1월

Node -> Spring 으로 변경을 결정하고 (큰 이유는 없었다. Spring이 단지 레퍼런스가 많다는 것이, 공부해보고 싶다는 욕구를 자극시켰을 뿐)

멘탈을 추스리며 잠깐의 휴식 중, Spring을 몇 주 전 공부한다고 했었던 지인에게 연락하여 바로 영입했다.

2022년 1월 초 ~ 3월초

새로 영입한 팀원과 나는 Spring이 처음이였기 때문에 밑바닥부터 함께 공부하면서 개발해내가기 시작했다.

(프로젝트 시작할때의 나의 수준 == Java 문법도 모름)

친한 지인이었기 때문에 서로 의견이 필요하면 즉석으로 구글미팅을 활용하고, 문제가 생기면 그것에 대한 것을 같이 알아보며 공부하고 조금씩 개발해 나갔다.

공부가 재미있었다.... (=우물안의 개구리였다.)

스터디카페에 매일 오전 11시에 출석하며 18 ~ 20시 정도까지 했다. (순수 공부시간과 일치하진 않겠지만...)

실제로 기능이 동작하고, 개념이 어떻게 쓰이는지 조금씩 체화되면서 흥미가 돋았다.

2022년 3월초 - 개강

약 2달간에 많은 기능들을 만들어내어 실제로 다른 파트분들을 위한 서버까지 대여해서 올렸었다.

이때, 거의 다 끝났다는 생각에 솔직하게 말하면 학기중에 설렁설렁 임했던 것 같다.

2022년 4월 - 현타

뭔가 큰 숙제가 끝났다고 생각하니 앞으론 어떤걸 공부해야하는지 뭐를 더 손을 봐야하는지를 생각을 하지도 못했고

하나만 바라보고 달려온 탓에 무엇인가에 의욕이 생기질 않았다.

2022년 5월 - 다시 시작

우연히 Udemy에서 주관하는 소규모의 자바 스터디에 참가했다. 사실 내가 실력이 뛰어난 것도 아니고, 완벽하게 프로젝트를 수행한 것이 아닌 것을 알기 때문에 무엇인가라도 다시 목표를 잡고 시작했다.

이때부터 백엔드 팀원인 지인과 같이 Java를 깊게 알아보고자 MoveForward-Java 라는 자바 스터디를 시작했다.

2022년 6월 - 역시나

자잘자잘한 버그를 제외하곤 API에 큰 문제가 없었던 찰나에, 휴면계정 처리부터 시작하여 유저에 관한 모든 로직이 꼬이기 시작했다.

지금와서 보면 Soft Delete 기법을 생각해내지 못한 탓이 너무나도 크지만 이땐 알지 못했다.

모든 비즈니스 로직부터 시작해서, NativeQuery로 작성된 로직을 하나씩 검토하고 코드를 다듬는 과정을 하며 API 서버를 재정비했다.

2022년 7월 초 - 테스트 또 역시나..

6월에 꽤나 버그를 많이 잡아서 "나 진짜 다 끝냈다" 를 입에 달고살았다.

하지만 PM Front Back IOS 가 모여서 테스트를 하는 첫 순간부터 버그가 터졌다.

또 휴면게정이였다. 나 때문에 모두가 몇 시간동안 아무것도 하지못한 채로 해산했다.

2022년 7월 말 - 이젠 정말로..

이 때 휴면계정에 Soft Delete를 적용했다. 또한 모든 API 로직을 한번 더 검증하고

정말 마지막 최종 테스트가 남았다. 이번에 성공은 따놓은 장상이다.


나는 왜이리 버그가 많이 터졌을까?

내가 사용했던 Postman의 한계인것 같다. 다음 프로젝트에서는 TDD 까지는 아니여도, 단위테스트를 적극 활용하여 로직을 충분하게 검증해야겠다.

그리고 Soft Delete 같은 S/W 적인 배경지식을 넓힐 수 있도록 많은 자료를 꼼꼼하게 살펴보는게 중요한것 같다.

다음 행선지 - 도입

5월초부터 지인과 함께하던 자바 스터디에서 Java/Spring 에 관한 배경지식과 "객체지향의 사실과 오해", "이펙티브 자바" 를 읽고 토의하는 등

스터디 범위를 넓히게 되면서 QueryDSL도 공부하는 시간을 가지고있다.

지금 배운 내용을 전부 반영하진 못할 것이다. 하지만 하나라도, 정말 작은 요소 하나라도 적용시켜보고자 의식하고 적용해본다면

SUWIKI를 하면서 배운 경험치만큼 무엇인가를 얻어갈 수 있을 거라고 생각한다.

다음 행선지 - 진행 중

  • SUGO(수원대학교 중고거래 플랫폼)
  • Flag게시판
  • 아티스텝
728x90
복사했습니다!