본 게시글은 Dynamic Designer Developer DDD 8기 아몬드 초코볼 팀이 오모지 서비스를 개발한 과정과 소개를 담고 있습니다.
더불어 본 서비스는 현재 개발 단계에 있습니다.
Introduce
내일 결혼식가는데 이렇게 입고가면 어떨까? 다음주에 소개팅가는데 이 패션을 이상한가? 각종 이벤트마다 입어야할 옷이 고민일 때 상담할 수 있는 2030 타겟의 일상 패션 공유 앱
Role
Devops Engineer & Backend Engineer
Architecture
Google Cloud Platform |
Google Cloud Run |
Google Cloud Build | |
Google Cloud SQL | |
Google Secret Manager | |
Web Framework | Spring Boot |
Spring Security | |
JPA |
Feature
- 평가 받고 싶은 패션을 등록
- 평가 중인 패션의 점수
- 나의 프로필 정보 확인
- 현재까지 등록한 나의 패션 리스트
- 네이버 & 애플 소셜 로그인 기능
Experience for Spring
- Spring Security
- Spring Security는 Spring에서 인증과 관련된 로직을 쉽게 설정할 수 있도록 제공하는 프레임워크
- OAuth 관련 로직도 제공하여 네이버 로그인과 애플로그인 또한 구현 가능
- JWT를 사용하여 서비스의 보안성 증진
Experience for GCP
- Google Cloud Run
- Cloud Run은 GCP에서 제공하는 컨테이너 기반의 Severless 서비스
- Severless 특성상 필요시 서버가 구동되어 비용적 부담을 해소
- Cloud Build를 통해 도커 이미지를 Build하고 Cloud Run에 컨테이너 실행
- Google Cloud Build
- GCP에서 제공하는 Deployment Pipeline 서비스
- Github Repository에 Cloud Build 트리거를 설정하면 특정 이벤트 발생시 자동 배포
- 배포 방법 ( https://linho.kr/10 )
- Google Secret Manager
- Google Secret Manager는 서비스 내에서 사용하는 보안관련 정보를 담고 있는 서비스
- Secret Manager에 등록한 정보는 버저닝을 통해 관리되며 필요시 환경변수나 JSON 파일 형태로 주입 가능
- Spring Boot의 경우 application.yml 파일에서 각종 보안 정보를 필요로하는데 이를 환경변수로 설정하여 Google Secret Manager에서 환경변수로 값을 주입하고 불러올 수 있도록 구현
- Spring Boot에서 사용하는 각종 환경변수를 Google Secret Manager에 담아서 사용
- Google Cloud SQL
- GCP Cloud SQL는 GCP에서 Fully Managed로 제공하는 데이터베이스 서비스
- MariaDB Database로 생성하여 Spring Boot의 JPA와 연결하여 사용
- ERD를 그려서 JPA에 엔티티를 생성하고 관련해서 Data Transfer Object를 만들어 Swagger에 연동하거나 Validation을 수행하고 모듈간의 결합도를 낮추기 위한 용도로 사용
- JPA만으로 부족했던 정보는 QueryDSL을 반영하여 쿼리로 요청
Improvement
- Spring Security Logout
- 계정 로그아웃시 Redis를 사용하여 특정 토큰의 로그인을 제한하는 로직을 만들어야하지만, Redis의 비용적 문제로 인해 Expire시간을 조정하고 중단하였습니다.
- 해당 서비스가 실제로 배포된다면 구성하여 제공할 예정입니다.
Github
'Project' 카테고리의 다른 글
[한이음 2022] MSA기반 인사 관리 시스템 Popool (0) | 2023.06.04 |
---|---|
[ 졸업프로젝트 캡스톤 디자인 ] Seear (0) | 2023.06.04 |
[Prography] 영양제 알림 서비스 PILIT (0) | 2023.06.02 |