Introduction

성별, 나이, 지역 등을 필터링함으로써 사용자가 원하는 분야의 스터디 메이트를 구할 수 있도록 돕는 안드로이드 어플

안드로이드 3명, 서버 1명으로 구성되며 저는 서버(Spring Boot)를 담당했습니다.

Server

**1. RESTful API**
: RESTful한 API를 개발하고자 노력했습니다.

**2. Spring Data JPA**
: 혼자 서버를 담당한 만큼 개발 시간을 단축하고자 Spring Data JPA를 이용했습니다.

**3. Postman**
: 테스트는 Postman을 이용해 진행했습니다. 기회가 된다면 테스트 코드를 직접 작성하면서 프로젝트를 진행해 
보고 싶은 욕심이 있습니다.😊

**4. GCP**
: GCP를 이용해 서버를 구축했습니다. 내부의 SQL을 이용해 별개의 데이터베이스 서버를 설계했으며,  
기타 방화벽 및 쿠버네티스 엔진을 다룰 수 있습니다.

**5. CI/CD**
: Jenkins, Docker, Kubernetes를 이용한 CI/CD를 구축했습니다.

**6. 일반 로그인 + 소셜 로그인: JWT 사용**
: JWT 토큰을 사용해 일반 로그인 및 소셜 로그인(네이버, 카카오)을 통한 안전하고 효율적인 개발을 도왔습니다.

**7. 실시간 통신**
: SSE 토큰 및 FCM을 이용한 알림을 구현했습니다.

**8. Base Entity**
: 모든 엔티티가 가져야 할 기본적인 요소(생성 날짜, 수정 날짜)등을 가지고 있는 엔티티를 구성함으로써
보다 효율적인 개발을 하고자 노력했습니다.

**9. Base Response**
: Base Response 및 Base Response Status를 설계해 에러 처리를 효과적으로 해냈습니다.

Cooperation

**1. Jira**
: Jira를 이용해 각 팀원에게 이슈를 할당하고, 기간 별로 작업을 분배함으로써 체계적으로 프로젝트를 
관리하고자 합니다.

**2. Notion**
: 프로젝트의 기본적인 구조, 수정 및 변동사항, 개인별 항목 등을 기록함으로써 프로젝트를 관리했습니다.

**3. Pull Request 형식**
Description: 브랜치에서의 역할 등
Commits: 각 커밋 세부사항

다음과 같은 형식으로 풀 리퀘스트 형식을 지정해 사용함으로써 팀원과의 협업을 수월하게 했습니다.

**4. commit 규칙**
: 기본적인 커밋 규칙을 정해 팀원의 코드 내용을 알아보기 쉽도록 도왔습니다.

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled