my code archive
my code archive
article thumbnail
스프링부트 공부기록(17) - 무중단 배포 만들기

앞서 Travis CI를 활용하여 배포 자동화 환경까지 구축했지만 배포하는 동안 애플리케이션이 종료되는 문제는 해결되지 않음 => 어떻게 해야 서비스 중단 없이 배포를 계속할 수 있을까? 🤍무중단 배포란? 서비스를 정지하지 않고 배포할 수 있는 방법 AWS에서 블루 그린 무중단 배포 / 도커를 이용한 웹 서비스 무중단 배포 사용자는 서비스 주소로 접속 -> 엔진 엑스는 사용자의 요청을 받아 현재 연결된 스프링부트로 요청을 전달 -> 스프링부트2는 엔진엑스와 연결된 상태가 아니니 요청받지 못함. 배포하는 동안에도 서비스가 중단되지 않음! 🤍엔진엑스 설치와 스프링부트 연동하기 sudo yum install nginx //엔진엑스 설치 sudo service nginx start //엔진엑스 실행 리다이렉션 ..

article thumbnail
스프링부트 공부기록(16) - Travis CI 배포 자동화, S3, CodeDeploy 연동

🔍앞서 진행한 배포의 불편한 점 수동 실행되는 Test : 본인이 짠 코드를 확인하기 위해 전체 테스트를 수행해야만 함. 수동 Build : 다른 사람이 작성한 브랜치와 본인이 작성한 브랜치가 합쳐졌을 때(Merge) 이상이 없는지는 Build를 수행해야만 알 수 있고 이를 매번 개발자가 직접 실행해야 함. => 24시간, 365일 운영되는 서비스에서 배포 환경 구축은 필수 과제임. 🤍CI & CD 하나의 프로젝트를 여러 개발자가 함께 진행 시 각자 개발한 코드를 합치는 것이 번거로움. CI, CD : 지속해서 코드가 통합되는 환경을 구축하는 것. 깃허브에 푸시될 때마다 코드를 병합, 더는 수동으로 코드를 통합할 필요가 없어짐. 특히나 중요한 것은 테스팅 자동화. 🤍Travis CI 연동하기 Travix..

article thumbnail
스프링부트 공부기록(15) - EC2 배포하기, RDS 접근, EC2에서 구글,네이버 로그인하기

🤍스프링부트 프로젝트로 RDS 접근하기 책에서는 MariaDB를 사용 중이지만 나는 연결이 한 번에 안 되는 바람에 MySQL로 만들었다. MySQL에서 스프링부트 프로젝트 실행하려면 몇 가지 작업이 필요하다. 1. 테이블 생성, 2. 프로젝트 설정, EC2 설정 🤍RDS에 테이블 생성 1. 먼저 RDS에 테이블을 생성한다. JPA가 사용될 엔티티 테이블, 스프링 세션이 사용될 테이블 2가지를 생성해야 하는데 JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 복사해서 사용하면 된다. 2. 스프링 세션 테이블은 schema-mysql.sql 파일에서 가져오면 된다. 3. 테이블 생성 🤍프로젝트 설정 1. MySQL 드라이버를 build.gradle 에 등록한다. implementatio..

article thumbnail
스프링부트 공부기록(14) - EC2 서버 배포 스크립트 작성, gradlew test 에러 원인, Junit5 맞게 코드 수정 해결 방법

🤍EC2에 프로젝트 Cone 받기 먼저 깃허브에 코드를 받아올 수 있게 깃을 설치하고 git clone으로 프로젝트를 저장할 디렉토리를 생성한다. sudo yum install git //EC2에 깃 설치 git --version //설치 상태 확인 mkdir ~/app && mkdir ~/app/step1 //프로젝트 저장할 디렉토리 생성 깃허브 https 주소를 복사해와서 git clone을 진행한다. git clone 복사한 주소 ll 명령어로 프로젝트 코드 전체 clone 받아졌는지 확인. 코드들이 수행되는지 테스트 해보기 ./gradlew test 이 gradlew test에서 정말....많은 고생을 했다....ㅠㅠㅠㅠㅠㅠ 처음엔 될 것 처럼 희망 고문을 하더니... 상쾌한 Build faile..

article thumbnail
스프링부트 공부기록(13) - AWD 데이터베이스 RDS 만들기, 인텔리제이 연결하기

🤍RDS 웹 서비스의 백엔드에서 코드 작성만큼 중요한 것이 데이터베이스를 다루는 일임. RDS는 앞서 구축해둔 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다. 🤍RDS 인스턴스 생성하기 AWS 검색창에 RDS를 입력한 다음 RDS 대시보드에서 [데이터베이스 생성] 버튼을 클릭한다. MariaDB(이유 : 가격, Amazon Aurora 교체 용이성) / 표준 생성 선택 템플릿은 프리티어(무료)로 선택!! ✅상세 설정 할당된 스토리지 : 20 으로 DB 인스턴스 식별자 지어주고 마스터 사용자 이름&암호 이건 따로 메모해두거나 꼭 기억해야 함! 퍼블릭 엑세스 가능 : 예 조금 기다리면 생성이 완료됨. ✅파라미터 설정 파라미터 그룹 생성 버튼 클릭, 앞에서 생성한 Maria DB와 같은 버전으로 맞..

article thumbnail
스프링부트 공부기록(12) - AWS 배포 :: 회원가입, EC2 인스턴스 생성하기

앞서 진행한 게시판 프로젝트에 이어 본격적으로 서버 배포를 진행해 보도록 한다. 외부에서 본인이 만든 서비스에 접근하기 위해서는 24시간 작동하는 서버가 필수임. => 그중 클라우드가 가장 유리함. AWS는? 첫 가입 시 1년간 대부분 서비스가 무료임. 클라우드에서 기본적으로 지원하는 기능(모니터링, 로그관리, 백업, 복구...)이 많아 개인 및 소규모일 때 개발에 좀더 집중할 수 있음. 많은 기업이 AWS로 이전 중이기 때문에 AWS 사용 경험은 취업, 이직에 도움이 됨. 사용자가 많아 국내 자료와 커뮤니티가 활성화 되어 있음. 🤍AWS 회원가입 이메일주소, 암호, 영문 주소 등등 입력하고 카드도 등록하고~~ 지원 플랜은 기본 플랜(무료) 선택. 가입 완료! 🤍EC2 인스턴스 생성하기 EC2는 AWS에..

article thumbnail
스프링부트 공부기록(11) - 게시판 프로젝트 :: 네이버 API 로그인 구현하기

지난번에 만든 구글 로그인에 이어 이번에는 네이버 로그인을 추가해 보도록 한다. 1. 네이버 오픈 API 홈페이지로 이동 애플리케이션 - NAVER Developers developers.naver.com 2. 애플리케이션 이름을 입력하고 네이버 아이디로 로그인 선택 3. 서비스 URL 등록.(=구글에서 등록한 리디렉션 URL 같은 역할) 여기까지 마치면 끝! 클라이언트 ID와 비밀번호가 발급된다. 4. application-oauth.properties에 네이버api 관련 키값들을 수동으로 등록한다. 구글과 달리 네이버에서는 스프링 시큐리티를 공식 지원하지 않아 수동으로 입력 필요. user_name_attribute = response : 네이버 회원 조회 시 반환되는 JSON 형태이기 때문에 res..

article thumbnail
노드&리액트 공부기록(15) - Auth(HOC), 인증 체크 방법

위와 같이 페이지 중에서는 아무나 진입 가능한 페이지, 로그인한 회원만 진이 가능한 페이지, 로그인한 회원은 진입하지 못하는 페이지가 있다. 또는 관리자만 진입 가능한 Admin Page도 있다. 이렇게 인증이 이루어져야만 하는 페이지, 혹은 댓글 작성,파일 전송, 파일 업로드 등 인증이 필요한 작업들이 있는데 이러한 인증은 어떻게 할 수 있을까? => higher-order component function을 사용하면 된다. 🔍Auth (HOC) higher-order component function 은 컴포넌트를 인자로 받아 새로운 컴포넌트를 리턴하는 함수이다. 서버에 응답받은 유저의 상태 정보(로그인 여부, 관리자인지 회원인지)에 따라 Auth function에 인자의 값을 다르게 줌으로써 페이지..

반응형
반응형