XA 2PC(2 phase commit) 분산 트랜잭션 처리를 위한 X-OPEN 표준이며 하나 이상의 데이터베이스간에 2PC 트랜잭션이 보자오디어야할때 XA Datasource가 사용됩니다. 글로벌 트랜잭션(분산 트랜잭션)을 적용하기위해서는 반드시 2PC를 해야하고 JTA를 사용할때 XA가 사용됩니다. JTA JTA (Java Transaction API)는...
datasource와 transaction 트랜잭션은 일반적으로 단일 datasource단위로 관리됩니다. 그렇다면 다중 datasource 환경에서는 transaction을 어떻게 구축할수 있는지 알아보도로고 하겠습니다. Transaction propagation 설정을 통한 환경 Datasource 마다 TransactionManager가 설정되어, 양측의 데이터소스 트랜잭션을 확실하게 체크 할 수 없습니다. Propagation을통해...
Git-flow Git flow란 이름에서 알수 있다시피, Git의 흐름을 관리하는 방법론입니다. 그렇다면 git의 흐름을 관리하게되면 어떤 좋은점이 있는지 알아보도록 하겠습니다. Git-flow 히스토리 다이어그램 깃 플로우를 적용하기위해서는 두가지의 필수 사항만 지켜주시면 쉽게 따라하실수 있습니다. 모든 작업내용은 하나의...
Devtools 개요 기능 1. 템플릿(thymeleaf, freemaker … )에 대한 cache property default들을 자동 비활성화 처리 기능 2. Trigger 파일들에 대한 update 발생시 자동 시작 기능 3. 소스 변화시 application 이 브라우저 liveReload 발생 이슈 IntelliJ에서...
개요 이번 포스팅에서는 자바에서는 파일을 어떻게 동작을 시키는지를 알아보도록 하겠습니다. 실행 과정 1. Compile 보통 JAVA로 코딩을 하게되면, .java 파일형식으로 작성을 하게되는데 해당 파일은 컴퓨터에서 바로 실행가능한 파일이 아닙니다. 실행간으하게 만들기위해 컴파일 과정을 거치게 되는데,...
ExceptionHandler 스프링에서는 예외처리를 위한 어노테이션인 Exception Handler를 제공해주고 있습니다. 간단한 예제로써 알아보도록 하겠습니다. // SampleController.java @RestController @RequestMapping("/") public class SampleController.java { private static Logger logger = LogManager.getLogger(SentenceModularController.class); private SentenceModularService sentenceModularService; @Autowired public SentenceModularController(SentenceModularServiceImpl sentenceModularService) {...
Filter 필터는 HTTP 통신에서 Client의 Rquest와 Response를 목적에따라 변형시킬수 있는 역할을 합니다. 일반적으로 java.servlet.Filter에 선언되어있는 Filter를 상속받아 구현할수 있으며, ‘필터체인’이라는 주체에의해 필터들은 순차적으로 실행되게 됩니다. public class SomeFilter implements Filter { @Override public void init()...
2.16 Spring MSA (7) - 트랜잭션 일체형 아키텍쳐 에서는 왠만한 모든 처리들을 데이터베이스 트랜잭션에 의존하여 롤백처리를 지원해줄수 있습니다. 하지만 MSA와같은 분산환경에서는 서비스마다 다른 데이터베이스를 쓰는것이 일반적이라 일괄된 롤백처리가 어렵습니다. 이번챕터에서는 MSA 환경에서 트랜잭션처리를 하는 방법에대해서...
2.15 Spring MSA (6) - 리액티브(WebFlux) Spring 팀에서는 Spring framework5 부터 기존의 Spring MVC와는 별도로 리액티브를 위한 Spring WebFlux를 지원하고 있습니다. 이전챕터에서는 RabbitMQ를 통한 MSA에서의 리액티브 서비스를 구현해보았는데, 이번에는 Webflux를 통한 리액티브 서비스를 구현해보도록 하겠습니다....
2.14 Spring MSA (5) - 리액티브(RabbitMQ) 처음 MSA 포스팅에서 일체형 서비스와 비교해 서비스간의 통신으로 인한 오버헤드가 단점으로 지적된다고 말씀드렸습니다. 이 단점을 해결하기위한 스프링 MSA에서의 리액티브는 어떻게 사용되는지 알아보도록 하겠습니다. Contents List 2.14.1) 리액티브 프로그래밍 동기(Synchronous)...
본 프로젝트는 다음 링크를통해 확인하실수 있습니다. Homepage : http://www.stocknews.me Github : https://github.com/taes-k/stock_analysis Contents List 프로젝트 요약 사용된 스택 1.프로젝트 시작 2.프로젝트 기획 3. 개발 시작 4. 어쩌다보니 머신러닝? 5.프론트엔드 & 마무리 프로젝트 요약 뉴스 기사...
2.13 Spring MSA (4) - 인증서비스 MSA를 구성하면서보안을 위해 Oauth2를 일반적으로 사용하게 됩니다. 특히 스프링에서 제공하는 Spring cloud security를 사용하게되면 Token 링레이 방식으로 게이트웨이에서 얻은 인증토큰을 매칭된 서비스까지 넘겨서 최종 인증을 진행하는 과정을 거치게 됩니다....
구동환경 OS : Ubuntu 16.04 JAVA : JAVA8 TOMCAT : Tomcat8 Tomcat out of memory tomcat으로 서비스를 하다가 out of memory 오류가 나는경우가 있을것이다. 자주 발생하는 에러로는 Java.lang.OutOfMemoryError: Java heap Space Heap size error Java.lang.OutOfMemoryError:...
2.12 Spring MSA (3) - 기본구성 이전까지 알아본 MSA와 Spring cloud를 사용해 이제 예제프로젝트를 본격적으로 진행해보도록 하겠습니다. Contents List 2.12.1) 예제프로젝트 기획 아키텍쳐 구성 프로젝트 구성 2.12.2) 예제 프로젝트 구현 web-site(8080) 유레카 서버(8761) 유저 서비스(8000)...
2.11 Spring MSA (2) - 스프링 클라우드 MSA의 확장에 맞추어 분산 시스템 개발은 필수가 되었습니다. 스프링은 이러한 발전에 맞추어 마이크로서비스 구축에 필요한 라이브러리들을 모아 ‘스프링 클라우드 프로젝트’를 제공하고 있습니다. 이번 챕터에서는 MSA 예제 프로젝트에서 사용하게될...