- Github Actions를 이용한 배포 자동화
- Spring 프로젝트의 이름으로 빌드 파일이 생성됨. 설정 파일 구성에 참고.
- Github Actions 배포 자동화 과정
- .yml 설정 파일에 따라 Github Repository의 특정 변동사항(main branch에 push 등)을 트리거로 작동
- 빌드 결과물(.jar)을 S3 버킷에 저장
- Code Deploy가 S3에 저장되어있는 빌드 결과물을 EC2 인스턴스로 이동
- appepec.yml, 쉘 스크립트 등에 따라 단계적으로 특정 동작(실행, 로그 기록 등)
- Github Actions 생성
- gradle.yml 파일이 생성되며, 안에 설정하는 것들은 다음과 같다.
- 빌드 설정
- 빌드 후 프로젝트 압축 설정
- 권한 확인 설정(환경 변수)
- 압축한 프로젝트를 S3 버킷으로 전송 설정
- 깃헙에서 민감한 환경변수 등록 : Settings > Secrets > Actions
- 깃헙에서 수정했다면, 로컬에서 다시 수정하기 전에 깃헙 변경 사항을 pull로 땡겨온 후에 수정할 것 ⭐️
- S3에 압축 파일 전송하여 리소스 설정 끝났으면, CodeDeploy에서 어플리케이션 생성
- gradle.yml 수정(CodeDeploy에 배포 명령 추가 : 어플리케이션 이름, 배포 그룹 이름 등)
- appspec.yml(로그 파일 저장 위치 등), deploy.sh(로그 설정 등) CodeDeploy를 위한 설정 파일 추가
- 확인할 때, 주소에 포트번호까지 작성할 것⭐️
- AWS IAM Service : AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스(인증, 인가)
- 정적 웹페이지랑 깃헙 액션 이용한 빌드 파일이랑, 다 'S3 버킷 하나'에 담아서 웹 페이지 작성 가능한 것 같다.
https://faun.pub/deploying-website-to-aws-s3-w-github-actions-279998db5dae
- JMT 주문 시스템 - 질문 게시판 만들기
- 테이블 다이어그램 작성하고, 엔티티 만들고 매핑했다.
세터로 양방향 매핑하는 게 여전히 낯설었는데, 스터디 동기님께서 다시 알려주셨다.
감사하다:)
양방향 세터 예시
public void setLike(Like like) {
this.getLikeList().add(like);
if (like.getQuestion() != this) {
like.setQuestion(this);
}
}
public void setMember(Member member) {
this.member = member;
if (!member.getQuestionList().contains(this)) {
member.getQuestionList().add(this);
}
}
public void setAnswer(Answer answer) {
this.answer = answer;
if (answer.getQuestion() != this) {
answer.setQuestion(this);
}
}
- ctrl + option + O : import 정리 단축키
- option + cmd + L : 라인 정리 단축키
<느낀 점>
파이프라인 이용하는 것보다 깃헙 액션스 사용해서 자동 배포하는 게 조금 더 수월했다.
오늘 게시판 만들기 시작했다!
처음엔 시작이 막막했는데, 하나하나씩 작성하다보니까 나름대로 잘 됐다.
마지막에 양방향 세터랑 몇 가지 궁금한 것들은 동기님께 여쭤보고 해결했다.
감사합니다 :)