Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mins1031/bunjang

Repository files navigation

bunjang

소개

  • https://ec2-13-125-245-57.ap-northeast-2.compute.amazonaws.com 에 배포 (현재 aws 프리티어 사용기간 종료로 어플리케이션 서버, 젠킨스 서버 모두 종료한 )
  • 중고물건 거래 플랫폼 번개장터의 백엔드 API 클론 프로젝트 입니다.
  • 번개장터 웹/앱의 기능들을 사용해보며 구현했습니다.
  • 평소 자주 이용하던 어플인 번개장터의 도메인에 관심이 있던차 객체지향적인 공부를 위해 프로젝트 진행의 필요성을 느껴 시작하게 되었습니다.
  • 객체지향적이고 클린한 코드를 작성하며 드는 고민들을 경험하려고 노력했습니다.
  • 현재는 V1으로 전체적인 기능 구현에 초점을 맞추었고 V2는 각 기능에 대한 기술도입을 생각 중입니다. (채팅서비스 구현을 위한 웹소켓 기술도입, 검색기능 개선을 위한 엘라스틱 서치 등등)

기술

백엔드

  • Java
  • Spring boot
  • Spring Data Jpa
  • QueryDsl
  • Mysql
  • Gradle
  • Aws S3

데브옵스

  • Aws EC2
  • Jenkins
  • NGINX

기능

  • 서비스 로직과 테스트 로직 모두 최대한 가독성을 생각하며 구현했습니다.
  • 책임과 역할에 집중해 객체간 결합도를 낮추고 응집력을 높혀보려 노력했습니다.
  • 혼자 진행했지만 여러 개발자와 협언한다는 가정하에 git flow를 지키려고 노력하며 개발했습니다.
  • TDD방식으로 기능구현을 진행해보며 개인적인 TDD의 장단점을 느꼈습니다.
  • DB설정의 경우 db.yml파일의 버전을 local, dev, live로 개발환경에 맞게 나눠서 구현했습니다.
  • 검색기능의 경우 데이터가 많기 때문에 검색 컬럼들의 카디널리티를 기준으로 결합인덱스를 설정했습니다.
  • 배포환경의 경우 Jenkins를 통한 CI/CD 구축과 배포시 서비스에 중단이 생기는 단점을 해소하고자 무중단배포 방식으로 구현했습니다.

아쉬운점

  • TDD를 지키며 테스트 커버리지를 높은 수준으로 가져가려고 했으나 무조건 TDD를 고집하기보단 필요할때 사용하는게 제일 효율적인것 같다 느꼈습니다.
  • 더 좋은 코드와과 좋은 테스트에 대한 공부의 필요성을 많이 느끼게 되어 현재는 디자인패턴을 공부하고 있습니다.
  • 많은 기술들을 당장 도입해보지 못해 아쉽습니다. 토이프로젝트로 코드개선도 꾸준히 하고 공부한 기능을 하나씩 늘려나갈 생각입니다.(ex. Flyway, 엘라스틱 서치, 채팅서비스등등)
  • 혼자 백엔드 API만 구현하다 보니 응답에 대한 처리가 애매해졌고 프론트엔드 개발자와 협업하는 과정의 필요성을 느껴 지금은 팀프로젝트를 하나 진행하고 있습니다.
  • jwt 인증-인가 방식에 대해 고민하며 다중 서버에서 jwt의 역할과 구현방식을 다시 고민해보고 session에 대한 학습의 필요성이 느껴졌습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published