본문 바로가기

프로그래밍(TA, AA)

(269)
[스프링] 트랜잭션의 종류 1. 로컬 트랜잭션 2. 분산 트랜잭션(글로벌 트랜잭션)2개 또는 그 이상의 네트워크에 연결된 호스트 간의 트랜잭션XA: 오픈그룹(The Open Group)에서 제정한 분산 트랜잭션 처리를 위한 표준 https://en.wikipedia.org/wiki/Distributed_transactionhttps://en.wikipedia.org/wiki/X/Open_XA 선언적인 트랜잭션 관리 - 대부분의 스프링 프레임워크의 사용자들은 선언적인 트랜잭션 관리를 선택합니다.- 선언적인 트랜잭션 관리는 애플리케이션에 최소한으로 영향을 주므로 비침투적인 경량 컨테이너의 이상과 매우 일치합니다.- 스프링 프레임워크의 선언적인 트랜잭션 관리는 스프링의 관점지향 프로그래밍(AOP)와 사용가능하도록 만들어졌습니다.- 롤백..
[JVM Internal] JVM 메모리 구조 JVM이란? JVM(Java Virtual Machine)을 어떻게 정의할 것인가 고민하기에 앞서 기본적 JVM 원어로부터 알아보겠습니다. JVM은 물리적인 형태가 아닌 소프트웨어로서 하나의 개념으로 존재합니다. 이것이 "VIRTUAL"을 뜻하는 것입니다. 그리고 JVM은 독자적으로 작동할 수 있는 메커니즘과 구조를 가지고 있습니다. 이는 하나의 축약된 컴퓨터와 같은 의미에서 "MACHINE"이라는 단어가 조합된 것입니다. 그러나 "JVM"이 구체적으로 무엇이냐는 질문에 정확한 정의를 내린다기 보다는, 하나의 개념, 스펙(Specification)에 지나지 않는 즉, 어느 누구도 정확하고 자세한 설계도를 제공하지 않고 단지 이렇게 저렇게 해야 한다는 식의 표준화된 정의만으로 존재할 뿐입니다. 이러한 표준..
[알고리즘] 실수란? 수학에서, 실수(real number)는 주로 실직선 위의 점 또는 십진법 전개로 표현되는 수 체계입니다. 예를 들어, -1, 0, 1/2, , π 등은 모두 실수입니다. 실수에 대하여 사칙 연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 실행할 수 있습니다. 실수는 크기 비교가 가능하며, 실직선에서 더 왼쪽에 있는 수가 더 오른쪽에 있는 수보다 작습니다. 특히, 실수는 0보다 큰 양수, 0보다 작은 음수, 0으로 분류됩니다. 또한, 실수는 정수의 비인 유리수와 그렇지 않은 무리수로도 분류되며, 정수 계수 다항식의 근인 대수적 수와 그렇지 않은 초월수로도 분류됩니다. 실직선은 복소 평면의 일부로 볼 수 있으며, 이 경우 실수는 허수와 함께 복소수를 이룹니다. 공리적으로, 실수는 완비 순서체로 정의되며, 이는 동형 ..
[자바] Future 패턴 future라는 것은 "미래", "(경제 용어로는)선물"이라는 의미입니다. 실행 결과를 얻기까지 시간이 걸리는 메소드가 있다고 합시다. 실행 결과를 얻기까지 기다리는 대신 "교환권"을 받게 됩니다. 교환권을 받는 것에는 시간이 걸리지 않습니다. 이 때의 "교환권"을 Future라고 부릅니다. Future라고 하는 교환권을 받은 쓰레드는 나중에 Future를 사용해서 실행 결과를 받으러 갑니다. 그것은 교환권을 가지고 케이크를 받으러 가는 것과 비슷합니다. 만일 실행 결과가 나와 있으면 바로 그것을 받습니다. 준비가 되지 않으면 준비가 될 때까지 기다리게 됩니다. Future는 케이크의 교환권, 예매권, 정리권, "미래"에 현금으로 바꿀수 있는 약속 어음이라고 생각하면 됩니다. Thread-Per-Mess..
[자바] Thread-Per-Message 패턴 thread per message를 직역하면 "메세지마다의 쓰레드"라는 의미가 됩니다. message라는 것은 여기서는 "명령"이라고 생각해도 좋고 "요구"라고 생각해도 좋습니다. 어떤 명령이나 요구마다 새롭게 하나의 쓰레드가 할당되어 그 쓰레드가 처리를 행합니다. 이것이 바로 Thread-Per-Message 패턴입니다. Thread-Per-Message 패턴을 사용하면 메시지는 "의뢰하는 측"과 메시지를 "처리하는 축"이 다른 쓰레드로 되어 있습니다. 메시지를 의뢰하는 측의 쓰레드가 처리하는 측의 쓰레드에 "이 일 좀 해주세요"라고 맡기는 것입니다. Thread-Per-Message 패턴을 사용한 예제 프로그램을 읽어 보겠습니다. 예제 프로그램에서는 Main 클래스가 Host 클래스로 문자의 표시를 ..