Skip to content

Latest commit

 

History

History
160 lines (87 loc) · 6.75 KB

README.md

File metadata and controls

160 lines (87 loc) · 6.75 KB

우리 주변 인사이트, 우주인

image

목차

  • 핵심 기능
  • 구현 기능 설명
  • ERD 다이어그램
  • 코카인 팀원 소개
  • 배포 링크
  • API 명세서
  • 기능 명세서
  • 에러코드 명세서
  • Github 프로젝트

핵심 기능

KakaoTalk_Photo_2024-11-15-18-16-08 001 KakaoTalk_Photo_2024-11-15-18-16-08 002 KakaoTalk_Photo_2024-11-15-18-16-08 003 KakaoTalk_Photo_2024-11-15-18-16-08 004 KakaoTalk_Photo_2024-11-15-18-16-08 005 KakaoTalk_Photo_2024-11-15-18-16-14 KakaoTalk_Photo_2024-11-15-18-16-17 KakaoTalk_Photo_2024-11-15-18-16-20

구현 기능 설명

📲 Android


멀티모듈

1

  • 처음에는 단순히 너무 많아 정신이 없는 xml 파일을 분리해서 보고 싶어서 시작한 멀티모듈 입니다.
  • 저희 앱의 탭바를 기준으로 피처 모듈을 나누고, 핵심 기능과 데이터는 상위 모듈로 구현했습니다.
  • 구현은 어려웠지만, 분리된 모듈에서 각자 작업하다 보니 멀티모듈을 적용하기 전보다 충돌 횟수가 현저히 줄어들어 만족했습니다.

딥링크를 통한 내비게이션

2
  • 기능 모듈끼리 서로 참조하고 있지 않고 있기 때문에 모듈 간 화면 전환을 할 때 어떻게 해야 할지 막막했습니다.
  • 딥링크를 통해서 화면 전환을 구현하기 위해, 모든 기능이 참조 가능한 하위 내비게이션 모듈을 만들어 그 안에 딥링크를 지정하고 화면 전환을 하게 되었습니다.
  • 화면 간 전달해야 하는 데이터의 경우, 행사 id, 멤버 id와 같은 간단한 데이터였기에 전달이 용이했습니다.
3

지도 뷰

image
  • 사용자의 위치 정보를 바탕으로 실시간으로 주변 정보를 조회하는 기능을 구현했습니다.

  • 최대한 과부하를 덜 주기 위해, 약 20초의 간격을 두고 사용자의 위치를 파악하여 지도에 주변 행사를 마커로 띄우는 것을 구현했습니다.

  • 화면 범위 안에만 들어오는 행사를 불러오기 위해, 화면의 시작 위도 경도, 끝 위도 경도를 계산하여 불필요한 데이터 요청을 최소화했습니다.




🔙 BE

Spring Security

  • Spring Security를 활용해 애플리케이션의 인증 및 권한 관리를 구현하였습니다. JWT 기반 토큰 인증과 커스터마이징된 필터를 통해 보안을 강화하였습니다.

OAuth(구글 로그인, 카카오 로그인)

  • 구글과 카카오의 OAuth 인증을 통합하여 사용자가 간편하게 소셜 로그인 기능을 이용할 수 있도록 구현하였습니다. 각 플랫폼의 사용자 정보를 통해 회원가입 없이 서비 스를 바로 이용할 수 있게 했습니다.

카카오페이 결제

  • 카카오페이 API를 활용하여 사용자가 앱 내에서도 편하게 결제를 할 수 있도록 구현했습니다.

AOP 로깅

  • AOP(Aspect-Oriented Programming)를 활용하여 공통적으로 필요한 로깅 기능을 분리하였습니다. 주요 서비스의 요청, 응답 및 실행 시간을 효과적으로 추적하고, 디버깅 및 모니터링에 활용하였습니다.

N+1 문제 해결 (페치 조인 및 배치 사이즈)

  • JPA의 N+1 문제를 방지하기 위해 페치 조인을 적극 활용하고, @BatchSize를 적용하여 필요한 데이터만 효율적으로 조회할 수 있도록 최적화하였습니다.

썸네일 이미지 생성

  • 사용자가 업로드한 이미지를 기반으로 썸네일 이미지를 자동으로 생성하여, 서버 저장 공간과 전송 속도를 최적화하였습니다. 이를 통해 사용자 경험을 개선하였습니다.

CI/CD (Docker, GitHub Actions)

  • Docker와 GitHub Actions를 사용하여 CI/CD 파이프라인을 구축하였습니다. 코드 변경 사항이 자동으로 빌드, 테스트, 배포되는 환경을 구성하여 개발 및 배포의 효율성을 높였습니다.

ERD 다이어그램

KakaoTalk_Photo_2024-11-15-17-58-55

코카인 팀원 소개

백엔드

안드로이드

배포 링크

백엔드

https://www.wouldyouin.store

안드로이드

https://drive.google.com/file/d/1JzK60wY1RKNoUNFT1CtsWDQZR6l1gE__/view?usp=sharing

API 명세서

https://www.notion.so/e8d71c13017844de97303da3c73d0840?v=8432c86ed8114eb1943ff861399fe6c1

기능 명세서

https://www.notion.so/67925a6cfccb412191c1e50e958e87f4

에러코드 정의서

https://www.notion.so/fba45247c95d4a129f60a8afddd1228f

Github 프로젝트

https://github.com/orgs/kakao-tech-campus-2nd-step3/projects/26