발표시간: 10분
발표: 최준영, 시연: 용소희
팀 및 프로젝트 소개
•
팀 명: 예진 왕국 예진 나라 예진 공주
•
프로젝트 명: 가치같이(Value-together)
프로젝트 소개: 가치 있는 서비스를 제공하는 프로젝트 협업 서비스 어플리케이션
프로젝트 컨벤션
Commit Convention
Git flow
Code Style: Spotless 적용
Code Convention
Use Case
Use Case
ERD
ERD
API 명세
와이어프레임
와이어프레임
역할 분담
구현 기능
모든 팀이 트렐로를 할당 받았으므로 트렐로의 기능을 구현한 부분보다는 우리팀이 어떻게 코드를 통일하였으며, 소통을 하였는지 그리고 트렐로의 기능이 아닌 oauth2, redis, logout처리, mail -> ssl 문제 등 이런부분을 다루면 좋을 것 같습니다.
기술 스택
Backend
•
Java 17
•
Spring Boot 3.2.0
•
Spring Data JPA
•
OAuth 2
•
Spring Security 6.2.0
•
Mail
Database
•
MySQL 8.0.33
•
Redis 6.0.16
•
H2DB 2.1.214 (Test용)
Infra
•
AWS
◦
EC2
◦
S3
◦
CloudFront
◦
ACM
◦
RDS
◦
Route53
Docs
•
RestDocs
•
Jacoco
트러블 슈팅
1.
카테고리 및 카드의 순서 변경 방식
방식들
1.
컬럼 테이블의 필드로 json으로 카드 순서를 저장
ex) [1,2,3,4,5] -> [1,2,4,3,5]
2.
카드 테이블의 필드로 전, 후의 카드id를 저장 - 최대 4번 요청
연결 비용이 크므로, 2번이 더 비쌀 수 있음
3.
순서 테이블을 만들어서 이용 (1, 2번을 혼합)
4.
변경 전후의 seq 값을 더해서 2로 나눔
2.
mail
•
메일 전송 시, 사용자의 email을 노출시키는 것이 보안상 취약하다고 판단하여 링크에서 제외하는 방식을 고려하였으나, email을 제외하고 작성하니 하이퍼링크가 생성되지 않는 문제가 발생하였음.
•
알아보니, naver나 google과 같은 도메인마다 이를 링크로 인식하는 방식이 달라 하이퍼링크가 생성되지 않는 문제가 있다고 함.
•
a 태그로 직접 하이퍼링크를 만들어주는 것이 가장 좋은 방식이라고 생각하였음!
4.
Repository Test Id Auto increment 문제 - 해결을 한게 아님…
5.
cloudfront & route 53 연동하면서 발생한 문제
테스트
•