Bank-End Chronicles

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

배경지식 쌓기 - 마이크로서비스

아키텍처

MicroService 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성된 경우 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식 이런 서비스는 독립적인 소규모 팀에서 보유한다. 마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간을 단축...

배경지식 쌓기 - 디자인 패턴 Observer Pattern

GoF Design Pattern

Observer Pattern 관찰자 패턴 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴 일대다 관계 상태가 업데이트되면 모든 옵저버들에게 정보를 갱신할 수 있도록 한다. 분산 이벤트 핸들링 시스...

배경지식 쌓기 - EAI

Enterprise Architecture Integration

EAI Enterprise Architecture Integration 정의 기업 내에서 필요한 각종 애플리케이션 간 상호 연동이 가능하도록 통합하는 솔루션 EAI가 필요한 이유 한 기업 내의 ERP 전사적자원관리, CRM 고객관계관리, SCP 공급망계획 시스템이나 인트라넷 등의 시스템간 서로 데이터를 주고받아야 하는데, 데이터를 주고받기...

Java - Comparable, Comparator로 정렬하기

Java 객체 정렬하기

Comparable Interface vs Comparator Interface 객체를 정렬한다는 것은 사용자가 정의한 기준으로 정렬하는 것이다. 객체를 비교하는 정렬 기준을 Comparable과 Comparator 인터페이스로 명시할 수 있다. Comparable과 Comparator은 모두 인터페이스다. 인터페이스에 선언된 메소드를 구현하면서 사...

Spring - VO와 DTO의 차이

Value Object vs Data Transfer Object

DTO Data transfer Object 전송되는 데이터의 컨테이너 (Java Beans) DB의 데이터를 로직을 갖고 있지 않은 순수한 데이터 객체로 가져오는 것. getter, setter메소드만 가진다. 데이터를 저장하여 사용하도록 한다 같은 시스템에서 사용되는 것이 아닌 다른 시스템으로 전달하는 작업을 처리하는 객체다. ...

Spring - POJO란?

Plain Old Java Object

POJO Plain Old Java Object Java EE등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 무거운객체를 만들게 된 것에 반발해서 사용하게 된 용어 우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을 왜 그렇게 반대하는지 궁금하였는데, 간단한 객체는 폼 나는 명칭이 없기 때문에 그랬던 것이라고...

알고리즘 - 정렬의 두 가지 갈래, stable sort와 inplace sort

Stable Sort / Inplace Sort

Stable Sort 중복된 키를 순서대로 정렬하는 정렬 알고리즘 같은 값이 2개 이상 리스트에 등장할 경우 중복 키들은 기존 리스트에 있던 순서대로 정렬된다 예를 들어, 이런 배열이 있다 1 arr = [9(1번째), 3, 6, 9(2번째), 24, 13] 정렬을 했을 때 이런 순서로 나오게 되...

Java - 더 빠른 입출력을 구현하기 위한 여정

StringTokenizer와 BufferedReader 콤비네이션

BufferedReader 버퍼를 이용해서 읽고 쓰는 것 Scanner보다 입출력의 효율이 좋아진다. 하드디스크는 원래 속도가 느리고, 외부장치와의 입출력은 생각보다 시간이 걸리는 작업이다. 따라서 데이터를 바로 목적지로 이동시키는 것보다 메모리 버퍼를 두어 데이터를 한번에 묶어서 이동시키는 것이 효율적이고 빠르다. Scanner와의...

배경지식 쌓기 - 디자인 패턴

GoF Design Pattern

디자인 패턴 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할 때 참조할 수 있는 전형적인 해결방식 디자인 패턴을 통해 설계 문제, 해결 방법, 해결방법의 적용 방식과 결과를 알 수 있다. GoF(Gang of Four) 디자인 패턴 소프트웨어 공학에서 가장 많이 사용되는 디자인 패턴 목적에 따라 분류한 패턴...

배경지식 쌓기 - TDD 테스트 주도 개발

Test Driven Development

TDD 테스트 주도 개발 테스트를 먼저 만드록 테스트를 통과하기 위한 코드를 짜는 것이다. 만드는 과정에서 우선 테스트를 작성하고, 그에 해당하는 코드를 짜는 것을 반복하면서 제대로 동작하는지 피드백을 적극적으로 받는 것이다. 추상적으로 TDD의 핵심 개념을 말하자면 결정과 피드백 사이의 갭에 대한 인식, 갭을 조절하기 위한 테크닉이라...