Skip to content

prgrms-be-devcourse/NBE1_2_Team07

Repository files navigation

로고

NBE1_2_Team07

Programmers DevCourse BE 1기 2차 7팀 프로젝트


1. 개요

대표이미지

프로젝트 명

개발자 신입 및 취업 준비생을 위한 IT 뉴스 레터 : develetter

기획 의도

develetter는 신입 개발자와 취업 준비생을 위한 맞춤형 뉴스레터 서비스입니다. 기술 환경이 빠르게 변화하는 요즘, 우리는 종종 필터 버블에 갇혀 중요한 정보를 놓치거나, 반대로 과도한 정보로 인해 콘텐츠 피로를 겪곤 합니다.

이런 문제를 해결하고자 develetter를 기획했습니다. 우리는 사용자의 관심사에 맞춘 채용 공고, 컨퍼런스 일정, 개발 블로그 콘텐츠를 정기적으로 이메일로 제공합니다. 개인화된 필터링을 통해 꼭 필요한 정보만을 정확하게 전달함으로써, 신입 개발자와 취업 준비생들의 성장을 돕는 것이 develetter의 목표입니다.

팀원 소개

이름 Github 역할
[팀장] 조재중 https://github.com/m-a-king 채용 정보, 프론트
배건우 https://github.com/CodeItpython 회원가입 및 로그인처리
송경훈 https://github.com/rudgns328 채용 정보
양아영 https://github.com/ayoung-dev 메일 발송
최철진 https://github.com/Cheol-Jin 기술 블로그

개발 진행 상황

GitHub Project를 통해 진행 상황 관리

개발 기간

1차 개발 | 2024/09/23 ~ 2024/10/10

2차 개발 | 2024/10/11 ~ 2024/11/06


2. 주요 기능

회원 관리

  • 회원가입(일반/SNS 연동)
  • 로그인/로그아웃
  • 구독 신청/취소
  • 마이페이지 - 관심 키워드 설정

메일

  • 맞춤형 정보(채용공고, 기술 블로그, 컨퍼런스) 정기 발송

채용공고

  • 사람인 API로 채용 정보 파싱
  • 회원의 관심 키워드에 맞는 채용 공고 제공

기술 블로그

  • 구글 검색 API로 기술 블로그 내용 파싱
  • 회원의 관심 키워드에 맞는 기술 블로그 제공

컨퍼런스

  • IT 관련 컨퍼런스 정보 제공

상세 기능

회원관리

  • 이메일 인증을 통한 회원가입
  • Thymeleaf를 통해 동적HTML사용하여 인증메일 템플릿 생성
  • jwt토큰 발급을통한 로그인처리로 안정화된 로그인서비스 제공
  • DB에 저장되는 password를 PasswordEncoder를 사용하여 Encrypt

메일

  • Scheduler를 통해 정기적으로 메일 발송
  • 메일 발송 후 deleted 컬럼 update로 Mail Table 컬럼 soft delete
  • Thymeleaf를 통해 동적 HTML 생성하여 메일 템플릿 생성

채용공고

  • WebClient 라이브러리를 사용하여 사람인 채용 공고 API 호출 및 응답 데이터 저장
  • Spring Batch를 통해 사용자마다 맞춤화 된 채용 공고 필터링(QuerydslNoOffsetPagingItemReader를 활용한 성능 개선)
  • Scheduler를 통해 주기적으로 사람인 채용 공고 업데이트 및 맞춤화 된 채용 공고 필터링

기술 블로그

  • Google Programmable Search Engine API 사용하여 기술 블로그 데이터 탐색 및 DB 저장
  • Scheduler를 통해 주기적으로 기술 블로그 데이터 업데이트 및 사용자 맞춤 관심사에 기반한 필터링

컨퍼런스

  • 관리자에 의한 컨퍼런스 일정 CRUD

3. ERD

erd

4. 화면 설계

develetter Figma

맛보기 시연 화면 Vercel


5. 요구사항 명세

요구사항 명세 - Google Sheets

요구사항명세

6. API 명세

Postman API 명세

  • User를 제외한 나머지 기능의 호출은 Scheduler를 통해서 관리됩니다.

7. 개발 환경

  • OS : Mac
  • IDE : JetBrain IntelliJ
Software 세부 Spec 사양 (Version)
Java Java 17
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

협업도구

  • Discord
  • Slack
  • Notion
  • Github
  • JetBrain Code With Me

코딩 컨벤션

Git Convention

Code Convention


9. 트러블 슈팅

트러블 슈팅

10. 추후 개발 예정

건우 - 이메일 인증을 링크를통해 인증하는 기능 개발

경훈 - Spring Batch를 통해 모든 유저에게 맞춤화 된 채용 공고를 필터링할 때 비동기적으로 리팩토링

아영 - 메일 전송 spring batch 사용

재중 - 회원 탈퇴, 구독 중인 키워드 표기, 패키지를 기반으로 MSA 구조

철진 - 기술 블로그 데이터 관련 Spring Batch 사용

About

programmers devCourse BE 1기 7팀 2차 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published