본문 바로가기

전체 글

(86)
9.2 Travis CI 연동하기 Travis CI는 깃허브에서 제공하는 무료 CI 서비스입니다. Travis CI 웹서비스 설정 - P. 323 참조 프로젝트 설정 build.gradle과 같은 위치에 .travis.yml 생성 다음과 같은 코드 추가 language: java jdk: - openjdk8 branches:-----------------------------------------(1) only: - master # Travis CI 서버의 Home cache:-------------------------------------------(2) directories: -'$HOME/.m2/repository' -'$HOME/.gradle' script: "./gradlew clean build"..
9.1 CI & CD 소개 스프링 부트 프로젝트를 EC2에 배포하면서 스크립트를 개발자가 직접 실행해야하는 불편을 경험하였습니다. 그래서 CI, CD 환경을 구축하여 개선하고자 합니다. CI, CD란 무엇인가??? CI( Continuous Integration - 지속적 통합) - 코드 버전 관리를 하는 VCS 시스템 ( Git, SVN 등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정 CD( Continuous Deployment - 지속적인 배포) 이 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정 여기서 주의할 점은 CI 도구를 도입했다고 해서 CI를 하고 있는 것은 아닙니다. 마틴 파울러의 블로그를 참고해보면 http://bit.ly/2Yv0vFp 를 참고하면 CI..
8.5 EC2에서 소셜 로그인 하기 curl 명령어를 통해 EC2 서비스가 잘 배포된 것은 확인하였습니다. - curl localhost:8080 이제 브라우저에서 확인해볼 텐데 그 전에 몇 가지 작업을 해보겠습니다. AWS 보안 그룹 변경 EC2에 스프링 부트 프로젝트가 8080포트로 배포되었으니, 8080포트가 보안 그룹에 열려있는지 확인합니다. AWS EC2 도메인으로 접속 인스턴스에 퍼블릭 DNS가 EC2에 자동으로 할당된 도메인입니다. 도메인 주소에 8080포트를 붙여 브라우저에 입력합니다. 구글, 네이버 로그인 서비스에 EC2 도메인 등록 구글에 EC2 주소 등록 ( P. 314 참조 네이버에 EC3 주소 등록 (P. 317 참조 현 상태의 문제점 수동 실행되는 Test 본인이 짠 코드가 다른 개발자의 코드에 영향을 끼치지 않는..
8.4 스프링 부트 프로젝트로 RDS 접근하기 RDS는 MariaDB를 사용 중입니다. MariaDB에서 스프링부트 프로젝트를 실행하기 위해서는 몇가지 작업이 필요합니다. 테이블 생성 : H2에서 자동 생성해주던 테이블들을 MariaDB에선 직접 쿼리를 이용해 생성합니다. RDS 테이블 생성 JPA가 사용될 테이블과 스프링 세션이 사용될 테이블 2가지를 생성 JPA 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 사용합니다. 스프링 세션 테이블은 schema-mysql.sql 파일의 쿼리를 사용합니다. File 검색 ( ctrl+shift+N)으로 찾습니다. 두 쿼리문들을 복사하여 RDS에 반영합니다. 프로젝트 설정 : 자바프로젝트가 MariaDB에 접근하려면 데이터 베이스 드라이버가 필요합니다. MariaDB에서 사용 가능한 드라이버를 프로젝..
8.3 외부 Security 파일 등록하기 에러가 발생 했었습니다. 에러의 이유는 ClientRegistrationRepository를 생성하려면 clientId와 clientSecret가 필수입니다. 로컬 PC에서는 application-oauth.properties가 있어 문제가 없었습니다. 하지만 이 파일은 .gitignore로 git에서 제외대상이라 깃허브에 올라가지 않습니다. 그래서 서버에 직접 이 설정들을 갖게 합니다. step1이 아닌 app디렉토리에 properties 파일을 생성합니다. -vim /home/ec2-user/app/application-oauth.properties 파일의 내용은 로컬 PC의 내용과 동일합니다. 생성한 파일을 사용할 수 있도록 deploy.sh 파일을 수정합니다. p. 305 참고 재실행 보면 정상적..
8.2 배포 스크립트 만들기 배포 : 작성한 코드를 실제 서버에 반영하는 것 배포과정 git clone 혹은 git pull을 통해 새 버전의 프로젝트를 받음 Gradle이나 Maven을 통해 프로젝트 테스트와 빌드 EC2 서버에서 해당 프로젝트 실행 및 재실행 배포할 때 마다 개발자가 하나하나 명령어를 실행하는 것은 불편하다 -> 쉘 스크립트를 작성해서 스크립트를 실행만 하면 자동 진행이 되도록 한다. 쉘 스크립트는 리눅스에서 기본적으로 사용할 수 있는 스크립트 파일의 한종류입니다. ( 쉘 스크립트는 .sh의 확장자를 가진 파일 ) ( 노드 js 는 .js라는 파일을 통해 서버에서 작동합니다. ) 빔(VIM)은 GUI 환경이 아닌 리눅스 환경에서 사용할 수 있는 도구입니다. 리눅스에서는 빔 외에도 이맥스(Emacs), 나노(NAN..
8.1 EC2에 프로젝트 Clone 받기 ec2에 깃 설치 - sudo yum install git 깃 버전 확인 - git --version git clone을 저장할 디렉토리 생성 - mkdir ~/app && mkdir ~/app/step1 해당 디렉토리로 이동 - cd ~/app/step1 github에서 https 주소를 복사하여 git clone을 진행 - git clone (복사한 프로젝트 주소) 복사된 프로젝트파일로 이동 - cd 프로젝트명 파일 확인 - ll 코드들이 잘 수행되는지 테스트 - ./gradlew test 여기서 문제발생 -bash: ./gradlew: Permission denied 라는 오류가 발생 그대로 해석을 하면 허가가 거부 되었다는 뜻인데 그렇다면 권한이 없다는 뜻?? 파일을 확인해 보니 -rw-rw-r-..
Michael phelps 그는 다른 사람들보다 매년 52일이 더 있었다. 다른 사람들은 토요일에 하루 정도는 쉬어도 괜찮을 거라 생각하며 자신을 위로 하지만 그는 하루도 빠짐없이 자신의 꿈과 목표를 향해 나아간다. 그래서 그만이 52일을 더 가지고 있다 더 강해지기 위해서 더 나아지기 위해서 The greats do things when they always don't want to, That's what seperates good from great.