Free Lines Arrow
본문 바로가기
728x90

전체 글381

[Architecture] DDD(Domain Driven Design) DDD 란? 다른 블로그를 보다가 딱히 명확하게 정리 된게 없어서 정리를 해봅니다. 번역하면 Domain Driven Design 도메인 주도 개발이다. 도메인을 중심으로 설계해 나가는것을 의미한다. DDD 나온이유 그럼 왜 DDD 설계가 필요할까? 탄생 배경을 보자. DDD 의 탄생배경은 다음과 같다. Eric Evans의 책 제목인 Domain Driven Design의 약자인 DDD였다. DDD 가 나온 이유는 설계자와 개발자 둘의 언어 장벽을 해결 한다 쉽게 말해서 개발자 설계자 모두 도메인 관점에서 문제를 바라보는 것이다. DDD 의 주요 목적 도메인 모델과 도메인 로직에 집중한다. 유비쿼터스 랭귀지를 사용해 설계자와 개발자 사이의 소통을 원활하게 한다. 유비쿼터스 랭귀지를 사용하여 도메인과 구.. 2022. 9. 18.
[Spring DB] 트랜잭션 적용 방식 트랜잭션 적용 방식 트랜잭션의 적용 방식을 알아보자. 어떻게 트랜잭션 코드가 개선되는지 확인해본다. AOP를 이용하여 트랜잭션 코드와 비즈니스 로직을 분류 해본다. 트랜잭션 의 적용 방식 종류 선언적 트랜잭션 관리 @Transaction - AOP 사용 - Proxy 구조 프로그래밍 방식의 트랜잭션 관리 JDBC 트랜잭션 - 코드 작성 필요 트랜잭션 템플릿 - 코드 작성 필요 트랜잭션 사용 준비 앞서 커넥션 풀에 대해 공부 했다. 트랜잭션을 사용하기 위해선 동일한 커넥션을 사용해야 된다. JDBC 트랜잭션 적용 동일한 커넥션을 사용하기 위해 커넥션을 파라미터로 넘겨주자. accountTransfer 메소드 시작 할때 dataSource 에서 커넥션을 가져온다. 커넥션의 오토 커밋을 false 로 하여 트.. 2022. 9. 11.
[Design Pattern] Composite Pattern Composite pattern 컴포짓 패턴 이란? composite 패턴은 Composite(디렉토리)과 Leaf(파일)을 동일시해서 재귀적인 구조를 만들기 위한 설계 패턴이다. 어떻게 Composite(디렉토리)과 Leaf(파일)를 동일하게 여길까? component 객체를 상속받아 Composite 와 Leaf 를 상속받도록 한다. 그렇게 되면 다형성으로 Composite, Leaf 를 동일한 객체로 바라볼수 있다. 컴포짓 패턴 구조 Component : 최상의 객체 - 다형성을 위해 최상의 객체를 하나 둔다. Composite: 복합객체 - 폴더를 담당한다. - 그렇기 때문에 List 가 존재하고 add, remove, getChild 메서드가 존재한다. Leaf: 단일 객체 - 파일 객체를 담당.. 2022. 8. 15.
[Spring DB] 트랜잭션 트랜잭션 트랜잭션에 대해서 알아보고 직접 써보자 트랜잭션 이란? 트랜잭션은 하나의 논리적 실행 단위다 영어로는 컴퓨터로 처리하는 작업의 단위 라고 사전에 정의 되어 있다. 왜 필요할까? 제일 쉬운 예제가 계좌 이체 이다. 계좌를 이체할때 다음과 같은 로직을 구현했다고 하자 금액을 차감했는데 오류가 발생해 상대방 계좌에 금액이 안들어 갔다면? 이러한 문제 때문에 트랜잭션이 필요하다 금액차감 이나 금액 증가가 실패하면 모두 실패 되거나 둘다 성공해야 된다. 트랜잭션의 ACID A (원자성): 트랜잭션 안에서 실행되는 로직은 모두다 실패 하거나 모두다 성공하거나를 보장해야된다. C (일관성): 모든 트랜잭션은 일관성 있어야 한다 즉 데이터 무경성 제약 조건을 만족해야 된다. I (격리성): 동시에 실행되는 트.. 2022. 7. 31.
728x90
반응형