Programmers DevCourse BE 1기 3차 7팀 프로젝트
조재중 | 송경훈 | 최철진 | 양아영 | 배건우 |
---|---|---|---|---|
팀장, 채용정보, 프론트 | 채용정보 | 기술블로그 | 메일발송 | 회원가입 |
m-a-king | rudgns328 | Cheol-Jin | ayoung-dev | CodeItpython |
개발자 신입 및 취업 준비생을 위한 IT 뉴스 레터 : develetter
develetter는 신입 개발자와 취업 준비생을 위한 맞춤형 뉴스레터 서비스입니다. 기술 환경이 빠르게 변화하는 요즘, 우리는 종종 필터 버블에 갇혀 중요한 정보를 놓치거나, 반대로 과도한 정보로 인해 콘텐츠 피로를 겪곤 합니다.
이런 문제를 해결하고자 develetter를 기획했습니다. 우리는 사용자의 관심사에 맞춘 채용 공고, 컨퍼런스 일정, 개발 블로그 콘텐츠를 정기적으로 이메일로 제공합니다. 개인화된 필터링을 통해 꼭 필요한 정보만을 정확하게 전달함으로써, 신입 개발자와 취업 준비생들의 성장을 돕는 것이 develetter의 목표입니다.
1차 개발 | 2024/09/23 ~ 2024/10/10
2차 개발 | 2024/10/11 ~ 2024/11/06
- 회원가입(일반/SNS 연동)
- 로그인/로그아웃
- 구독 신청/취소
- 마이페이지 - 관심 키워드 설정
- 맞춤형 정보(채용공고, 기술 블로그, 컨퍼런스) 정기 발송
- 사람인 API로 채용 정보 파싱
- 회원의 관심 키워드에 맞는 채용 공고 제공
- 구글 검색 API로 기술 블로그 내용 파싱
- 회원의 관심 키워드에 맞는 기술 블로그 제공
- IT 관련 컨퍼런스 정보 제공
회원관리
- 이메일 인증을 통한 회원가입
- Thymeleaf를 통해 동적HTML사용하여 인증메일 템플릿 생성
- jwt토큰 발급을통한 로그인처리로 안정화된 로그인서비스 제공
- DB에 저장되는 password를 PasswordEncoder를 사용하여 Encrypt
메일
- Spring Batch와 Scheduler를 통해 정기적으로 메일 발송
- Coroutine을 통해 메일 비동기 처리
- Batch Partitioning을 통해 메일 대량 발송 오버헤드 관리
- 메일 발송 및 삭제 관리
- Thymeleaf를 통해 동적 HTML 생성하여 메일 템플릿 생성
채용공고
- WebClient 라이브러리를 사용하여 사람인 채용 공고 API 호출 및 응답 데이터 저장
- Spring Batch를 통해 사용자마다 맞춤화 된 채용 공고 필터링(QuerydslNoOffsetPagingItemReader를 활용한 성능 개선)
- Redis를 사용하여 필터링된 채용 공고 캐싱 후 일괄 저장
- Scheduler를 통해 주기적으로 사람인 채용 공고 업데이트 및 맞춤화 된 채용 공고 필터링
기술 블로그
- Google Programmable Search Engine API 사용하여 기술 블로그 데이터 탐색 및 DB 저장
- Scheduler를 통해 주기적으로 기술 블로그 데이터 업데이트 및 사용자 맞춤 관심사에 기반한 필터링
컨퍼런스
- 관리자에 의한 컨퍼런스 일정 CRUD
- User를 제외한 나머지 기능의 호출은 Scheduler를 통해서 관리됩니다.
- OS : Mac
- IDE : JetBrain IntelliJ
Software | 세부 Spec 사양 (Version) |
---|---|
Kotlin | 2.0.21 |
Spring Boot | 3.3.4 |
Spring Boot Libraries | Batch, Data JPA, JDBC, Mail, Oauth2, Web, Validation, Security, Thymeleaf: 3.3.4 |
Lombok | 1.18.20 |
QueryDSL | JPA: 5.0.0 |
MySQL Connector | 8.3.0 |
Jwt | jwt:0.11.2 |
Coroutines | 1.7.3 |
Swagger | 2.1.0 |
Redis | spring-boot-starter-data-redis |
Additional Libraries | Kotlin Logging, Jackson Kotlin Module |