클라우드 네이티브 애플리케이션 개발자 교육 과정 안에서 진행한 프로젝트입니다.
개발 업계에서 수시/상시 채용이 증가하는 트렌드에 발맞춰, 그에 맞게 간편화된 서비스를 제공할 수 있는 서비스를 제공하는 프로젝트를 웹 형태로 개발했습니다.
웹 사이트 안에서 지원자는 공고에 몇 번의 클릭으로 빠르게 지원할 수 있고, 지원 결과도 홈페이지 내에서 간편하게 확인할 수 있습니다.
인사팀의 경우 공고를 만들 때에 채용 인원, 합격 배수, 합격자 수 등을 설정하여 공고를 만들 수 있으며, 등을 기입할 수 있으며, 홈페이지 안에서 해당 공고에 대한 전형의 채점과 합/불 여부를 결정내릴 수 있습니다.
프론트엔드는 React.js, 백엔드는 Spring Boot를 활용하여 MSA 방식으로 개발하였습니다. 클라우드 서비스를 활용하여 배포하였고, AWS의 RDS(mariadb), EC2를 사용하였습니다.
또한 Jenkins와 github의 label을 활용하여 코드가 label이 붙은 채로 merge된 경우, 해당 label에 해당하는 서비스만 CI/CD기능을 수행하도록 구현하였습니다.
DNS를 사용하여 http://a-pick-me.ga/ 라는 주소를 이용하여 배포하였지만, 교육 수료 후 AWS 계정을 반납하였고 현재는 접속되지 않습니다.
🗓️ 작업기간 : 2021.10 - 2021.11
👨💻 투입인원 : 4명(전공자 2, 비전공자 2)
📒 주요 기능
- API 문서
- user-service : 구직자에 관한 서비스를 제공합니다. 회원가입, 로그인(스프링 시큐리티 활용), 로그아웃, 회원 탈퇴, 회원정보 수정, 공고 지원, 내가 지원한 공고 조회 등과 같이 주로 사용자의 관점에서 필요한 서비스를 이용할 수 있습니다.
- hr-service : 인사 담당자에 관한 서비스를 제공합니다. 회원가입, 인사 담당자 추가, 공고별 지원자 조회 등이 가능합니다.
- job-service : 공고에 관한 서비스를 제공합니다. 인사담당자의 경우 공고 생성, 수정, 삭제 등을 할 수 있으며 지원자의 경우 공고 전체보기, 공고 상세보기 등의 기능을 이용할 수 있습니다.
- process-service : 각 공고가 마감된 후 진행하는 전형을 관리합니다. 필기, 1차/2차 면접으로 이루어져 있으며, 해당 전형에 해당하는 채점, 합/불 결정 등을 제공하는 서비스입니다.
🌱 기술 스택
Spring Security
Spring Cloud Eureka
Docker
Jenkins
Intellij
JPA
🌱 구성도
- Frontend의 경우, npm install 후 사용해 주세요.
- 개발 완료 후, 레포지토리를 하나로 합쳤고, 그로 인하여 프론트엔드 부분의 커밋 내역이 보이지 않습니다. 아래에 기존의 프론트엔드 레포지토리 링크 첨부하겠습니다.
- https://github.com/gusdn3477/Tmax_MainProject_Front