Search
Duplicate

키즈존 찾기 서비스 키요

기간
2022.06. ~
기술스택
Java
Spring
JPA
AWS
Github Actions
간단 소개
아이를 안심하고 데려갈 수 있는 식당 찾기, 키요입니다!
Role
Backend Developer
Link

서비스 주요 기능

위치 기반 식당 검색 기능
사용자가 직접 식당 정보 등록
키즈 관련 편의 서비스들로 검색 가능
현재 관리자 페이지 개발 중

기술 스택

Language - Java
Framework - SpringBoot, Spring Security
DB - MySQL 8.0, Redis, Spring Data JPA, QueryDSL
DevOps : AWS EC2, RDS, S3, ElasticCache, Nginx
CI/CD : Github Actions, Code Deploy
Document : Swagger
Tools : Github, Git Kraken

핵심 고려 사항

Hexagonal Architecture & Domain Driven Design 패턴 도입

Presentation, Infrastructure, domain, application 총 4개의 패키지를 애그리거트 별로 도입, 한 눈에 파악하기 쉬운 구조 설계.
DDD의 애그리거트 구현을 적용, Root Entity 이외의 Repository를 최소화함으로써 애그리거트 내의 응집성을 확대.
계층 별 DTO를 엄격하게 나눠서 계층 간 의존성을 최소화.

페이징 처리에 No-Offset 기반 무한 스크롤 기능 적용

클러스터링 인덱스를 사용한 No-Offset 페이징 기능을 사용함으로써 대규모 데이터에서 기존 offset 방식 페이징 대비 큰 성능 최적화.
무한 스크롤 기능을 구현함으로써 모바일 환경의 페이징에 최적화.

Spring Security & OAuth2 기반 로그인 기능 구현

네이버, 카카오, 구글 소셜 로그인 구현을 통해 간편한 로그인 기능 제공
Access Token과 Refresh Token을 사용한 JWT 방식 인증 구현
Redis를 사용한 Access Token 블랙리스트 처리를 통해 확실한 로그아웃 구현

아키텍처

구현 기능

로그인
로그인 상세 화면
닉네임 설정
메인 페이지
조건 필터링
마이페이지
검색페이지
좋아요 누른 식당