JaeWon's Devlog
article thumbnail
[SpringBoot] 웹서비스 출시하기(끝) - 7. Route 53을 사용한 Domain 등록
BackEnd/Spring 2021. 5. 9. 15:07

이전 글에서 운영환경까지 설정하며, 최종적인 서비스 구성은 끝이 났습니다. 그러나, 해당 서비스를 접속하기 위해선 ip를 알아야만 접속할 수 있습니다. DNS(Domain Name Service)을 사용하여 우리가 아는 이름을 통해 접속할 수 있도록 하겠습니다. 1. AWS Route 53를 통한 도메인 구매하기 - 많은 호스팅을 제공해주는 사이트가 있지만, 해당 글에서는 AWS Route 53을 사용하여 도메인을 구매(유료)하여 호스팅 될 수 있도록 하겠습니다. - AWS에서 Route 53을 검색합니다. - 도메인 등록 에 사용하고자 하는 도메인을 입력 후 확인 버튼을 클릭합니다. - 먼저 입력한 도메인이 사용 가능하다면, 가격과 함께 표시되어 집니다. - 1년에 약 12달러로, 한달에 1달러로 Do..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 6. 운영 환경 설정하기
BackEnd/Spring 2021. 5. 1. 14:39

해당 글은 전 '우아한형제들' 현 '인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 이전 글에서 서비스가 죽지 않고 배포가 가능한 무중단 배포를 구축하였습니다. 그러나, 아직까지 이전에 생성한 RDS DB를 연결하지 않았습니다. 이번 글에서는 AWS RDS DB를 연결하여, 운영 환경을 최종적으로 설정하도록 하겠습니다. 1. AWS RDS DB 접근하기 - 이전 글에서 운영 YAML (real-application.yml)을 EC2 서버에 생성하였습니다. - 운영 DB(AWS RDS)도 해당 파일에 추가하여 사용 가능하도록 하겠습니다. - 그렇지만, 해당 파일에는 현재 set1, set2 설정에 같은 내용을 반복하여 추가해야 ..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 5. Nginx를 활용한 무중단 배포 구축하기
BackEnd/Spring 2021. 4. 25. 17:02

해당 글은 전 '우아한형제들' 현 '인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 이전 글에서 TravisCI & AWS CodeDeploy로 배포 자동화 구축하였습니다. 배포 자동화는 되었지만, 새로 배포하는 시간동안에는 서비스를 이용할 수 없습니다.(서버가 내려가있기 때문) 매번 배포 때마다, 서비스가 죽어 있을 순 없기 때문에, 서비스가 죽지 않고 배포가 가능한 무중단 배포를 구축하도록 하겠습니다. 1. 무중단 배포 - 서비스를 중지하지 않고, 배포를 계속하는 것을 무중단 배포라고 합니다. 무중단 배포 방식들 AWS의 Blue-Green 무중단 배포 도커를 이용한 무중단 배포 L4 스위치를 이용한 무중단 배포 Nginx..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 4. TravisCI & AWS CodeDeploy로 배포 자동화 구축하기
BackEnd/Spring 2021. 4. 18. 17:42

해당 글은 전'우아한 형제들' 현'인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 이전 글에서 AWS EC2에 개발한 프로젝트를 배포하였습니다. 이번 글에서는 해당 개발을 하고 Git에 Push를 하면 자동으로 EC2에 배포가 되도록 자동화를 구축해보도록 하겠습니다. 1. Travis CI 연동하기 - Travis CI는 Github에서 제공하는 무료 CI 서비스 입니다. CI(지속적 통합)란??? 코드 버전 관리를 하는 Git에 PUSH가 되면 자동으로 Test, Build가 수행되고 Build 결과를 운영 서버에 배포까지 자동으로 진행되는 과정 해당 글에서는 Travis CI를 사용하지만 추후에는, Github Action..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 3. EC2 배포하기
BackEnd/Spring 2021. 4. 17. 16:34

해당 글은 전'우아한 형제들' 현'인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 이전 글에서 서비스를 구현하기 위해 서버와 DB를 구성하였습니다. 이번 글에서는 개발한 프로젝트를 해당 서버(EC2)에 배포해보도록 하겠습니다. 1. EC2에 Java 및 Git 설치 - 현재 서버(EC2)에는 아무런 설치가 되어 있지 않은 빈 서버입니다. - 그렇기 때문에, 서버에 우리가 사용하는 프로그램(Java, Git 등)을 설치해야 합니다. Java - 현재 프로젝트를 Java8로 개발하고 있기 때문에 서버에도 Java8을 설치 하도록 하겠습니다. - EC2에 접속하여 아래의 명령어를 통해 Java를 설치합니다. EC2 접속 : Mac에..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 2. AWS RDS 설정
BackEnd/Spring 2021. 4. 11. 01:46

해당 글은 전'우아한 형제들' 현'인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 이전 글에서 서버를 생성하였고, 이번 글에서는 서비스에서 사용할 데이터베이스를 생성하겠습니다. 1. RDS 생성하기 - 아마존에서 제공하는 관계형 데이터베이스 서비스(RDS : Relational Database Service)를 생성합니다. - AWS에서 RDS를 검색하여 대시보드 페이지로 이동합니다. - "데이터베이스 생성"을 클릭합니다. - 사용하고자 하는 DB를 선택합니다.(해당 글에서는 Maria DB를 선택하겠습니다.) - 템플릿은 "프리티어"를 선택합니다. - DB 설정을 입력합니다. - 각, 마스터 사용자 이름, 비밀번호, 데이터베..

article thumbnail
[SpringBoot] 웹서비스 출시하기 - 1. AWS EC2 구축
BackEnd/Spring 2021. 4. 10. 22:49

개인 프로젝트를 진행하면 로컬 개발환경에서만 확인이 됩니다. 누군가에게 공개하기 위해서는 서버에 배포하여 해당 서버(도메인)로 접속해야만 확인할 수 있습니다. 이번 포스팅을 통해 개인 프로젝트를 진행한 것을 어디서든 확인 할 수 있도록 AWS 프리티어를 사용하여 서버를 구축하고 만든 프로젝트를 배포하여 웹 서비스를 출시해보려고 합니다. 해당 글은 전'우아한 형제들' 현'인프런'의 개발자이신 jojoldu님의 블로그와 책(스프링 부트와 AWS로 혼자 구현하는 웹서비스)을 참고하여 작성하였습니다. 해당 글은 Mac OS에서 진행하여, 윈도우에서 개발하시는 분들은 위에 본 블로그를 방문하여 진행해주시면 됩니다. - AWS에 가입을 하면 1년동안 프리티어를 제공하며, 일정 범위 안에 무료로 서버를 사용할 수 있..

article thumbnail
[SpringBoot] Google reCAPTCHA V2 사용하기
BackEnd/Spring 2021. 4. 4. 17:01

실제 서비스하는 사이트들에서는 무작위한 로그인 시도 또는 회원가입을 막기 위해 reCAPTCHA와 같은 봇 방지 API를 사용합니다. 이 글에서는 google에서 제공하는 reCAPTCHA(리캡차)를 사용해 로그인을 진행하겠습니다. 현재 google reCAPTCHA는 v3 까지 나와있지만 이 글에서는 v2를 사용합니다. 0. 미리보기 - 로그인 페이지에 reCAPTCHA를 등록해보도록 하겠습니다. - 로그인 구조는 아래 그림과 같이 진행될 것 입니다. 1. Google reCAPTCHA V2 생성 - 여기를 클릭하여 [Admin Console]로 이동하여 reCAPTCHA를 생성합니다. - 정보를 입력하여 사용할 reCAPTCHA를 생성합니다. - 도메인은 Local 환경에서 진행할 경우 localho..

article thumbnail
[SpringBoot] thymeleaf-layout-dialect 적용하기
BackEnd/Spring 2021. 4. 3. 18:13

이전 글에서 bootstrap 템플릿을 사용해서 페이지를 구성하였다. 하지만, 페이지마다 공통으로 사용하는 부분(사이드바, footer 등)에 대해서 일일이 찾아서 복사하며 개발하기는 시간이 오래걸린다. 그래서, 레이아웃을 사용해서 공통으로 사용되는 부분은 따로 layout 형식으로 관리하고자 하였고, Thymeleaf에서 제공하는 layout 라이브러리(thymeleaf layout dialect)가 있어서 사용해보기로 하였다. 개발환경 IDE : IntelliJ IDEA OS : MAC OS SpringBoot : 2.4.4 Java8 Gradle 1. Dependency 추가 - https://mvnrepository.com/ 에서 thymeleaf layout dialect 을 검색해서 depen..

article thumbnail
[SpringBoot] BootStrap Templete 적용하기
BackEnd/Spring 2021. 4. 3. 16:47

Spring Boot로 프로젝트를 생성하고, Thymeleaf 에 부트스트랩 템플릿을 적용해보도록 하겠습니다. 개발환경 IDE : IntelliJ IDEA OS : MAC OS SpringBoot : 2.4.4 Java8 Gradle 1. 프로젝트 생성 및 부트스트랩 템플릿 다운받기 - Springboot 프로젝트를 생성합니다.(생성 방법은 이전 글 참고) - 원하시는 부트스트랩 무료 템플릿을 찾습니다. (해당 글에서는 startbootstarp 사이트 에서 sb-admin-2 템플릿을 받았습니다.) - 다운받은 zip 파일을 압축해제합니다. 2. 프로젝트 구성 - 프로젝트의 구성은 다음과 같이 구성하겠습니다. - resources -> static 아래에 "bootstrap" 디렉토리를 생성합니다. -..