Codestates [Back-end]/데일리 로그 [TIL]

22.10.12 Spring WebFlux - 기본 코드 구조 / MVC vs WebFlux
명령형과 선언형 프로그래밍 구조 비교 명령형 프로그래밍 : 위에서 아래로 코드가 순차적으로 동작 선언형 프로그래밍 : Stream처럼, 중간연산은 메서드 체인을 걸어두고, 최종연산이 호출될 때 코드가 동작 리액티브 프로그래밍 기본 구조 package com.codestates.example; import reactor.core.publisher.Mono; // 리액티브 프로그래밍 기본 구조 public class HelloReactiveExample02 { public static void main(String[] args) { Mono// Publisher .just("Hello, Reactive")// 중간연산 .subscribe(message -> System.out.println(message))..

22.10.12 Spring WebFlux - 개념 / 인터페이스 코드
키워드 리액티브 프로그래밍 : 반응형 프로그래밍. 클라이언트의 요청에 반응을 잘하는 시스템 리액티브 스트림즈 : 명령형 프로그래밍 : 전통적인 프로그래밍 방식 ex) Spring MVC 기반 애플리케이션 선언형 프로그래밍 : 리액티브 프로그래밍 방식 리액티브 프로그래밍이란? (개념 부분) : 클라이언트의 요청에 반응을 잘하는 시스템 : 쓰레드가 차단되지 않게 함(Non-Blocking)으로써 클라이언트에게 즉각적으로 반응하도록 구성된 프로그래밍 모델 Non-blocking 통신은 리액티브 시스템에서 메세지 기반 통신(Message Driven)과 유기적인 관계를 맺음 : Data Streams로 인한 지속적인 데이터 변경 자체를 이벤트로 간주하고, 이벤트 발생마다 데이터를 계속 전달함 * data str..

22.10.11 Cloud 운영 전략 - 웹 서버 (TOMCAT / Jetty / Nginx / Load balancer)
개념 Tomcat = 자바 서블릿 컨테이너, 웹 애플리케이션 서버 Jetty = 자바 서블릿 컨테이너, 웹 애플리케이션 서버 Nginx = 웹 서버 Tomcat : 자바 애플리케이션을 위한 대표적은 오픈소스 WAS (Web Application Server) : 오픈소스임 1. 서버 사용 방법 : SpringBoot에 내장되어 별도의 설치 필요 없음 : 단, apache2.4나 Nginx 등 프록시서버 실행중이어야 함 : 아래 dependencies가 있다면 자동 실행 implementation 'org.springframework.boot:spring-boot-starter-web' 2. 사용 해제 방법 implementation ('org.springframework.boot:spring-boot-s..

22.10.11 Cloud 운영전략 - 프록시 서버 / 로드 밸런서 / 오토 스케일링
키워드 프록시 : 클라와 서버 사이의 중개서버 로드밸런서 : 오토스케일링 : NGINX : VPC : 프록시 서버 : 클라이언트와 서버가 소통할 때 사용하는 중개 서버 목적 1. 지역이 제한되는 서비스를 이용하기위해 우회 2. 캐시를 통해 더 빠른 서비스 이용 종류 및 장점 1. Forward Proxy : 클라이언트에 가까운 프록시. : 클라이언트 대신 서버에 요청 전달. : 장점 1) 캐싱을 통한 빠른 서비스 제공 : 결과 데이터를 캐시에 저장해놓고 이후 재요청시 저장된 데이터로 바로 보내줌 2) 보안 : 클라이언트의 IP를 숨길 수 있음. 프록시 IP를 대신 보냄 2. Reverse Proxy : 서버에 가까운 프록시. : 서버 대신 클라이언트에 응답 제공. : 장점 1) 분산처리 : 서버 과부하 ..
22.10.06 Cloud - 배포 자동화 [Step 3. 서버 환경 변수 설정]
Step Step 1. 개념 : https://radpro.tistory.com/338 Step 2. AWS Pipeline : https://radpro.tistory.com/339 Step 3. 서버 환경 변수 설정 : Step 4. Github Actions : https://radpro.tistory.com/340 AWS Parameter Store 서비스 : application.properties 에 저장했던 username, password 등을 유출되지 않도록, 미리 서버에 저장해두는 것 1. Parameter Store => 파라미터 생성 2. 이름 (환경변수명) / 유형 (문자열) / 값(해당 값) 즉, 아래 코드에서 #으로 주석처리된 코드를 분해. spring.datasource.ur..