프로젝트명 : Wesell
중고 거래를 위한 웹 애플리케이션입니다. MSA를 경험해보기 위해 각 서비스를 서버로 나누었고, 배포까지 진행해보았습니다.
이 프로젝트에서 MSA 서비스를 도입하여 각 서버마다의 원활한 통신이 가능하도록 했습니다. 이외에도 협업에 중요한 방식 중 애자일 방식, 코드 컨벤션, 디자인 패턴 등을 익히는 것을 목표로 삼았습니다.
각 서비스의 역할에 따라 최소한의 여러 서버로 나누었습니다.
- 유저들, 게시글의 데이터를 다른 서버와의 통신을 이용하여 관리하는 관리자용 서버입니다.
- 사용자와 글의 데이터들을 얻어오거나, 권한 수정, 강제 탈퇴 및 삭제처리, 검색이 이루어집니다.
- 글로벌 필터를 활용하여 서로 다른 통신망이나 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 게이트웨이 서버입니다.
- 프로젝트 전반의 보안을 담당하는 보안 서버입니다.
- 리프레시 토큰, 엑세스 토큰, 로그인/로그아웃, 회원가입/회원탈퇴, 카카오api를 이용한 카카오 로그인까지 이루어집니다.
- jasypt를 활용하여 회원 비밀번호를 암호화, 복호화 하는 서버입니다.
- Spring Cloud Config Server를 활용하여 애플리케이션의 설정 정보는 외부 Git에서 관리가 이루어집니다.
- 게시글의 데이터를 중점적으로 다루는 게시글 서버입니다
- 게시글의 업로드, 수정, 게시글 상태 변경, 본인의 게시글 조회, 게시글/게시글 카테고리 검색이 이루어집니다.
- 각 서버의 health-check를 위해 netflix eureka를 이용한 서버입니다.
- 로드밸런싱을 활용하여 각 서버를 구분, 정상적으로 작동중인지 확인할 수 있습니다.
- 프로젝트 전반의 react 웹 페이지를 작성한 프론트 서버입니다.
- typescript를 이용하여 작성하였고, proxy 미들웨어로 각 페이지가 올바르게 출력되도록 이루어집니다.
- 간단한 eslint, prettier도 작성해보았습니다.
- 서버 전반의 이미지를 관리하는 서버입니다
- 클라우드 스토리지에 이미지를 업로드하고, 다운로드가 이루어집니다.
- 유저가 관리할 수 있는 유저 정보를 다루는 유저 서버입니다.
- 마이페이지, 닉네임 중복 확인이 이루어집니다.
- Figma
- ERD Cloud
- Github
- JIRA Software