이번 WIL의 키워드
실전 프로젝트를 진행하면서 본인이 담당했던 기능 정리
- 기존 협업툴에 대한 시장조사 + 사전 설문조사
https://useful-cheshire-922.notion.site/a5eac64bacf44652a8a63b1f2f441ed2
시장조사
사전 설문조사
useful-cheshire-922.notion.site
- CI & CD 구성 + 깃허브 액션
-> docker
-> s3
docker 로 진행을 하다 멘토링에서 docker 보다는 s3이 더 적합하다고 듣기도 했으며, 서버에서 도커를 사용하는 비용과 메모리 양을 생각했을 때, s3로 관리하는 것이 좋을 거 같아 최종 선택!
아키텍쳐 를 정리하고 구성도를 미리 작성했습니다.
도커는 로컬에서 작동하는 것을 성공했습니다.
깃허브 액션을 적용하는데 약 300번의.. 실패...끝에 해냈습니다.
디렉토리 안에 만들어져 있어 인식을 하지 못해 레파지토리를 새로 만들어적용 시켰습니다.
- 와이어프레임, 기능명세서, API 명세서
Figma
Created with Figma
www.figma.com
https://useful-cheshire-922.notion.site/API-6da56c573b8e45c1828a7ff09de00155
API명세서
회의
useful-cheshire-922.notion.site
- HTTPS 연결
기존에 있던 도메인을 활용해서 시도 -> health check에서 실패가 되어 계속 실패했고, 시큐리티 필터에서 따로 제외를 하지 않아서 적용하는데 많은 시도 끝에 성공
- 티켓, 댓글, 리뷰, 리뷰 댓글 구현
티켓의 등록, 상세조회, 수정, 삭제
댓글의 등록, 수정, 삭제
리뷰의 등록, 전체조회, 상세조회 ,수정, 삭제
리뷰 댓글 등록, 수정, 삭제
초기 구현은 이렇게 했으며, 티켓의 이동이 자유롭기 때문에 만들어서 보냈으나 팀원들과 생각이 조금 다른부분이 있어서 시간이 많이 걸렸습니다.
public enum TicketStatus {
TODO,
IN_PROGRESS,
DONE;
}
만들어서 보냈으나 팀원들과 생각이 조금 다른부분이 있어서 시간이 많이 걸렸습니다.
완료한 티켓을 보이게 하느냐, 아니냐 + 티켓 부분의 유효성이 가장 어려웠습니다. 라벨을 가진 사람만 등록이 가능한지 전체가 가능한지 등 고려해야할 것이 많았기 때문에 수정의 수정의 수정을 했습니다.
- codedeploy에서도 하루 정도 시간을 낭비한 적이 있는데,
RDS에 EC2를 연결하지 않아서 발생한 문제!!
새 인스턴스에 coedeploy설치하고, 재부팅 or 중지 후 시작을 하지 않아서 발생한 문제!!
- aws 계정 정지... (계정이2개여서 다행이였죠..)
결제일이 1일인데, 자동 결제가 되지 않아서 발생한 문제 + 이상한 접근이 있어서 폐쇄한다는 이메일을 받았습니다.
계정을 돌려받는데 5일 정도 걸렸습니다. (다른 계정으로 이동하면서 자잘하고 사소한 실수 등 이걸 다시 한번 씩 되집어 가는 시간이였습니다.)
- redis 서버 실행
이메일 인증과 리뷰 알람 기능 때문에 레디스가 필요하기 때문에 서버를 구축하고 비용을 생각해서 월 750시간이 무료이기 때문에 다른분 서버에 띄우고 시간이 지날 경우 제가 다시 띄우기로 했습니다. (비용은 소중합니다..)
- 웹소캣 기본 구축
리뷰 알람 or 메세지 채팅 기능을 고민하고 있습니다.(시간적인 문제로 연결이 가능할지 몰라 일단 둘다 구현을 해놓았습니다.)
둘다 구현은 완료 했고, 테스트를 하면서 수정을 하고 있습니다.
- nginx 무중단 배포
프록시 서버에서 스프링부트를 실행시키고, 80으로 리다이렉트하게 했습니다.
도메인을 여기서 발급가능한데, 여러번 연습을 하면서 알게 된 사실이 인증서를 발급 받으면 2일 ~ 3일 재발급이 힘듭니다...
다른 블로그에 설명은 적혀있는데, 저장하는 키 이름은 찾기가 힘들더라구여.. 그리고 제대로 적용이 되었는지 확인하는데 오래걸렸습니다.
현재는 nginx도메인 + 스프링부트 연결 성공 했습니다.
무중단 배포를 위해 sh 파일을 고민하고 있습니다. 고민이 끝난 후 로드 밸런서 블루/그린을 공부한 후 바로 적용을 할 예정입니다.
앞으로 해야할 일
- nginx 무중단 배포
- Auto Scaling
- 인스턴스 서버 업그레이드
- 방화벽
- 보안
- redis 알림 및 채팅 연결