전체 글 검색 결과
59건
java.time 패키지 Joda Time 라이브러리를 발전시킨 자바8의 시간API 윤초 문제 해결 Calendar의 불편한 월 표현 해결 Mutalbe 객체가 아닌 임뮤터블 객체 제공 모든 메서드들은 새로운 객체를 생성하여 반환한다. 하위 패키지 java.time.chrono ISO8601 표준 달력 이외의 달력 시스템을 제공 java.time.format 날짜와 시간 데이터를 문자열 형식화 java.time.temporal 날짜와 시간 연산에 도움을 주는 보조 클래스들 java.time.zone 타임 존과 관련된 기능 날짜와 시간 다루기 날짜 / 시간 / 날짜와 시간을 별도의 클래스로 다루게 된다. LocalDate 클래스는 날짜 표현을 다룰 때 LocalTime 클래스 시간 표현을 다룰 때 Loca..
[스프링] (AA vs. Retrofit) 어노테이션 기반 REST 클라이언트를 위한 프레임워크
연구 계기 중국 게임사 미호요는 자사 게임 커뮤니티 앱 HoYoLab을 운영한다. 이 앱은 게임 관련 공략을 공유하는 기본적인 커뮤니티 기능과 더불어, 유저의 게임 내 데이터를 수치화 & 통계해 보여주는 편의 기능도 제공한다. 원신 유저로써 관련 API들의 엔드포인트 주소를 파악하고 인증 방식을 파훼하여 자바 클라이언트를 작성하고 싶었기 때문에 HoYoLab 안드로이드 APK 파일을 살펴보게 되었다. 그러던던 중 HTTP 클라이언트 호출 서비스가 상당히 깔끔히 작성되어 있음을 발견하였다. 개발자는 클라이언트 서비스의 인터페이스만 작성하면 되었는데, 이들은 어노테이션으로 꾸며져 선언적으로 구성되어 있다. 이런 방식은 스프링 MVC에서 핸들러 매핑을 작성하는 것과도 흡사하다. package com.mihoy..
[스프링 Cloud] Spring Cloud AWS + RDS Read Replica 연동
적용 코드 binchoo-spring-study/aws/rds at master · binchoo/binchoo-spring-study 개요 부하 분산 아키텍처는 단일 엔드포인트를 사용자에게 노출하고, 뒷 단의 트래픽 라우팅은 투명하게 감추는 게 이상적입니다. 아마존 관계형 DB 서비스 RDS는, 비용을 20% 가량 더 지불해 Aurora라는 래퍼를 사용하여 해당 부문을 향유할 수 있습니다. 하지만 일반적인 RDS(MySQL, PostgreSQL ...)를 사용할 경우 부하 분산 책임은 AWS가 아닌 응용 계층에 지워집니다. 이 글은 단일 DB 엔드포인트를 사용할 수 없어 응용에서 직접 엔드포인트를 분기 선택할 경우, Spring Cloud AWS JDBC 모듈을 사례로 들어 RDS의 Read Repli..
[WebSocket] Stomp 프로토콜 1.2 명세 번역
주의: 이 문서는 명세서 원본이 아닙니다. 문서를 읽어보면서 개략적으로 개인 공부를 위해 한글로 옮긴 것입니다, 명세의 모든 문장을 포함하지 않았습니다. STOMP 프로토콜 배경 STOMP는 스크립트 언어(Ruby, Python, Perl 등)에서 엔터프라이즈 메시지 브로커와 연결할 필요성이 있어 탄생했다. STOMP는 스크립트 환경에서 "신뢰 가능한 단일 메시지 전송 & 연결 해제"와 "특정 목적지에 쌓여있는 메시지를 모두 읽어오기" 같은 일들을 수행하는, 흔하면서도 논리적으로 단순한 연산들이다. 프로토콜 개요 프레임 기반 프로토콜 STOMP는 HTTP 위에 올라가는 프레임으로 모델링된다. 프레임은 하나의 커맨드, 선택적인 헤더들, 그리고 선택적인 바디를 갖는다. STOMP가 사용하는 기본 인코딩은 U..
[스프링MVC] javax.servlet.http.Part가 파일을 받지 못할 때
Part 인자 바인딩이 안 먹는 경우 스프링 5.3.2 버전 이상을 권장합니다. 이 버전에서 Part 바인딩 관련 이슈가 해결되었음: MockPart in request is not recieved in RequestPart in controller · Issue #26501 · spring-projects/spring-framework Affects version: 5.3.3 Related to: #26261 I have a controller method that accepts multipart/form-data requests with 2 parameters: a file and a @RequestPart String label. Previously in my tests I wa... github...