@Transactional 사용시 주의사항 @Transactional을 클래스 또는 메써드 레벨에 명시하면 해당 메써드 호출시 지정된 트랜잭션이 작동하게 된다. 단, 조건이 있다. 해당 클래스의 Bean을 다른 클래스의 Bean에서 호출할 때만 @Transactional을 인지하고 작동하게 된다. (같은 빈 내에서 @Transactional이 명시된 다른 메써드를 호출해도 작동하지 않는다.) Spring Framework는 내부적으로 AOP를 통해 해당 어노테이션을 인지하여 프록시를 생성하여 트랜잭션을 자동 관리하기 때문이다. [관련 링크1] [관련 링크2] Propagation.REQUIRED (기본 값) @Transactional(propagation = Propagation.REQUIRED) pub..
BigDecimal? BigDecimal은 Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다.소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이 유실될 수 있다.Java 언어에서 돈과 소수점을 다룬다면 BigDecimal은 선택이 아니라 필수이다.BigDecimal의 유일한 단점은 느린 속도와 기본 타입보다 조금 불편한 사용법 뿐이다. double, 무엇이 문제인가? 소수점 이하의 수를 다룰 때 double 타입은 사칙연산시 아래와 같이 우리가 기대한 값과 다른 값을 출력한다. 이유는 double 타입이 내부적으로 수를 저장할 때 이진수의 근사치를 저장하기 때문이다. 저장된 수를 다시 십진수로 표현하면서 아래와 같은 문제가 발생..
엘리트 볼라노 Elite는 40여년 역사의 이탈리아 브랜드이다. 우리나라에서는 고정로라라는 이름으로 불리우는 인도어 트레이너(홈 트레이너) 제품군으로 유명하다. 내가 구매한 Elite Volano(엘리트 볼라노)는 제품군 중 하나로 실내에서 자전거 바퀴를 움직이지 않은채 페달링 훈련이 가능한 제품이다. 자전거의 뒷바퀴를 탈거하고 트레이너와 결합하는 다이렉트 드라이브 방식으로 타이어 마모로 인한 분진이 없고 소음과 진동이 적은 것이 장점이다. 또한, 최대 1,200W의 저항을 제공하여 실제 도로에서 라이딩하는 느낌을 가질 수 있다. 별도로 판매하는 Elite Misuro B+(엘리트 미주로 비 플러스)를 구매하여 장착하면 PC 또는 스마트폰과 연결하여 훈련량을 정밀하게 측정할 수 있다. 유의할 점은 130..
개요 마이크로서비스 아키텍쳐에서 API Gateway는 실제 서비스 요청에 대한 진입점으로서 중요한 역할을 수행한다. API Gateway를 통해 실제 요청에 대한 로드 밸런싱, 인증, 스로틀링, 모니터링 등을 수행할 수 있다. 오픈 소스 진영에서는 전통적으로 HAProxy, NGINX가 대표적이며, 보다 애플리케이션에 특화된 Kong이 존재한다.한편, Netflix Zuul는 Java 언어로 개발된 API Gateway이자 HTTP Reverse Proxy이다. 덕분에 JVM 환경에 친숙한 개발자들은 입맛에 맞게 필요한 기능을 자유롭게 개발할 수 있다. Netflix는 수년간 AWS ELB와 Netflix Zuul의 조합으로 자사의 서비스를 안정적으로 운영하고 있다.추가적으로 Netflix Zuul을 ..
- Total
- Today
- Yesterday
- JavaScript
- 자전거
- bootstrap
- Docker
- kotlin
- jsp
- 로드 바이크
- jpa
- Tomcat
- MySQL
- graylog
- CentOS
- Kendo UI
- Kendo UI Web Grid
- maven
- node.js
- Eclipse
- Spring MVC 3
- JHipster
- Spring Boot
- spring
- java
- 알뜰폰
- jstl
- chrome
- 평속
- 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 |