반응형

분류 전체보기 38

Docker 시작하기🐳- 초기 세팅

Docker 기본 정보 Docker에는 크게 커뮤니티 에디션(CE)과 엔터프라이즈 에디션(EE) 두 종류가 있다. CE의 경우 무료로 이용할 수 있으나 EE는 구매해야 한다. 하지만 당연히, 제공되는 기능은 EE가 더 많다. Docker의 pricing 정책은 다음 링크에서 확인할 수 있다.https://www.docker.com/pricing/ Pricing | DockerDocker licensing is always free for personal use. But what if your team or business wants to use Docker? Compare our pricing options and features.www.docker.com나는 이번에 CE를 이용하였다. CE의 버전에는 ..

CI & CD 2025.02.09

Docker 시작하기🐳- Container란

서버 가상화 가상화란 물리적인 리소스 위의 가상의 서버 소프트웨어를 의미한다.여기서 발전하여 OS 가상화란, 각 어플리케이션이 CPU와 메모리를 '소유하여 사용하는 것처럼' 사용하는 것이다.과거 x86 서버 아키텍처에서는 단일 하드웨어에 단일 OS와 단일 어플리케이션이 동작하였다. 그런데 하드웨어 성능이 획기적으로 발전하면서 Multi-App 환경이 가능하지게 되었다. 하지만 여러 어플리케이션이 단일 OS와 하드웨어를 공유하다보니 특정 어플리케이션의 장애가 전체 어플리케이션의 장애로 전파되는 문제가 발생하였고, 어플리케이션 및 OS의 격리가 필요해지게 되었다. 여기서 가상화 환경이 등장하게 되었으며 파티셔닝을 기반으로 어플리케이션 별로 별도의 OS 환경을 구축하게 되었다. 이는 하드웨어 독립적인 표준 서..

CI & CD 2025.02.09

24시간 365일 중단없는 서비스를 만들자

※ 이번 포스트는 책의 10장을 공부하면서 정리한 것입니다.  무중단 배포란 서비스를 정지하지 않고 배포하는 방법무중단 배포의 방식에는 AWS Blue-Green을 이용하는 방법, 도커를 사용하는 방법 등 다양하지만 이번 포스트에서는 nginx를 활용하여 무중단 배포를 할 것이다.  NGINX 웹 서버, 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리밍 등을 위한 오픈소스 소프트웨어​●리버스 프록시 : 외부의 요청을 받아 백앤드 서버로 요청을 전달하는 행위. nginx는 요청을 전달하고, 실제 요청에 대한 처리는 어플리케이션 서버가 처리한다.  NGINX 리버스 프록시를 활용한 springboot 프로젝트 무중단 배포 nginx 1대와 springboot jar 2대를 사용하며, 구조는 다음과 같다..

CI & CD 2023.02.04

Travis CI 배포 자동화

※ 이번 포스트는 책의 9장을 공부하면서 정리한 것입니다.  CI & CD 소개 ● CI (Continuous Integration)코드 버전 관리를 하는 VCS 시스템 에 코드가 PUSH 되면 자동으로 테스트 & 빌드가 수행되어 안정적인 배포 파일을 만드는 과정​● CD (Continuous Deployment)앞선 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행하는 과정​● CI의 4가지 규칙모든 소스코드가 살아있고(실행되고) 누구든 현재의 소스에 접근할 수 있는 단일 지점을 유지할 것빌드 프로세스를 자동화해서 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것테스팅을 자동화하여 단일 명령어로 언제든지 시스템에 대한 건전한 테스트 수트를 실행할 수 있게 할 것누구나 현재..

CI & CD 2023.02.04

Spring Security

※ 이번 포스트는 책의 5장을 공부하면서 정리한 것입니다. 소스코드는 책을 참고해주세요  Springboot 1.5 vs Springboot2.0 OAuth2 연동 방법이 1.5에서 2.0으로 넘어오면서 크게 변경되었으나 spring-security-oauth2-autoconfigure 라이브러리를 사용하면 1.5의 설정방식을 그대로 적용할 수 있다. 하지만 아래와 같은 이유로 Springboot 2.0 방식인 Spring Security Oauth2 Client 라이브러리를 사용하는 것이 좋다.​- 스프링 팀에서 기존 1.5에서 사용되던 spring-security-oauth 프로젝트는 유지 상태로 결정했으며 더 이상 신규 기능을 추가하지 않고 버그 수정 정도만 진행하는 것으로 결정했다. 신규 기능은..

SpringBoot 2023.02.04

Mustache로 화면 구성하기

※ 이번 포스트는 책의 4장을 공부하면서 정리한 것입니다. 소스코드는 책을 참고해주세요  템플릿 엔진이란 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어​● 서버 템플릿 엔진- 서버에서 구동되는 템플릿 엔진- ex) JSP, Freemarker 등- 예를 들어 JSP의 경우 서버에서 JAVA 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달​● 클라이언트 템플릿 엔진- 브라우저에서 화면을 생성 → 서버에서 이미 코드가 벗어난 경우- 서버에서는 Json, Xml 형식의 데이터만 전달하고 이를 클라이언트에서 조립- ex) React, Vue 등​ 머스테치란 Ruby, Javascript, Python, PHP, JAVA, Go, ASP 등 현존하는 대부분의 ..

SpringBoot 2023.02.04

Springboot에서 DB다루기(with JPA)

※ 이번 포스트는 책의 3장을 공부하면서 정리한 것입니다. JPA란? 서로 지향하는 바가 다른 객체 지향 프로그래밍 언어와 관계형 데이터베이스의 중간에서 패러다임 일치를 시켜주는 기술. => 개발자가 객체지향 프로그래밍을 하면, 이에 맞게 JPA가 SQL을 생성하여 실행해줌! 더는 SQL에 종속적인 개발을 하지 않아도 된다는 장점이 있다​ - Spring Data JPA의 장점1. 구현체 교체의 용이성 ( Hibernate외에 다른 구현체로 쉽게 교체 가능)2. 저장소 교체의 용이성 (관계형 데이터베이스 외에 다른 저장소로 쉽게 교체 가능 -> 의존성만 교체하면 된다!)  JPA Entity 클래스 생성 시 주의사항 - Setter 메소드를 만들지 않는다getter, setter를 무작정 생성할 경우 ..

SpringBoot 2023.02.04

AWS SES로 자사 도메인 메일 생성하고 Gmail과 연동하기

AWS SES란 AWS Simple Email Service로, 자사 도메인 메일 서버를 설정할 수 있도록 AWS에서 제공하느 서비스이다. 테스트 환경인 샌드박스 상태에서는 하루에 200건의 메일을 전송할 수 있으나 프로덕션 엑세스로 전환하면 하루에 50,000건까지 무료로 전송이 가능하다.​SES를 설정할 때 주의해아 할 점은 region을 잘 확인해야 한다는 것이다. AWS SES의 경우 이메일 발송은 어느 region에서도 가능하지만 이메일 수신은 한정된 region에서만 가능하다(내가 메일서버를 구축했을 때가 1년 전이라 지금은 어떻게 됐는지 확인해봐야 한다). 나는 SES 설정 시 region을 미국 동부 (버지니아 북부)로 설정하였다.  1. 도메인 인증하기 나는 우선 가비아에서 도메인을 구입..

AWS 2023.02.04

AWS EC2에 프로젝트 배포하기

※ 이번 포스트는 책의 8장을 공부하면서 정리한 것입니다.  EC2에 프로젝트 클론 받기 EC2 서버에 접속하여 다음의 명령어로 git을 설치합니다.sudo yum install git그리고 아래의 명령어로 설치가 잘 되었는지 확인합니다.git --version다음 mkdir 명령으로 클론받을 디렉토리를 생성한 후 cd 명령으로 해당 디렉토리로 이동합니다.그리고 본인 깃헙에서 클론할 레포지토리의 https 주소를 복사한 뒤 클론을 진행하면 됩니다.git clone {복사한 주소}클론이 끝났으면 프로젝트 디렉토리로 들어가서 코드들이 잘 수행되는지 테스트로 검증합니다./gradlew test만약 수정 사항이 생겨 깃헙에 코드를 푸시했다면 아래 명령으로 코드를 풀 받으면 됩니다.git pull만약 gradl..

AWS 2023.02.04

AWS EC2, RDS 인스턴스 생성하기

※ 이번 포스트는 책의 6장, 7장을 공부하면서 정리한 것입니다. 서버를 24시간 구동하는 세 가지 방법 1. 집에 PC를 24시간 구동시킨다 (..?)2. 호스팅 서비스(ex. Cafe24 등)를 이용한다3. 클라우드 서비스(ex. AWS, GCP 등)를 이용한다​● 비용 측면- 호스팅 서비스나 집에서 PC를 24시간 구동하는 것이 유리​●서비스 확장성- 유동적으로 사양을 늘릴 수 있는 클라우드가 유리  클라우드 서비스란 클라우드를 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어 등의 컴퓨팅 서비스를 제공하는 것. 단순히 물리 장비를 대여해주는 것이 아니라 서버 내부의 로그 관리, 모니터링, 하드웨어 교체, 네트워크 관리 등을 지원해주어 개발자가 직접 해야할 일이 상당 부분 줄어든다​● 클..

AWS 2023.02.04
반응형