분류 전체보기
-
[Part1] Java8 In action - Chapter1 - 1.1 왜 아직도 자바는 변화하는가Java8 In Action 2022. 7. 26. 17:27
해당 내용은 Java8 In Action 책을 요약 및 정리한 내용입니다. 좀 더 자세히 알고 싶으신 분들은 책을 사서 읽어보심을 추천드립니다.! 1.1 왜 아직도 자바는 변화하는가 1.1.2 스트림 처리 스트림이란 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모음이다. 간단한 예로 자동차 생산 공장은 여러 자동차로 구성된 스트림을 처리한다. 각각의 작업장에서 자동차를 받아서 수리. 다음 작업장에서 다른 작업을 처리할 수 있도록 넘겨준다. 조립라인은 자동차를 물리적인 순서로 한 개씩 운반하지만 각각의 작업장에서는 동시에 작업을 처리한다. 기존에는 한 번에 한 항목을 처리 했지만 자바 8애서는 고수준으로 추상화해서 일련의 스트림으로 만들어 처리한다. 스트림 파이프라인을 이용해서 입력 부분을 여러 ..
-
Spring boot + MongoDB Multi-Document TransactionsDB 2022. 7. 22. 17:21
MongoDB 4.0 이전 버전에선 Single-Document Transactions만을 지원하였습니다. RDB는 데이터들을 정규화해서 서로 다른 테이블에 저장하는 반면 MongoDB는 정규화를 거치지 않고 하나의 Document에 몽땅 저장 하기 때문에 MongoDB의 지향점을 생각하면 Single-Document Transactions이면 충분했겠지만 세상은 우리의 뜻(?)대로만 살 수 없기에 4.0 버전부터 Multi-Document Transactions이 지원되게 되었습니다. 여담이지만 4.0 이전 버전에서 Multi-Document Transactions을 위해선 2-Phase-Commits과 같은 방법을 개발자가 직접 처리해야 했습니다. 그럼 버전별로 달라진 점을 간략 설명하자면 v4.0 ..
-
Spring @Sevice 클래스 유연하게 써보기Spring 2022. 7. 15. 08:16
Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현 :: 신나게의 개발썰 Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현-2 :: 신나게의 개발썰 Service 관련 작성하였지만 개인적으로 아쉬운게 있어 추가 글(또 작성하네..)을 작성하려고 합니다.(이전 글 홍보 양해 부탁드립니다^^) Spring Framework를 활용하면 MVC 패턴을 사용하게 됩니다. MVC 패턴에 의거(?)해서 @Controller 어노테이션으로 선언된 Controller 클래스 생성 비지니스 로직 처리를 위해 @Service 어노테이션으로 선언된 Service 클래스 생성 여기서 이번 글의 목적은 저 Servie 클래스를 유연하게 써보기 위한 목적..
-
Spring Mybatis 상속Spring 2022. 5. 30. 09:52
Spring의 Multi Datasource 관련해서 작성 했던 docker-compose으로 Postgresql Replication 구성 :: 신나게의 개발썰 Spring Multi Datasource(다중 데이터소스) 설정 :: 신나게의 개발썰 Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현 :: 신나게의 개발썰 Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현-2 :: 신나게의 개발썰 위 게시물들로 Multi Datasource는 마무리 짓으려고 합니다. 마무리 하기 전에 번외(?)편으로 Mybatis 관련 게시물을 작성하고 끝맺음으로 하려고 합니다. Spring 개발자라면 Mybatis는 아무래도 빼놓을 수 없고 많..
-
Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현-2Spring 2022. 4. 7. 19:34
지난 블로그 게시글에 Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현 :: 신나게의 개발썰 관련하여 추가적으로 글을 작성하려고 합니다. 개발을 하다보면 Master(Write)/Slave(Read)로 구성되어 있다해서 Write는 무조건 Master, Read는 무조건 Slave로만 할 수 있는 상황만 생기진 않습니다. 때로는 Write 구현에서 Read 시 Slave가 아닌 Master 트랜잭션을 사용해야 하는 경우도 있습니다. 이유는 Master와 Slave 간의 데이터 동기화 시간차 때문이죠. Write 구현에서 Master 트랜잭션으로 데이터 저장 다른 곳에서 해당 데이터를 Slave 트랜잭션에서 조회 이때 해당 데이터가 Slave와 동기화 중임으로 데이터..
-
Spring Multi Datasource(다중 데이터소스)를 활용한 Service 구현Spring 2022. 3. 22. 09:37
지난 블로그 게시글인 Spring Multi DataSource(다중 DataSource) 설정 :: 신나게의 개발썰 관련해서 다중 데이터소스 구성 후 정상적인 트랜잭션 사용법에 대한 글을 작성하려고 합니다. 다중 데이터소스 구성은 단일 데이터소스 일때와 다르게 @Transactional어노테이션에 다양한 속성(?)을 사용하여야 합니다. 만약 그러지 않을 경우 원하지 않는 트랜잭션을 사용하게 됩니다. 이에 @Transactional설정에 따른 테스트와 올바르게(?) 사용하는 방법 중 한가지를 공유 합니다. DB 구성과 다중 데이터소스 설정은 위 제가 작성한 블로그 글을 토대로 되어 있으니 별도로 확인해보고자 하신다면 위 블로그 글들을 차례대로 따라하셔서 구축 혹은 설정을 하시면 되겠습니다. 무슨 문제? ..
-
Spring Multi Datasource(다중 데이터소스) 설정Spring 2022. 2. 10. 15:17
믿기지 않지만 본 글의 작성을 위한 초석(?)으로 docker-compose으로 Postgresql Replication 구성 :: 신나게의 개발썰 을 선행 작성 하였다. 먼저 Datasource와 Transaction을 구성하는 여러 가지 방법이 있지만 대략적으로 두 가지를 소개 하자면 단일 Datasource + Transaction 하나의 Transaction에 DataSoruce를 하나 포함 하는 기본적인 구성이다. 복수 Datasoruce + 단일 Transaction 하나의 Transaction에 복수 의 DatasSource를 포함하는 구성이다. 해당 구성이 이번 글에서 구성할 설정이다. 이와 같이 구성하는 목적은 위 초석(?) 글의 구성 처럼 Master : Insert, Update, D..
-
docker-compose으로 Postgresql Replication 구성DB 2022. 1. 17. 10:17
Replication 구성으로 얻을 수 있는 장점으론 당연히 장애로부터 자유(?)로워 질 수 있는 부분도 있지만 서비스적인 측면으로 봤을 때 마스터는 Write(저장, 수정, 삭제)로 활용 슬레이브는 Read(조회)로 활용 볼 수 있다. 이렇게 분리하면 장애 시 서비스에 끼치는 영향도를 낮춤 단일 서버 구성 시 장애가 발생 되면 저장, 삭제, 수정, 조회등 전체적인 서비스에 영향이 발생 되지만 분리 시에는 장애 발생 서버를 제외한 서비스는 가능하다. 퍼포먼스 향상 Read와 Write 작업을 분리함으로서 서로 간에 작업 영향도를 최대한 격리하여 퍼포먼스를 향상 시킬 수 있다. Postgresql(이하 pg)의 Replication은 WAL(write-ahead logging)을 활용하며 pg에선 WAL로..