개요 REST API를 설계하다보면, 하나의 API 요청 사이클을 처리함에 있어 가장 앞 단계에서 이미 유효한 인증을 통해 획득했던 회원 오브젝트를 반복적으로 다시 획득해야 문제에 부딪히게 된다. (데이터베이스에서 다시 조회하는 것은 퍼포먼스 측면에서 비효율적이다.) 일반적으로 하나의 요청이 하나의 쓰레드로 처리되는 것을 감안하면, 특정 쓰레드의 생명 주기 안에서 전역으로 접근할 수 있는 변수를 설계하면 이러한 상황에서 고민 없이 재사용할 수 있을 것이다. 이번 글에서는 이 방법을 통해 하나의 쓰레드 안에서 특정 오브젝트를 재사용할 수 있는 방법을 예제를 통해 소개하고자 한다. 작성 예 아래는 하나의 쓰레드 안에서 전역으로 참조할 수 있는 RequstContext라는 클래스를 작성한 예이다. 프로덕션 레..
개요 JWT(JSON Web Token)는 전통적인 Opaque Token과 반대되는 개념으로 제 3자가 토큰 문자열에서 주요 정보를 확인 가능한 것이 특징이다. (반면에 Opaque Token은 UUID와 같이 의미 없는 랜덤 문자열을 의미하며, 주요 정보는 서버 사이드에 안전하게 격리된 저장소에 랜덤 문자열과 매칭하여 저장한다.) JWT 도입의 장점은 토큰 관리에 있어 별도의 저장소가 필요하지 않아 진정한 의미의 상태 없는 마이크로서비스 구현이 가능하다는 것이고, 단점은 한번 발급한 토큰에 대한 일괄 만료 등의 직접적인 제어가 힘들다보니 보안을 위한 추가 절차의 설계가 필요하다는 것이다. (이에 대한 보완책으로 Access Token은 JWT 방식으로 수명을 짧게 설정하고, Refresh Token은..
개요 Spring Boot는 Java, Kotlin 진영에서 가장 많이 사용되고 있는 프레임워크이다. 이름에서 드러나듯이 국내에서 가장 사랑 받는 Spring 프레임워크를 기반으로 한다. 경쟁자로 역시 뒤지지 않는 막강한 기능의 Dropwizard가 존재하지만 국내에서는 친숙하지 않은 JAX-RS를 기반으로 하여 앞으로도 국내에서 많이 쓰이지는 않을 것으로 생각된다. (나는 2015년 국내 모 영화 포탈 서비스의 일부를 JAX-RS 기반의 Jersey로 개발하며 상당한 생산성 향상을 경험한 적이 있다. 문제는 후에 담당한 운영 인력이 익숙치 않은 문법에 어려움을 겪었다고 한다.) 이후로는 Kotlin + Spring Boot 조합으로 소속한 회사의 백엔드 서비스를 개발하고 있는데 매번 그 편리함에 감탄하..
개요 Java 17은 Java 11을 계승하는 공식 LTS 버전으로 2021-09-14 정식으로 공개되었다. 이를 통해 현업의 개발자들은 프로덕션 레벨의 미션 크리티컬 엔터프라이즈 서비스를 제작하는데 있어 OpenJDK 17을 안심하고 이용할 수 있게 되었다. Amazon Corretto는 Amazon이 직접 TCK 인증을 받아 빌드한 OpenJDK 구현체이다. Amazon은 자사의 수천대의 내부 프로덕션 서버에 성공적으로 사용 중이기 때문에 안정성에는 전혀 문제가 없다고 밝히고 있다. [관련 링크1] [관련 링크2] Amazon Corretto는 멀티플랫폼을 지원하여 Amazon Linux 2, RHEL(CentOS), Ubuntu, Windows, macOS에서 설치가 가능하다. 기업, 개인에 관계 ..
- Total
- Today
- Yesterday
- CentOS
- 알뜰폰
- Eclipse
- Kendo UI Web Grid
- Spring MVC 3
- maven
- Tomcat
- jstl
- jpa
- Spring Boot
- DynamoDB
- jsp
- 구동계
- JHipster
- 로드 바이크
- JavaScript
- node.js
- graylog
- Kendo UI
- 로드바이크
- spring
- kotlin
- Docker
- chrome
- bootstrap
- MySQL
- 태그를 입력해 주세요.
- java
- 평속
- 자전거
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |