배포의 모든 것 - 4. 도메인 연결과 HTTPS 적용하기
·
프로젝트
🥳 현재 자동으로 EC2로 배포가 되도록 간단히..? CI/CD를 설정해 두었습니다.이번 포스트에서는 도메인을 구입하고 ip가 아니라 도메인 주소로 배포된 서버로 접속할 수 있도록 연결해 보도록 하겠습니다. 현재의 public IP로 접속을 해봅시다. 다음과 같이 사이트에 연결할 수 없다고 출력이 나올 것입니다. 💡 왜일까요? Public IP를 그냥 그대로 검색을 하게 되면 Http 요청으로 EC2의 80 포트로 들어오게 됩니다. 하지만, 저희의 Spring Application은 8080 포트에서 돌아가고 있습니다.따라서, 80 포트로 요청이 들어오게 돼도 8080 포트로 요청을 넘겨줄 수 있는 웹 서버가 없기 때문입니다.그렇다면 8080으로 직접 접속하면 접속이 되겠군요? -> 맞습니다.실습을 ..
배포의 모든 것 - 3. Github Action을 통한 CI/CD
·
프로젝트
현재 AWS 서버는 EC2와 RDS가 준비되어 있습니다. 이번 시간에는 깃허브 액션을 통해서 CI/CD 파이프 라인 구축을 진행해 보도록 하겠습니다..!✅  깃 플로우(Git-Flow)우선 깃 플로우라는 것을 알아야 합니다.💠 master(main) : 실제 배포가 되서 운영되는 브랜치💠 hotfix : 버그가 생긴 경우 💠 release : develop에서 충분히 검증이 된 코드 , 배포를 앞두고 있는 코드.💠 develop: 개발된 기능이 모이는 브랜치.💠 feature: 기능 하나와 관련된 브랜치. 보통 포로젝트를 하는 경우 완전히 똑같지는 않더라도 위와 같은 브랜치 전략에 따라서 개발을 하게 됩니다!아마 프로젝트를 진행하시는 경우, develop 브랜치에 코드를 모아놓고 테스트를 하게 ..
배포의 모든 것 - 2. RDS와 Session Manager
·
프로젝트
저번 포스트에서는 AWS계정을 만들고 EC2 서버를 띄워봤는데요. 이번 포스트에서는 RDS로 DB를 띄우고 Private VPC를 접속하는 것까지 해보겠습니다.✅ 바뀐 AWS 과금 정책우선 저번 1편에 EC2 서버를 만들어두고 잠시 프로젝트에 전념하고 있었는데요...분명 EC2 밖에 만들지 않았고 특별히 돈이 나갈 부분이 없는데 돈이 나가고 있더라고요..? 알고 보니 AWS 과금 정책이 2024년 2월에 바뀌게 되어서 IPv4 주소를 사용하는 경우 요금이 추가적으로 부과되고 있었습니다.그냥 EC2의 IPv4 주소를 사용하는 것은 상관없었지만,  탄력적 IP를 사용하게 되면 돈이 나가도록 바뀌었다고 하네요... 이에 따라서 탄력적 IP를 해제해야겠습니다.. 1편의 내용을 업데이트해놨기 때문에 저만 해제해..
배포의 모든 것 - 1. AWS 시작하기 및 EC2 띄우기
·
프로젝트
💡 프로젝트의 마지막 관문 배포입니다.첫 개발 프로젝트를 하는 과정에서 배포에서 특히 많은 어려움이 있었어요! 배포와 관련한 많은 자료들을 보았지만, 정말 정말 초심자의 입장에서는 이해하기 쉽지 않았습니다..대부분 "다른 분들이 삽질하지 않았으면 하는 마음에.. "라는 느낌으로 정말 세세하게 알려주셨지만 그런 것조차 이해하지 못하는 초보였습니다. ༼ ◉_◔༽ 그런 분들의 위해서, 같은 초보자의 입장에서 배포에 대해서 다뤄보겠습니다.+  배포의 방식은 사람들마다 다 다르게 되어있습니다! 그래서 더 어려웠던 것 같아요.     그런 부분들에 대해서도 구체적으로 다루어 보겠습니다.개요 : VPC 및 AWS를 이해하기 위한 기본 -> EC2 서버 띄우기 -> RDS 구축 -> 무중단 배포 CI/CD  -> 도..
Restful API Endpoint를 어떻게 설계해야 할까?
·
프로젝트
저번 포스트에서는 Http method에 대해서 알아보았는데요 🔗. 이번에는 Http method에서 배운 것을 바탕으로 Restful API Endpoint를 설계하는 것에 대해서 다루어보겠습니다. 📌 리소스를 식별해라🤔 리소스란 무엇을 의미할까요?REST에서 주요 데이터 표현은 자원(resource)이라고 합니다. 일관성 있고 강력한 REST 자원 이름 전략을 갖추는 것은 장기적으로 매우 중요한 설계 결정이 될 것입니다.REST에서 정보의 핵심 추상화는 자원입니다. 이름을 지을 수 있는 모든 정보는 자원이 될 수 있습니다. 예를 들어, 문서나 이미지, 시간에 따라 변하는 서비스(예: "오늘의 로스앤젤레스 날씨"), 다른 자원들의 모음, 실제 물건(예: 사람) 등이 자원이 될 수 있습니다.다시 말..
DDD(Domain Driven Design) 구조 알아보기
·
프로젝트
💡 프로젝트를 시작하기에 앞서서 프로젝트의 패키지 구조에 관련된 사항들을 정하게 되는데요.     대표적으로 사용하시는 구조는 계층형과 도메인형이 있습니다.      이번 포스트에서는 도메인형 구조에 대해서 구체적으로 알아보도록 하겠습니다.  📌 계층형 구조와 도메인형 구조의 차이✅  계층형 구조src├── main│   ├── java│   │   └── com│   │       └── example│   │           └── demo│   │               ├── DemoApplication.java  │   │               ├── config             │   │               ├── controller         │   │        ..