스프링 부트와 AWS로 혼자 구현하는 웹 서비스 썸네일형 리스트형 AWS 개인 개발 서버 NGINX 무중단 배포 설정 NGINX 무중단 배포 무중단 배포 방식에는 몇 가지가 있습니다. AWS에서 블루 그린(Blue-Green) 무중단 배포 도커를 이용한 웹서비스 무중단 배포 우리가 진행할 방법은 엔진엑스(Nginx)를 이용한 무중단 배포 입니다. Nginx의 개요 엔진엑스는 lgor Sysoev라는 러시아 개발자 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시 접속 처리에 특화되어 있다. 1. Nginx(웹서버)의 역할 정적 파일을 처리하는 HTTP 서버로서의 역할 웹서버의 역할 HTML, CSS, Javascript, 이미지와 같은 정보를 웹 브라우저에 전송하는 역할(HTTP 프로토콜을 준수) 응용프로그램 서버에 요청을 보내는 리버스 프록시로서의 역할 클.. 더보기 AWS 개발서버에 Travis CI 배포 자동화 설정 Travis CI 배포 자동화 1. CI & CD 소개 CI(Continouous Integration - 지속적인 통합) 코드 버전 관리를 하는 VCS 시스템(Git Svn등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정 여기서 중요한 것은 테스팅 자동화입니다. 지속적으로 통합하기 위해선는 프로젝트가 완전한 상태임을 보장하기 위해 테스트 코드가 구현되어 있어야만 합니다. CD(Continuous Deployment - 지속적인 배포) 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정 2. Travis CI 연동 Travis CI는 깃허브에서제공하는 무료 CI 서비스입니다. Travis CI 웹 서비스 설정 Travis CI Web Service에서.. 더보기 AWS 개발 데이터베이스(MariaDB) 환경 구축 AWS 데이터베이스 환경을 만들어보자 AWS(Amazon Web Service)라는 클라우드 서비스를 이용해 데이터베이스 환경을 구축해보자 1. RDS 인스턴스 생성하기 데이터베이스 생성 DBMS MariaDB 선택 템플릿 선택 상세 설정 인스턴스 크기 설정 연결 설정 퍼블릭 엑세스 가능 옵션 추가 데이터베이스 옵션 데이터베이스 생성 2. RDS 운영환경에 맞는 파라미터 설정 RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 합니다. 타임존 Charcater Set Max Connection 파라미터 그룹 탭 선택 후 파리미터 그룹 생성 파라미터 생성 완료 파라미터 편집 타임존 수정 Charcater Set utf8mb4 설정 utf8은 이모지를 저장할 수 없지만, utf8mb4는 이모지를 저장할 수 .. 더보기 스프링 시큐리티와 OAuth 2.0으로 로그인(구글,네이버) 기능 적용하기 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현 스프링 시큐리티(Spring Security)는 막강한 인증과 인과(혹인 권한 부여) 기능을 가진 프레임워크입니다. 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 보면 됩니다. 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권하고 있습니다. 1. 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트 OAuth 하지만 오픈 아이디는 표준스펙이 존재하지 않았기 때문에 제공자마다 서로 다른 프로토콜을 제공하여 여러 오픈 아이디를 제공하기 위해선 각 규격별로 연동을 만들어야 했고, 일부 프로토콜에선 보안 이슈가 많이 나오기도 했습니다. 때문에 표준적인 방법을 고려하던 사람들은 OAuth 라는 .. 더보기 Spring Boot(스프링부트) 테스트 코드 junit 작성 해보기 Spring Boot 테스트 코드 작성 1. TTD란? "테스트 주도 개발: 테스트가 개발을 이끌어 나간다."라고 정의할 수 있다. 메소드 나 함수 같은 프로그램 모듈을 작성할 때 ‘작성 종료조건을 먼저 정해놓고 코딩을 시작 한다’는 의미로 받아들이면 편하다. RED : 항상 실패하는 테스트를 먼저 작성 GREEN : 테스트에 통과하는 프로덕션 코드 작성 REFACTOR : 테스트가 통과하면 프로덕션 코드를 리팩토링 위의 레드 그린 사이클 처럼 우선 테스트를 작성하고 그걸 통과하는 코드를 만들고 해당 과정을 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것이다. TDD를 왜 사용하는가? 개발 단계 초기에 문제를 발견하게 해준다. 추후에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존.. 더보기 Gradle 그레들 Spring Boot 스프링 부트 프로젝트 만들기 Gradle Spring Boot 프로젝트 생성 1. 프로젝트 생성 기본적인 프로젝트 개발 환경은 다음과 같습니다. IntelliJ IDEA - Spring Boot - Java 11 - Gradle Gradle 프로젝트 선택 화면 Project Name, GroupId 작성 화면 2. Gradle 프로젝트를 Spring Boot 프로젝트로 변경 build.gradle 파일을 열어 봅니다. 초기 build.gradle 파일 plugins { id 'java' } group 'org.example' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'j.. 더보기 이전 1 다음