[SpringBoot] WebClient
·
Web/Spring
WebClient란?WebClient는 Spring WebFlux에서 제공하는 논블로킹(Non-blocking) HTTP 클라이언트 WebClient가 필요한 경우외부 API 호출이 많은 서비스결제 시스템 구현, OAuth 로그인, SMS, 알림 등등MSA 환경서비스간 HTTP 호출이 잦은 경우대량 트래픽 WebClient 사용 방법의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-webflux'Config 설정@Slf4j@Configurationpublic class WebClientConfig { @Bean public WebClient webClient() { // 메모리 설정 Excha..
[Server] 스케일 업, 스케일 아웃
·
Web/Server
스케일 업(Scale-Up)정의하나의 서버 성능을 더 키우는 방식예시CPU 더 좋은 걸로 교체RAM 추가SSD 더 빠른 걸로 교체GPU 넣기장점구조가 단순하다(인프라 복잡도가 낮다)애플리케이션 수정이 거의 없다.DB처럼 수평 확장 어려운 경우에 유용하다단점물리적으로 성능의 한계가 존재한다.아무리 CPU나 RAM을 추가해도 결국에는 가격대비 성능 효율이 떨어지게 된다.서버에 장애가 발생 시 전체 서버가 다운된다.스케일업이 적합한 경우강한 단일 스레드 연산데이터 일관성 최우선(DB OLTP)리소스 공유 큰 작업스케일아웃(Scale-Out)정의서버 개수를 여러 개로 늘려서 처리예시사양이 낮은 서버들을 여러 개 돌리는 경우장점이론 상 확장이 무한으로 가능하다가격 대비 성능 효율이 좋다장애가 발생해도 나머지로 처..
[JAVA] 객체지향 프로그래밍(OOP)의 핵심 개념
·
Web/Spring
객체지향 프로그래밍 모델에서 제시하는 개념객체(object)클래스(class)추상화(abstraction)캡슐화(encapsulation)상속(inheritance)다형성(polymorphism)연관(association)집약(aggregation)구성(composition)객체(object)란 무엇인가?객체는 객체지향 프로그래밍의 핵심 개념 중 하나이다.객체는 실세계의 개체다.객체는 상태(필드)와 동작(메서드)을 가진다.객체는 클래스의 인스턴스를 나타낸다.객체는 메모리에서 공간을 차지한다.객체는 다른 객체와 소통할 수 있다.클래스(class)란 무엇인가?클래스는 객체지향 프로그래밍의 핵심 개념 중 하나이다.클래스는 객체를 생성하기 위한 템플릿 또는 청사진이다.클래스는 인스턴스화하기 전까지는 메모리의 힙..
MVC 패턴이란?
·
Web/Spring
MVC 패턴이란? MVC패턴은 Model-View-Controller의 약자로서 개발을 할 때 3가지 형태로 역학을 나누어 개발하는 방법론. MVC의 각자 컴포넌트들을 Model, View, Controller라고 한다. Model 애플리케이션의 정보, 데이터를 나타냅니다. 데이터베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다. ---> 서비스 로직과 DB연동 담당 서비스 로직과 DB연동 담당하는 역할을 나눈다. 이 역할 분리를 이해하려면 구조의 큰 틀을 이해하고 있어야한다. 또한 DTO와 DAO에 대해서도 알고 있어야 한다. DTO란? DTO는 계층 간 데이터 교환을 위해 사용하는 객체로, DTO 는 로직을 가지지 않은..