본문 바로가기

분류 전체보기110

[Spring] JDBC 트랜잭션 동기화 트랜잭션이란 데이터베이스에서 자주 사용되는 용어로, 하나의 논리적인 작업 단위를 의미합니다.우리는 지금까지 하나의 쿼리를 하나의 작업단위로 사용해왔습니다. 인서트 1번하는 작업 1개, 업데이트 1번 하는 작업 1개..하지만 어플리케이션의 로직상 쿼리 하나가 작업 하나로 되는 경우만이 있는 것은 아닙니다.간단하게 계좌이체를 예로 들어보면, A가 B에게 계좌이체를 할 때, 작업은 하나지만 쿼리는 최소 2개가 됩니다.A의 잔액을 감소시키기 위해 업데이트 하고, B의 잔액을 증가시키기 위해 업데이트를 하게 됩니다.그런데 만약 A의 잔액을 감소시키고, B의 잔액을 증가시키려는데 갑자기 네트워크 오류와 같은 에러가 발생한다면?A의 잔액은 감소되었지만, B의 잔액은 증가되지 않은... 공중으로 돈이 날라가는 현상이 .. 2019. 3. 25.
[Spring] @Transactional 정리 및 예제 [Spring] @Transactional 정리 및 예제 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 어노테이션 @Transactional ] 입니다. : ) 들어가기 앞서...... SI를 할때, 현재 어느 쇼핑몰 운영을 맡으며 개발 소스를 보면 많은 비즈니스 로직이 Controller에 절차지향적으로 짜여져 있는걸 보게 된다. 이런걸 볼때마다 조금씩 business을 하나의 트랜잭션 단위로, Service쪽으로 옮기는 작업을 할 수 있다. 이로 인해 그나마 객체지향적으로 코딩할 수 있고, 재사용 할 수 있음과 동시에 Transaction 단위로도 개발하기 편해진다. 1. 트랜잭션의 성질 ▶ 원자성(Atomicity) - 한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또.. 2019. 3. 22.
[Java] JPDA를 이용한 원격지 Tomcat(WAS)의 Java Web Application 디버깅 Java Platform Debugger Architecture (JPDA) 요즘의 웹어플리케이션 개발의 상당수가 Java를 이용한 Spring Frameworks으로 개발을 많이 한다.Eclipse를 이용하거나 Eclipse 기반의 STS(Spring Tool Suite)을 이용하여 개발을 하게 된다. 대부분의 개발자들은 아래와 같은 식으로 개발을 하게 된다.Eclipse에서 제공하는 Tomcat 을 이용하여 개발과 디버깅을 한다.이 경우 개발환경이 대부분이 개인PC(대부분 Windows OS)에서 개발을 하게 된다.개발과 디버깅시 실제 서비스가 실행되는 Linux 와는 환경적으로 다른점이 많다. JPDA(The Java Platform Debugger Architecture)는 이러한 환경적인 문제를.. 2019. 3. 18.
[Java] Eclipse 기반하에서 Tomcat 서버와 Remote Debugging 하기 Eclipse 기반하에서 Tomcat 서버와 Remote Debugging 하기Remote Debugging을 가능하도록 하기 위해서는 먼저 Tomcat 서버를 시작할 때 JVM에 다음과 내용을 추가해야 한다. CATALINA_HOME/bin/catalina.bat 파일에 다음 라인을 추가한다.set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 위와 같이 추가하게 되면 8000 port를 이용하여 Remote Debugging이 가능하도록 지원하겠다는 의미이다. Tomcat 서버가 기본적으로 8080 port를 사용하고 있으므로 8080 port 이외에 다른 port를 사용해야 한다. 위 옵션에 대한 자세한.. 2019. 3. 18.