Bank-End Chronicles

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

배경지식 쌓기 - 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의 핵심 개념을 말하자면 결정과 피드백 사이의 갭에 대한 인식, 갭을 조절하기 위한 테크닉이라...

알고리즘 - 완전탐색

Exhaustive Search / Brute Force

완전탐색 문제를 해결하기 위해 확인해야 하는 모든 경우의 수를 전부 탐색하는 방법 무식하게 한다는 뜻으로 Brute-Force라고도 한다 직관적이어서 이해하기 쉽고 문제의 정확한 결과값을 얻어낼 수 있는 가장 확실한 방법이다 종류 순열 Permutation : 선택 순서가 결과에 영향을 미치는 경우 백트래킹 BFS ...

알고리즘 - 삽입정렬

insertion sort

삽입정렬이란 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입하여 정렬을 완성하는 알고리즘 방법 처음 key값은 두번째 자료부터 시작하여, key값 앞의 자료들 중에 맞는 위치에 삽입한다. 삽입정렬의 특징 장점 안정된 정렬 방법 레코드 수가 적을 경우 알고리즘 자체가 매...