목록SpringBoot [예제] 블로그 만들기 (22)
코드 그라데이션
AWS IAM에 들어가 사용자 만들기 생성된 boot3을 클릭하여 [액세스 키 생성] 버튼 클릭 후 작업 시작 이제 값을 등록하기 위해 github 에 접속 후 Settings -> Secrets and Variables -> Actions 순서로 클릭 이러면 기본 세팅은 끝 이제 파일을 작성하면 가장 바깥 폴더에 .github 디렉토리 생성하고 workflow 디렉토리 하위에 생성 후 안에 cicd.yml 만들기 cicd.yml name: CI/CD # 이 워크플로의 이름 on: push: branches: [main] # main 브랜치로 푸시되었을 때만 실행 jobs: build: runs-on: ubuntu-latest # Ubuntu 환경에서 실행 steps: - uses: actions/che..
# CI / CD는 도구가 아니라 방법이다. * CI / CD가 필요한 상황 만약 서비스를 배포하고 운용하던 중에 코드를 변경할 일이 생기면 어떤 작업을 할 것인가? 우선은 코드 수정을 하고, 로컬 환경에서 테스트를 진행한다. 그리고 빌드도 잘되는지 확인할 것이다. 그런 다음에는 jar 파일을 생성해 복사하고, AWS에 접속해서 복사한 jar 파일을 업로드해 새 배포 버전을 제공해야 한다. 지금 이 과정을 기계적으로 계속하는건 현실적으로 어렵다. 프로젝트 규모가 커진다면 더 말할 필요도 없고. => 이럴 때 도입하는 것이 CI/CD 이 방법을 도입하면 빌드부터 배포까지의 과정을 자동화할 수 있고, 또 잘 되는지 모니터링 할 수 있다. 사실 이는 지속적 통합, CD는 지속적 제공이라는 의미가 있다. CI ..
IntelliJ 우측 상단의 그래들 버튼 누르고 빌드 하면 build/libs 에 jar 파일이 생성된다. 이후 Beanstock 화면으로 돌아와서 클릭 배포 버튼 클릭해서 설정을 완료하고 이 URL을 복사하여 구글 클라우드 콘솔로 이동하여 다만 형식을 "주소/login/oauth2/code/google" 뒤에 붙여줘야 한다. 이러고 수정한 후 시도하면 구글 로그인이 완료됨.
Elastic Beanstock로 서비스 생성하기 - 이 과정은 https://www.youtube.com/watch?v=UgKFaUHaIsg 참고하여 진행 (책에는 많은 부분이 생략되어 있음.) Elastic Beanstock 에서 RDS 생성하기 - 현재 나는 배포를 완료했으므로 생성이 된 상태이긴 함. 접속하고 나면 다음 단계로, 환경변수를 추가해주어야 한다. 추가할 내용 이름 값 JWT_SECRET_KEY 설정한 값 SERVER_PORT 5000 SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_GOOGLE_CLIENT_ID 구글에서 발급 받은 값 SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_GOOGLE_CLIENT_SCOPE email...
AWS란 - 지금까지는 로컬에서 실행. 이렇게 로컬에서만 실행하고 테스트하면 휴대폰이나, 다른 PC에서 접속할 수 없다. - 만약 다른 PC에서도 이 서비스에 접속하려면 실제 서버에 스프링 부트 서버를 올려 실행해야 한다. - 이런 행위를 실무에서는 배포라고 한다. 배포는 서버용 PC를 구매해서 배포하는 방법과 AWS와 같은 클라우드 컴퓨팅 서비스를 이용해 배포하는 방법이 있다. AWS 서비스로 나의 애플리케이션 배포하기 [그림] AWS 서비스의 대략적인 구조 # 가상의 PC 또는 서버 EC2 - EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스로 가상의 PC, 즉, 서버 한 대를 임대하는 서비스. # 유동적으로 EC2를 관리해주는 오토 스케일링 그룹 - 그런데 앞 그림을 보면 EC2는 3개이다. 왜?..
OAuth 로직은 모두 완성되었고, 글에 글쓴이 추가하는 작업을 진행 01. Article.java에 author 변수 추가 Article.java @Column(name = "author", nullable = false) private String author; @Builder // 빌더 패턴 객체 생성 public Article(String author, String title, String content) { this.author = author; this.title = title; this.content = content; } 02. DTO에 toEntity() 메서드 추가하고 author 값 추가 저장 AddArticleRequest.java public Article toEntity(Stri..
1. 의존성 추가하기 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' } 2. 쿠키 관리 클래스 구현하기 - 앞으로 쿠키를 사용할 일이 자주 생기는데, 유틸리티로 사용할 쿠키 관리 클래스를 미리 구현해 둔다. util.CookieUtil.java public class CookieUtil { // 요청값(이름, 값, 만료 기간)을 바탕으로 쿠키 추가 public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) { // 새로운 쿠키 객체를 생성함. 이름과 값..
OAuth - 제3의 서비스에 계정 관리를 맡기는 방식 - OAuth를 사용하면 인증 서버에서 발급받은 토큰을 사용해서 리소스 서버에 리소스 오너의 정보를 요청하고 응답받아서 사용할 수 있다. [관련 용어] 리소스 오너(resource owner) : 자신의 정보를 사용하도록 인증 서버에 허가하는 주체. 서비스를 이용하는 사용자가 리소스 오너에 해당 리소스 서버(resource server) : 리소스 오너의 정보를 가지며, 리소스 오너의 정보를 보호하는 주체를 의미 ex. 네이버, 구글, 페이스북 인증 서버(authorization server) : 클라이언트에게 리소스 오너의 정보에 접근할 수 있는 토큰을 발급하는 역할을 하는 애플리케이션을 의미 클라이언트 애플리케이션(client applicatio..