3. 애그리거트 3.1 애그리거트 애그리거트의 필요성 도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고, 그렇게 되면 도메인 간의 관계를 파악하기 어려워진다. 복잡한 도메인을 이해하고 쉽게 관리하려면 상위 수준에서 모델을 조망할 수 있는 방법이 필요하다. 애그리거트는 복잡한 도메인을 상위 수준에서 조망할 수 있도록 해준다. 애그리거트의 장점 애그리거트는 도메인의 일관성을 유지하는데 도움을 준다. 복잡한 도메인을 단순한 구조로 표현할 수 있다. 도메인을 변경하는데 필요한 노력이 줄어든다. 애그리거트에 속한 객체는 동일한 라이프 사이클을 갖는다. 애그리거트의 규칙 애그리거트는 자신에게 속한 객체만을 관리할 뿐 다른 애그리거트는 관리하지 않는다. 도메인 규칙에 따라 함께 생성되는 구성 ..
Chapter 2 2.1 네 개의 영역 표현 영역 HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환하여 응용 영역에 전달. 응용 영역의 응답을 HTTP로 변환하여 전달. 응용 영역 사용자에게 제공해야할 기능을 구현. public class CancelOrderService { @Transactional public void cancelOrder(String orderId){ Order order = findOrderById(orderId); if(order == null) throw new OrderNotFoundException(orderId); order.cancel(); } } 위의 예시처럼 응용 서비스는 로직을 직접 수행하는 것이 아니라 도메인 모델에 로직 수행을 위임한다. 도메인 영역 도메..
chapter 1 1.1 도메인이란? 도메인: 소프트웨어로 해결하고자 하는 문제 영역 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 하나의 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. 특정한 도메인을 위한 소프트웨어라고 해서 모든 기능을 직접 구현하지는 않는다. 하위 도메인을 어떻게 구성할지 여부는 상황에 따라 달라진다. 도메인마다 고정된 하위 도메인이 존재하는 것은 아니다. 1.2 도메인 전문가와 개발자 간 지식 공유 요구사항의 중요성 개발자는 요구사항을 분석하고 설계하여 코드를 작성하고 테스트하고 배포한다. 요구사항을 처음부터 제대로 설계하지 않으면 코드를 수정해야한다. 잘못 개발한 코드를 수정하는 것은 많은 비용이 소모된다. 요구사항을 올바르게 이해하고 설계하는 방법 개발..
1. 개요 비트코인 자동거래 시스템을 만들기 위해 AI 모델을 학습시켰다. 이렇게 모델을 학습 시키고 나니 해당 정보를 사용자들에게 제공하는 것이 어떨까? 라는 생각이 들었다. 해당 모델의 값을 매일 업데이트하여 USER에게 제공해주는 서버를 개발하다면 스스로도 공부가 될 것 같았다. 그래서 팀을 모아 내 인생 첫 사이드 프로젝트인 FLOWBIT를 개발하기 시작하였다! 2. 본문 - 웹 서버 구현 비트코인 가격 예측 모델을 학습한 후 이를 배포할 서버가 필요했다. 그리고 Python 기반의 서버 프레임워크를 원했다. 마침 4학년 1학기 때 배운 Flask를 활용해보고 싶기도 하고 예측 가격만을 도츨하는 가벼운 기능이었기에 Flask를 최종적으로 선택하였다. USER 서버 같은 경우 Spring boot로..
1. 개요 매일 지겹도록 비트코인 거래소에서 오늘의 가격을 확인하고 매수와 매도를 반복했다 단순하게 이 작업을 자동화할 수 있을 것 같다는 생각에 2022년 초에 간단한 트레이딩알고리즘으로 비트코인 자동 거래 시스템을 개발하였다. 그 후 2023년 해당 시스템을 조금 더 강화시키고 싶어 볼린저밴드 알고리즘을 사용한 트레이딩 시스템을 개발하였다. 수익률은 약 17%로, '수익'이 발생되었다. 그렇게 1학기 캡스톤 디자인 평가가 끝나고 방학이 되었다. 끊임없이 AI와 관련된 기사를 반 강제적으로 봐서 그런지 비트코인 예측에 관심이 가기 시작했다. 여러 논문들을 찾아 보고 도전해볼만한 분야라는 생각이 들어 예측 모델을 디자인해보았다. 학습결과가 괜찮게 나왔다. 백엔드 개발자를 꿈꾸던 나는 자연스럽게 이 모델을..
- Total
- Today
- Yesterday
- 문자열
- Programmers
- java
- Spring Boot
- 안드로이드 프로그래밍
- 알고리즘
- c++
- spring
- Python
- 육군
- C언어
- 코테
- BaekJoon
- 기록지
- 자료구조
- CJ 올리브네트웍스
- 백준 알고리즘
- XML
- 구현
- CJ Olivenetworks
- 코딩
- 백준
- 백준알고리즘
- CJ
- 후기
- 개발자
- 코딩테스트
- 안드로이드 스튜디오
- 프로그래머스
- 비트코인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |