부트캠프 개발일기123 75일차: AWS 배포 자동화(Automated Deployment) ❯ 배포 자동화(Automated Deployment) 배포를 위해서는 소스코드를 빌드하고 배포하는 과정을 거쳐야한다. 배포 자동화는 이러한 과정을 자동으로 진행하는 것을 말한다. 배포를 자동화함으로써 수동적이고 반복적인 과정을 자동화하여 시간과 휴먼에러를 줄일 수 있다. 배포 자동화는 파이프라인 구조를 통해 설명할 수 있다. 크게 Source stage, Build stage, Deploy stage 세개 구조로 구분된다. 현재 실습을 AWS를 사용해 진행중인데 AWS CodeBuild, CodeDeploy, Pipeline 등의 개발자 도구를 통해 비교적 간단하게 구현할 수 있다. ❯ 배포 자동화 실습 1. 환경 설정 AWS의 EC2를 통해 배포 자동화를 하기 위해서는 적절한 환경을 설정해주어야한다... 2023. 5. 31. 74일차: Docker ❯ Docker 애플리케이션 실행, 개발 등을 할 때 중요한 부분 중 하나가 바로 '환경'이다. 애플리케이션에 따라 필요한 프로그램의 버전과 종류가 다를 수 있다. 이러한것들을 구애받지 않고 작업할 수 있도록 하는 것이 바로 컨테이너 기술이다. 일상 생활에서 컨테이너는 물건을 담고, 옮기는 용도로 사용한다. 이처럼 컨테이너도 소프트웨어를 포장, 수송한다고 생각할 수 있다. 컨테이너에 특정 실행 환경을 설정해줌으로써 적절한 환경을 유지할 수 있다. 하나의 컨테이너는 다른 컨테이너와 격리되는데, 이를 통해 특정 컨테이너에서 작동하는 프로세스는 그 컨테이너 안에서만 접근할 수 있으며, 다른 컨테이너에 영향을 주지 못한다. (완전히 격리되어있다.) 따라서 컨테이너 하나에 하나의 IP 주소가 할당되어 별도의 네트.. 2023. 5. 30. 73일차: 3 Tier Architecture 배포 실습 ❯ 서버 배포 EC2를 통해 서버를 배포하게 된다. 처음 EC2 인스턴스를 생성하면 우리가 컴퓨터를 새로 샀을때처럼 깨끗한 상태인데, 필요한 개발 환경을 먼저 구축하고 서버를 배포한다. EC2 인스턴스에서 Session Manager를 실행하여 bash 쉘, 홈경로(~) 로 이동하여 아래 실습을 진행했다. 패키지 매니저가 관리하는 패키지 정보를 최신 상태로 업데이트 하기 위해 아래 코드를 실행한다. $ sudo apt update 현재 java 11 버전을 사용하고 있으므로 아래 코드를 입력하여 java를 설치한다. $ sudo apt install openjdk-11-jre-headless 애플리케이션 코드를 업로드(클론) 해주고, 빌드 후 실행해주면 애플리케이션이 실행된다. java -jar buil.. 2023. 5. 26. 72일차: 배포(AWS) ❯ 클라우드 컴퓨팅 가상의 컴퓨터를 대여하여 사용한다고 생각하면 이해하기 쉽다. 필요한 경우 컴퓨터 능력을 조절 가능하며 사용한 만큼의 요금을 지불하면 된다. 또한 스냅샷을 사용해 다른 컴퓨터로의 이주가 가능해 관리하기 용이하다. 클라우드 서비스의 종류는 다음과 같이 구분할 수 있다. SaaS(Software as a Service): 당장 사용 가능한 소프트웨어를 제공하는 방식이다. ex.구글 드라이브, Dropbox PaaS(Platform as a Service): 애플리케이션 개발 및 배포를 위한 플랫폼을 제공한다. ex. Heroku, AWS Elastic Beanstalk IaaS(Infrastructure as a Service): 가상화된 컴퓨터 리소스를 제공하는 방식이다. ex. Amaz.. 2023. 5. 25. 71일차: Spring WebFlux ❯ Spring WebFlux 이름에서 보는것과 같이 Web+Flux로, Reactor 타입인 Flux가 Web 기술에 사용되는 것을 말한다. Spring 5부터 지원하는 프레임워크이다. Spring MVC와 Spring WebFlux 비교 Spring WebFlux Spring MVC * Non-Blocking 지원 * Reactive Adaptor로 다양한 리액티브 라이브러리 사용 가능 * WebFilter 방식 * Reactive 스택을 데이터 액세스 계층까지 확장(R2DBC) * Blocking 통신방식 지원 * Servlet API 스펙에 의존적 * Servlet Filter 방식 * Spring Data Repository 사용 Spring MVC 애플리케이션에 Spring WebFlux 적용.. 2023. 5. 24. 70일차: Reactor(Project Reactor) ❯ Reactor(Project Reactor) Reactive Streams의 표준사항을 구현한 구현체 중 하나이다. Reactor의 특징 Non-Blocking 통신을 지원한다. Publisher 타입으로 Mono[0|1] 와 Flux[N]을 지원한다. 서버간 통신이 잦은 MSA(MicroService Architecture) 기반 애플리케이션에 적합하다. Backpressure를 제공한다.(Subscriber 속도가 Publisher 속도를 따라가지 못할때 제어하는 전략) Reactor 기본 구조 import reactor.core.publisher.Flux; import reactor.core.scheduler.Schedulers; public class HelloReactorExample { p.. 2023. 5. 23. 이전 1 ··· 6 7 8 9 10 11 12 ··· 21 다음