개요 마이크로서비스 아키텍쳐에서 API Gateway는 실제 서비스 요청에 대한 진입점으로서 중요한 역할을 수행한다. API Gateway를 통해 실제 요청에 대한 로드 밸런싱, 인증, 스로틀링, 모니터링 등을 수행할 수 있다. 오픈 소스 진영에서는 전통적으로 HAProxy, NGINX가 대표적이며, 보다 애플리케이션에 특화된 Kong이 존재한다.한편, Netflix Zuul는 Java 언어로 개발된 API Gateway이자 HTTP Reverse Proxy이다. 덕분에 JVM 환경에 친숙한 개발자들은 입맛에 맞게 필요한 기능을 자유롭게 개발할 수 있다. Netflix는 수년간 AWS ELB와 Netflix Zuul의 조합으로 자사의 서비스를 안정적으로 운영하고 있다.추가적으로 Netflix Zuul을 ..
개요 Java 진영에서 RDBMS에 접근하는 방법은 기존의 MyBatis가 지배하던 시대에서 JPA로 빠르게 이동하고 있다. 특히, Spring Data JPA의 등장으로 불필요한 코드가 상당히 줄어들면서 새로 시작하는 프로젝트는 모두 Spring Data JPA로 구현하는 추세이다. 하지만, 여전히 RAW SQL의 수요가 존재하기 때문에 컴파일 타임에서의 타입 세이프를 보장하는 Querydsl, jOOQ와 같은 라이브러리가 JPA를 보조하는 형태로 인기를 끌고 있다.(특히, 보고서 목적의 복잡한 SELECT 쿼리가 필요한 경우가 많다.) 이번 글에서는 Kotlin, Spring Boot, Spring Data JPA 환경에서 Querydsl을 이용하여 타입 세이프를 보장하는 쿼리를 작성하는 방법을 소개..
개요 이번 글에서는 Spring Boot 2.x, JBoss Undertow 조합의 웹 애플리케이션에서 Graceful Shutdown을 구현하는 방법을 설명하고 한다. Spring Boot와 Graceful Shutdown Spring Boot는 전형적인 멀티 쓰레드 애플리케이션이다. 클라이언트로부터의 단일 요청을 처리하기 위해 다양한 쓰레드가 유기적으로 작동하여 응답을 반환한다. 한편, 엔터프라이즈 레벨의 애플리케이션은 HA 보장이 필수이며 서비스 중인 1개 노드가 Shutdown될 경우 동일한 역할을 하는 다른 노드가 제 기능을 할 수 있어야 한다.HA 환경에서 애플리케이션 Shutdown시의 Graceful Shutdown 보장은 모든 언어와 플랫폼을 불문하고 가장 중요한 요소이다. Gracefu..
Bean Validation Bean Validation은 엔터프라이즈 레벨의 애플리케이션 개발시 자주 반복되는 유효성 검사 패턴을 정리한 Java EE 표준이다. 레드햇, 오라클 등 세계 굴지의 IT 기업에 종사하는 전문가 집단이 참여하여 표준을 만들었다. 인터페이스를 잘 이해하고 구현체를 활용하면 소스 코드의 가독성을 높아지고 많은 코드를 절약할 수 있다. 1.0(JSR 303)이 최초 버전으로 2009-10-12 발표되었다. [스펙 링크] 1.1(JSR 349)가 2013-04-10 발표되었다. [스펙 링크] 2.0(JSR 380)이 현재 최신 버전으로 2017-08-03 발표되었다. Java 8이 요구되며 그 밑의 버전은 지원하지 않는다. [스펙 링크]JSR 380 스펙의 인터페이스는 javax...
- Total
- Today
- Yesterday
- node.js
- jpa
- Kendo UI Web Grid
- 평속
- JHipster
- 태그를 입력해 주세요.
- maven
- JavaScript
- Kendo UI
- jstl
- CentOS
- java
- MySQL
- Eclipse
- 로드 바이크
- graylog
- chrome
- 자전거
- jsp
- Spring MVC 3
- kotlin
- bootstrap
- 구동계
- Tomcat
- 로드바이크
- Spring Boot
- Docker
- 알뜰폰
- spring
- DynamoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |