[DDD] 도메인 주도 설계란 무엇인가
DDD 전체 구조 전략적 설계 (Strategic Design) “무엇을 만들 것인가?” - 큰 그림 관점 1. 유비쿼터스 언어 (Ubiquitous Language) 개발자, 기획자, 도메인 전문가가 똑같은 용어로 소통 예: 경매 시스템 “입찰한다” → placeBid() “낙찰된다” → closeAuction() “재등록한다...
DDD 전체 구조 전략적 설계 (Strategic Design) “무엇을 만들 것인가?” - 큰 그림 관점 1. 유비쿼터스 언어 (Ubiquitous Language) 개발자, 기획자, 도메인 전문가가 똑같은 용어로 소통 예: 경매 시스템 “입찰한다” → placeBid() “낙찰된다” → closeAuction() “재등록한다...
Factory method “객체를 어떻게 만드는지” 보다 “왜/언제 만들어 지는지” 를 드러내고 복잡한 생성과정을 감추는 역할 Factory method의 장점 생성 로직이 복잡한 경우 new User(username, email, password, …) 같이 끝나지 않고 암호화, 중복체크, 값 객체 조립 같이 여러 단...
순회란? 자료구조에서의 순회는 자료구조에 들어있는 데이터를 차례대로 접근해 처리하는 것을 순회라 한다. ArrayList, LinkedList, HashSet, Set, Tree 등 다양한 자료구조가 있는데 각 자료구조마다 순회하는 방법이 모두 다르기 때문에 자바는 자료구조의 구현과 상관없이 모든 자료 구조를 동일한 방법으로 순회할 수 있는 Ite...
Map Map은 Key-Value 의 쌍을 저장하는 자료구조 Key는 유일, Value는 중복 가능 같은 Key로 저장하면 Value 교체 순서를 유지하지 않음 HashMap, LinkedMap, TreeMap 등 다양한 구현체 제공 (HashMap이 가장 널리 쓰인다) Map 인터페이스의 주요 메서드 - 자바 공식문서 Ha...
Set Set은 중복을 허용하지 않고, 순서를 보장하지 않는 자료구조. 어떤 요소도 같은 Set 내에 두 번 이상 나타날 수 없다. Set은 수학적 집합 개념을 구현한 것으로 순서를 보장하지 않고 특정 요소가 집합에 있는지 여부를 확인하는데 최적화. Set 인터페이스는 HashSet, LinkedHashSet, TreeSet 등 다양한 ...
문자열 해시 코드 해시 인덱스를 사용하면 데이터의 값을 배열의 인덱스로 사용해야 한다. 하지만 배열의 인덱스는 1,2,3 같은 숫자만 사용할 수 있다. A, B, C 와 같은 문자열은 배열의 인덱스로 사용할 수 없다. 문자열을 저장할 때 해시 인덱스를 사용해 보자. 문자를 숫자로 변경하는 방법 public class StringHashMain {...
List와 Set List 요소들의 순차적인 컬렉션, 특정 순서를 가지고 중복을 허용한다. 순서 유지 → 특정 순서를 유지한다 이 순서는 요소가 추가된 순서를 반영할 수 있다. 중복 허용 → 동일한 값이나 객체의 중복을 허용 인덱스 접근 → 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 보통 0부터 시작한다. List&l...
추상화와 다형성 ArrayList와 LinkedList 실습내용을 기반으로 공통 기능을 인터페이스로 뽑아서 추상화하면 다형성을 활용한 다양한 이득을 얻을 수 있다. 같은 기능을 제공하는 메서드를 MyList 인터페이스로 뽑아보자. public interface MyList<E> { //같은 기능을 제공하는 메서드를 인터페이스로 뽑아보자...
노드(Node) 배열은 크기를 미리 지정해야 하며, 중간에 데이터를 삽입/삭제할 때 성능에 제약이 있음. 이를 해결하기 위해 동적으로 메모리를 확보하고, 각 데이터를 노드(Node)로 만들어 연결하는 구조가 연결 리스트(Linked List)다. 노드는 내부에 데이터와 다음 노드에 대한 참조를 가지고 있다. 각각의 노드가 참조를 통해 연...
컬렉션 프레임워크 프로그래밍을 하면 데이터를 여러 개 저장하고 처리할 일이 많다. 이럴 때 쓰는 구조가 배열인데, 배열은 몇 가지 한계가 존재한다. 배열은 크기를 미리 지정해야 한다. → 동적으로 늘어나지 않음 추가/삭제가 번거로움 검색, 정렬, 중복 체크 등 다양한 기능 부재 이런 한계를 해결하기 위해 자바에서는 다양한 자료구조를 ...