Travis CI (Continuous Integration) + AWS Code Deploy로 깃허브(GitHub)에 올리면 자동 배포되게 하기

Travis CI (Continuous Integration)와 AWS Code Deploy를 이용하면 깃허브에 푸시만 해도 자동으로 웹 서비스가 빌드 및 배포되도록 할 수 있습니다. 하나의 EC2 계정에 여러 레퍼지토리를 빌드 및 배포할 수 있습니다. 아래 차례에서 6번 부분만 조심하면 됩니다. 자세한 내용은 위 출처에 나와 있으며, 이 게시물은 제가 나중에 다시 보기 위해 요약하였습니다. 더보기…

스프링 부트 웹 사이트 예제: 아마존 웹 서비스 게시판 (Spring Boot + JPA + AWS + Travis CI)

개요 이 예제는 예전에 만들었던 Spring Boot 예제: 초간단 게시판 과 비슷한 예제인데, 이클립스 대신 인텔리제이 커뮤니티 버전을 바탕으로 이전에 사용하지 않았던 JUnit 단위 테스트, JPA, Lombok 등을 사용하였고, 아마존 웹 서비스와 Travis CI라는 자동 배포 서비스를 이용해 외부 인터넷 상에서 접속할 수 있도록 하였습니다. 과정의 대부분은 스프링 부트와 AWS로 혼자 구현하는 웹 더보기…

아마존 웹 서비스 카카오체크카드로 프리 티어 가입 + EC2 서비스 생성

카카오체크카드로 아마존 웹 서비스 가입이 가능합니다.   1) 아마존 웹서비스 회원가입 페이지 접속   2) 이메일 및 비밀번호 입력   3) 주소 및 카드 정보 입력(비자, 마스터카드 등 국제 결제 가능 카드)   4) 핸드폰 ARS 인증 진행   5) 지원 플랜 선택에서 기본 플랜(무료) 선택   6) 상단 메뉴에서 더보기…

스프링 부트(Spring Boot): 구글 로그인 연동 (스프링 부트 스타터의 oauth2-client) 이용 + 네이버 아이디로 로그인

  이 방법은 JSTL, Thymeleaf, Mustache 등 서버 사이드 템플릿 엔진을 사용하는 로그인 방법입니다. SPA에서 사용할 수 있는 소셜 로그인 연동 방법은 아래 글을 참고하세요, 스프링 부트(Spring Boot): SPA에서 사용할 수 있는 OAuth2 소셜 로그인 (구글, 페이스북, 깃허브) 순서 build.gradle에 디펜던시 추가 application-oauth.properties 작성 + .gitignore 등록 Role enum 클래스 더보기…

구글 OAuth2 연동용 클라이언트 아이디 및 비밀번호 발급받는 방법

1. 구글 클라우드 플랫폼(https://console.cloud.google.com/) 에 접속합니다. 2. 빨간색 네모 부분을 클릭합니다. 기존에 생성된 프로젝트가 없다면 [프로젝트 선택]이라는 문구가 표시됩니다.   3. [새 프로젝트] 버튼을 클릭합니다.   4. 프로젝트 이름을 입력하고 [만들기] 버튼을 클릭합니다.   5. 왼쪽 [API 및 서비스] 메뉴의 [대시보드] 를 클릭합니다.   6. 방금 만든 프로젝트를 선택합니다.   더보기…

스프링 부트 Thymeleaf: fragment로 웹 페이지에 header, footer 등 조각 삽입

스프링 부트 Thymeleaf: fragment로 웹 페이지에 header, footer 삽입하는 방법입니다. 공통되는 부분을 미리 만들어 놓은 다음 재사용할 수 있습니다. 전체 소스 보기   프로젝트 구조   먼저 HTML 파일을 만든 뒤(fragments/common.html) 조각(fragment)로 만들고 싶은 요소의 태그에 th:fragment="[이름]" 을 삽입합니다. <head th:fragment=”html-head”> …….. </head> <div th:fragment=”header”> <nav class=”navbar navbar-expand-lg navbar-dark bg-dark mb-2″> 더보기…

스프링 부트(Spring Boot): 웹 페이지를 정상적으로 렌더링하는지 단위 테스트

스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 웹 페이지를 정상적으로 렌더링하는지 테스트하는 과정입니다. 모의 서버 환경을 만들고, 그 서버에서 웹 페이지를 요청한 후 반환되는 텍스트에 특정 내용이 포함이 되어있는지 확인합니다. 렌더링 엔진은 Thymeleaf 입니다.   참고: 프로젝트 구조, View 파일, 컨트롤러 IndexController.java package com.example.awsboard.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public 더보기…

스프링 부트 버전 2.3.1 에서 H2 SQL 문법을 MySQL 문법으로 변경한 후 H2 콘솔 사용하는 방법

스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 스프링 부트 버전 2.3.1 에서 H2 SQL 문법을 MySQL 문법으로 변경한 후 H2 콘솔 사용하기 위해 Datasource를 설정해야 합니다. 1) application.properties 파일에 다음 내용을 추가합니다. # H2 설정 spring.h2.console.enabled=true spring.h2.console.path=/h2 # Datasource 설정 spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem://localhost/~/testdb;MODE=MYSQL spring.datasource.username=sa spring.datasource.password= # sql 보기 spring.jpa.show_sql = true 더보기…

스프링 부트에서 H2를 테스트하려고 하는데 Database not found, either pre-create it … 에러가 발생할 때

macOS 기준입니다. 스프링 부트에서 H2 콘솔을 사용하려고 하는데 아래 에러가 발생하는 경우 Database … not found, either pre-create it or allow remote database creation (not recommended in secure environments) 원인은 보안 측면상 웹 콘솔 환경에서 데이터베이스를 생성할 수 없도록 막아놨기 때문에 발생한다고 합니다. 해결 방법은 홈브루(brew)를 통해 별도의 H2를 설치한 더보기…

macOS 홈브루(brew)에서 Updating Homebrew… 멈춤현상 해결방법 및 권한 설정 방법

macOS 홈브루(brew)에서 Updating Homebrew… 멈춤현상 해결방법 (스택오버플로 링크) control + z 버튼을 눌러 업그레이드 작업 중단 터미널창에 brew doctor 입력 터미널창에 brew cleanup 입력 터미널창에 brew doctor 다시 입력 sudo xcode-select –install 입력   권한 오류 해결방법 다음과 같은 에러가 나오면서 brew 프로그램 설치가 안될 때 Error: The following directories are not writable by 더보기…