일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 이펙티브 자바
- 엘라스틱서치
- 김영한
- 카카오 면접
- 카카오
- effectivejava
- 이펙티브자바
- JavaScript
- 클린아키텍처
- 티스토리챌린지
- Spring
- 이차전지관련주
- ElasticSearch
- 코딩테스트
- 자바스크립트
- 스프링
- Effective Java 3
- kubernetes
- Sort
- 스프링부트
- 스프링 핵심원리
- 스프링핵심원리
- 자바
- 예제로 배우는 스프링 입문
- java
- 오블완
- 알고리즘
- k8s
- Effective Java
- 알고리즘정렬
- Today
- Total
목록Spring (12)
Kim-Baek 개발자 이야기
Spring WebClient는 Spring WebFlux에서 제공하는 비동기 및 논블로킹 HTTP 클라이언트로, 다른 서비스나 API와 통신할 때 사용됩니다. 이전에 사용되던 RestTemplate의 대안이며, 리액티브 프로그래밍을 지원하여 더 나은 성능과 유연성을 제공합니다.---1. WebClient 특징비동기/논블로킹: 요청과 응답이 블로킹 없이 처리됩니다.리액티브 스트림 지원: Mono와 Flux를 반환하여 리액티브 방식으로 데이터를 처리합니다.RestTemplate의 대안: Spring 5 이상에서는 WebClient를 추천합니다.동기식 호출 가능: 원한다면 동기식으로도 호출할 수 있습니다.---2. WebClient 생성WebClient는 크게 두 가지 방식으로 생성할 수 있습니다:1. 빌더..
Spring의 @Async: 쉽게 이해하기@Async는 비동기 작업을 간단히 처리하도록 도와주는 Spring의 애노테이션입니다.비동기란, 어떤 작업을 요청하고 그 작업이 끝날 때까지 기다리지 않고 바로 다음 작업을 진행하는 것을 말합니다.예를 들어:동기 작업: 요리를 하면서 밥솥이 밥을 다 지을 때까지 기다리는 것비동기 작업: 밥솥에 밥을 맡기고, 기다리지 않고 동시에 반찬을 준비하는 것Spring의 @Async를 사용하면 "밥솥에 밥을 맡기고 바로 반찬 준비" 같은 비동기 작업을 쉽게 구현할 수 있습니다.@Async를 사용하는 방법1. 준비 작업: 설정 파일에서 활성화Spring에서 비동기 기능을 사용하려면 먼저 설정에서 이를 활성화해야 합니다.설정 클래스에 @EnableAsync를 추가하면 됩니다.i..
1. Spring WebFlux란?Spring WebFlux는 Spring Framework 5에서 도입된 논블로킹(Non-blocking) 및 리액티브(Reactive) 프로그래밍을 지원하는 웹 프레임워크입니다. 기존의 Spring MVC가 서블릿 기반의 동기(Blocking) 모델을 사용한다면, WebFlux는 논블로킹 처리를 통해 더 높은 확장성과 성능을 제공합니다.주요 특징:논블로킹 I/O: 요청 처리 동안 스레드가 블로킹되지 않습니다.리액티브 스트림: 데이터 스트림을 비동기적으로 처리합니다.함수형 라우팅: 함수형 프로그래밍 방식을 사용한 라우팅 지원.다양한 런타임 지원: Netty, Undertow 등 서블릿 컨테이너가 아닌 서버에서도 실행 가능.2. Spring MVC와의 차이점Spring M..
1. Quartz란?1.1. Quartz 소개Quartz는 오픈 소스 스케줄링 라이브러리로, 복잡한 스케줄링 작업을 간편하게 구현할 수 있도록 도와줍니다. 주기적인 작업 실행, 일정한 간격으로 작업 실행, 특정 시간에 작업 실행 등 다양한 방식으로 작업을 스케줄링할 수 있습니다.1.2. 주요 기능다양한 트리거 지원: Cron 트리거, Simple 트리거 등 다양한 트리거 유형을 지원하여 유연한 스케줄링이 가능합니다.작업 지속성: 작업(Job)과 트리거(Trigger)를 데이터베이스에 저장하여 애플리케이션 재시작 후에도 스케줄이 유지됩니다.클러스터링 지원: 여러 인스턴스에서 Quartz를 클러스터링하여 고가용성을 구현할 수 있습니다.잡 리스너 및 트리거 리스너: 작업 실행 전후에 특정 로직을 실행할 수 있..
Apache Kafka는 고성능, 분산형 이벤트 스트리밍 플랫폼으로, 대규모 데이터 스트림을 실시간으로 처리하고 관리할 수 있게 해줍니다. Kafka는 원래 LinkedIn에서 내부 메시징 시스템으로 개발되었으며, 현재는 오픈 소스로 제공되어 다양한 애플리케이션에서 널리 사용되고 있습니다.주요 특징높은 처리량: 수백 메가바이트에서 기가바이트 단위의 데이터를 초당 처리할 수 있습니다.확장성: 클러스터 규모를 손쉽게 확장할 수 있어 대규모 데이터 스트림을 처리할 수 있습니다.내결함성: 데이터 복제와 분산 저장을 통해 장애 발생 시에도 데이터 손실 없이 안정적으로 운영됩니다.실시간 처리: 실시간으로 데이터를 생산하고 소비할 수 있어, 실시간 분석 및 모니터링에 적합합니다.다양한 사용 사례: 로그 수집, 실시간..
Spring Cloud Config란?Spring Cloud Config는 마이크로서비스 아키텍처에서 애플리케이션의 설정을 외부에서 관리할 수 있도록 도와주는 구성 관리 솔루션입니다. 이를 통해 다양한 환경(개발, 테스트, 운영 등)에서 애플리케이션 설정을 중앙에서 관리하고 배포할 수 있습니다.주요 특징외부 구성 관리: 애플리케이션의 설정 파일(application.properties, application.yml 등)을 Git, SVN, 파일 시스템 등 외부 저장소에 저장하여 중앙에서 관리할 수 있습니다.환경별 설정: 각 서비스와 환경에 맞는 별도의 설정을 쉽게 관리할 수 있습니다. 예를 들어, 개발 환경과 운영 환경에서 다른 데이터베이스 설정을 적용할 수 있습니다.버전 관리: Git과 같은 버전 관리..
Quartz는 자바 기반의 오픈 소스 스케줄링 라이브러리로, 복잡한 작업 스케줄링을 손쉽게 구현할 수 있도록 도와줍니다. Spring Quartz는 Quartz Scheduler를 Spring 프레임워크와 통합하여 보다 간편하게 사용할 수 있게 한 모듈입니다. 이를 통해 애플리케이션 내에서 정기적이거나 특정 조건에 따른 작업 실행을 효율적으로 관리할 수 있습니다.주요기능잡(Job) 정의 및 실행:Job 인터페이스를 구현하여 실행할 작업을 정의.특정 시간 또는 간격에 따라 잡을 실행할 수 있음.트리거(Trigger) 설정:작업의 실행 시점을 제어하는 트리거를 설정.간단한 간격 기반 트리거(SimpleTrigger)와 복잡한 크론 표현식을 사용하는 크론 트리거(CronTrigger) 지원.스케줄링 관리:잡의..
김영한님의 [스프링 핵심 원리] 강의를 정리하고, 내가 생각한 내용까지 정리하는 포스팅 지난번에 스프링을 사용해서 빈을 어떻게 등록하는지 알게되었습니다. 실제로 등록이 되었다고는 하는데, 정말 등록이 된게 맞는지 직접 확인을 해볼 필요가 있습니다. 그래서 컨테이너에 등록된 빈을 한번 조회해보도록 하겠습니다. package core.order.beanfind; import core.order.AppConfig; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework..
OAuth2 승인 방식의 종류 Authorization Code Grant Type : 권한 부여 코드 승인 타입 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용됩니다. 리스소 접근을 위한 사용자 명과 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용하여 리소스에 대한 엑세스 토큰을 받는 방식입니다. Implicit Grant Type : 암시적 승인 권한 부여 코드 승인 타입과 다르게 권한 코드 교환 단계 없이 엑세스 토큰을 즉시 반환받아 이를 인증에 이용하는 방식입니다. Resource Owner Password Credentials Grant Type : 리소스 소유자 암호 자격 증명 타입 클라이언트가 암호를 사용하여 엑세스 토큰에 대한 사용자의 자격 증명을 교환하는 ..
인프런에서 백기선 님의 [스프링 프레임워크 핵심 기술] 을 듣고 정리한 내용입니다 참고: 스프링 프레임워크 레퍼런스 https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html 스프링이란? https://docs.spring.io/spring/docs/current/spring-framework-reference/overview.html#overvie “소규모 애플리케이션 또는 기업용 애플리케이션을 자바로 개발하는데 있어 유용하고 편리한 기능을 제공하는 프레임워크" ● 스프링 프레임워크 그 자체 ● 스프링 프레임워크 포함 모든 스프링 프로젝트 (스프링 부트, 스프링 데이터, 스프링 시큐리티...) ● 이 강좌에서 스프링은..
카카오 면접을 준비하면서, 공부했던 내용을 정리해놓고 다시 기억하기 위한 포스팅 @SpringBootApplication은 다음의 3개의 어노테이션을 포함한다. @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration SpringBoot 어플리케이션 구동에 특히 눈여겨 볼 것은 @ComponentScan 과 @EnableAutoConfiguration @ComponentScan @Component @Configuration, @Repository, @Controller, @Service, @RestController 위 어노테이션을 포함한 모든 클래스를 Bean으로 등록한다. @EnableAutoConfiguration - 설정 자동 등록하기 S..
카카오 면접을 준비하면서, 공부했던 내용을 정리해놓고 다시 기억하기 위한 포스팅 @WebServlet 서블릿을 선언할 때 사용되는 Annotation 이 Annotation이 표시된 클래스는 Servlet Container에 의해 처리된다. 속성 값을 통해 해당 Servlet과 매핑될 URL 패턴을 지정한다. @Controller 이 Annotation이 표시된 클래스는 “Controller” 임을 나타낸다. @Controller는 @Component의 구체화된 역할을 한다. classpath scanning을 통해 구현 클래스를 자동으로 감지할 수 있도록 해준다. 일반적으로 RequestMapping 어노테이션을 기반으로 한 handler method와 함께 사용한다. @WebServlet과 @Cont..