Bank-End Chronicles

「Memory gets GC’d, but this blog stays committed.」

메세지 큐

Architecture

메세지 큐란? 메세지 큐(Message Queue)는 소프트웨어 시스템에서 데이터를 비동기적으로 교환하기 위해 사용하는 통신 방법 중 하나이다. 생산자(producer)가 보낸 메세지를 일시적으로 저장하고, 소비자(consumer)가 필요할 때 그 메세지를 가져가 처리할 수 있도록 돕는다. 이를 통해 두 시스템 간에 데이터 전송이 이루어지며...

Spring - 의존성 주입

스프링의 원리

스프링의 핵심 원리 IoC (Inversion of Control) IoC : 제어의 역전 객체 생성과 의존 관계 설정을 개발자가 직접 관리하는 대신 스프링 컨테이너가 담당하도록 하는 것 기존 방식: 1 2 3 4 class Service { private Dao dao = new DaoImpl(); // 개발자가 직접 생성 ...

7월 13일 (토)

상반기의 책

상반기의 책 리뷰 올해 시야를 넓혀준 아주 좋은 책이 있다. 이번 프로젝트에서 설계에 대한 고민을 많이 하다보니, 큰 그림을 그려가며 설계하고 싶다는 생각이 자연스레 들었는데, 그 궁금증을 해결해준 책이다. 가상 면접 사례로 배우는 대규모 시스템 설계 기초이다. 1권을 읽기 시작하니까, 너무 재밌어서 출퇴근 길에 멀미 나는 줄도 모르고 버스에서 열...

Spring - 레이어드 아키텍처, 클린 아키텍처, 핵사고날 아키텍처, 도메인 주도 설계

아키텍처에 대한 고찰

최근 2주간 집중적으로 사이드 프로젝트로 개발을 해보며 느낀 것 1. 단일 책임 원칙(SRP)을 따르는 방법은 무엇인가? 서비스 구조를 설계하면서 고민이 되었던 부분이 있다. 서비스 계층으로 책임을 분리할 것인가, 도메인 계층으로 책임을 분리할 것인가? 내가 여기서 말한 서비스 계층으로 책임을 분리한다는 것은 서비스가 다른 서비스를 호출하는...

Spring - JPA의 mapped by

jpa 이해하기

JPA에서 Mapped by 1. Mapped by란 무엇인가? JPA에서 @OneToMany 및 @ManyToMany 관계를 정의할 때 사용하는 어노테이션이다. 주체 엔티티에서 역관계 엔티티를 참조하는 필드에 사용하며, 역관계 엔티티에서 주체 엔티티를 참조하는 필드를 찾도록 지시하는 역할을 한다. 주체(owning) 엔티티에서 역방향 관계(inv...

Oracle - 분석함수

SQL BOOSTER를 읽고

SQL 스터디 8주차! (종료) 1. OVER절 분석함수를 사용하기 위해 분석 대상을 지정할 때 사용 분석함수의 대상을 정하는 역할을 한다. 대부분의 분석함수는 OVER절과 같이 상요한다. OVER()와 같이 괄호 안에 아무런 옵션을 주지 않으면 조회된 결과 전체가 분석대상이다. 분석함수 종류 COUN...

Spring - transactional annotation

annotation 이해하기

Transactional 트랜잭션이란, 데이터베이스의 데이터를 조작하는 작업의 단위(unit of work) 데이터 베이스의 상태를 변경하는 작업, 또는 한번에 수행되어야 하는 연산들을 의미 begin, commit을 자동으로 수행해주고, 예외 발생시 rollback처리를 자동으로 수행해준다. 트랜잭션의 4가지 성질 ACID ...

5월 26일 (일)

2024 절반의 회고

2024년 상반기 회고 다 쓰고 나서야 알았다. 상반기 회고는 6월 말이었어야 하는데, 너무나 바쁜 상반기를 보낸 나머지 벌써 6개월이 된 줄 알았다는 것.. 시간가는 줄 모르고 정신없이 몰입한 상반기였다. 다섯 번째 프로젝트에서의 시간들 (2024/01/15 ~ ) 대외 업무에 첫 발을 내딛다 입사 후 2년 간, 대출 업무를 주로 해오...

Oracle - 트랙잭션과 락

SQL BOOSTER를 읽고

SQL 스터디 7주차! 트랜잭션 반드시 한 번에 처리되어야 하는 논리적인 작업 단위 (더는 쪼갤 수 없는 작업 단위) 트랜잭션은 COMMIT(반영)이나 ROLLBACK(취소)로 종료가 이루어진다. COMMIT으로 종료될 경우, 트랜잭션에서 변경된 데이터들은 모두 DB에 실제 반영된다. ROLLBACK으로 종료될 경우, 트랜잭...

Oracle - NL조인, 머지조인, 해시조인

SQL BOOSTER를 읽고

SQL 스터디 6주차! JOIN과 성능 내부적으로 조인이 처리되는 방식 NESTED LOOPS JOIN MERGE JOIN HASH JOIN 1. NESTED LOOPS JOIN (NL JOIN) 중첩된 반복문 형태로 데이터를 연결하는 방식 선행 집합(선행 테이블 - 조인을 위해 먼저 접근하는 쪽, 바깥쪽 루프)...