일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 도커
- 프리티어
- UNICON
- 42서울
- Developer
- 인프라
- 위키북스
- 자바개발자
- CICD
- AWS
- RDS
- 생활코딩
- 인디게임
- 백엔드개발자
- 프로그래밍
- 배포
- 오블완
- 게임개발동아리
- 라피신
- UNICON2023
- 티스토리챌린지
- 스프링
- 개발공부
- 온라인테스트
- UNIDEV
- 백엔드
- 전국대학생게임개발동아리연합회
- 스프링부트
- EC2
- 체크인미팅
- Today
- Total
목록전체 글 (131)
Hyun's Wonderwall
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지"3주차 과제: Chapter 9. 도메인 모델과 바운디드 컨텍스트Chapter 9. 도메인 모델과 바운디드 컨텍스트Keywords: 바운디드 컨텍스트, 바운디드 컨텍스트 간 통합과 관계9.1 도메인 모델과 경계한 개의 모델로 모든 하위 도메인을 표현하려는 시도는 불가능하다.- 하위 도메인마다 같은 용어라도 의미가 다르고, 같은 대상이라도 지칭하는 용어가 다를 수 있다. 올바른 도메인 모델을 개발하려면 하위 도메인마다 모델을 만들어야 한다.- 각 모델은 명시적으로 구분되는 경계를 가져서 섞이지 않도록 해야 한다. 여러 하위 도메인의 모델이 섞이면 모델의..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 3주차 과제: Chapter 7. 도메인 서비스, Chapter 8. 애그리거트 트랜잭션 관리 Chapter 8. 애그리거트 트랜잭션 관리 Keywords: 애그리거트 트랜잭션, 애그리거트 잠금 기법 8.1 애그리거트와 트랜잭션 애그리거트의 일관성이 깨지는 문제가 발생하지 않도록 하려면 다음 두 가지 중 하나를 해야 한다. 운영자가 배송지 정보를 조회하고 상태를 변경하는 동안 고객이 애그리거트를 수정하지 못하게 막는다 운영자가 배송지 정보를 조회한 이후에 고객이 정보를 변경하면, 운영자가 애그리거트를 다시 조회한 뒤 수정하도록 한다, 이 두 가지는..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 3주차 과제: Chapter 7. 도메인 서비스, Chapter 8. 애그리거트 트랜잭션 관리 Chapter 7. 도메인 서비스 Keywords: 응용 서비스 구현, 표현 영역의 역할, 값 검증과 권한 검사 7.1 여러 애그리거트가 필요한 기능 결제 금액 계산 로직의 경우 고려할 사항이 많아 한 애그리거트에 넣기 애매하다. 애그리거트에서 자신의 책임 범위를 넘어서는 기능을 구현하게 하면 안 된다. 이를 해결하는 방법: 도메인 기능을 별도 서비스로 구현 7.2 도메인 서비스 도메인 서비스: 도메인 영역에 위치한 도메인 로직을 표현할 때 사용한다. -..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 3주차 과제: Chapter 5. 스프링 데이터 JPA를 이용한 조회 기능, Chapter 6. 응용 서비스와 표현 영역 Chapter 6. 응용 서비스와 표현 영역 Keywords: 응용 서비스 구현, 표현 영역의 역할, 값 검증과 권한 검사 6.1 표현 영역과 응용 영역 그동안 도메인 영역 부분을 배웠는데, 도메인이 제 기능을 하려면 사용자와 도메인을 연결해 주는 매개체가 필요하다. => 응용 영역과 표현 영역의 역할. [ 사용자 -> 응용 영역 -> 표현 영역 -> 도메인 영역 ] 표현 영역: 사용자 요청 해석. HTTP 요청 받으면 URL,..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 3주차 과제: Chapter 5. 스프링 데이터 JPA를 이용한 조회 기능, Chapter 6. 응용 서비스와 표현 영역 Chapter 5. 스프링 데이터 JPA를 이용한 조회 기능 Keywords: 스펙, JPA 스펙 구현, 정렬과 페이징, 동적 인스턴스와 @Subselect 5.1 시작에 앞서 CQRS: 명령 모델과 조회 모델을 분리하는 패턴. - 명령(Command) 모델: 상태를 변경하는 기능을 구현할 때 사용. // ex. 회원가입, 암호 변경, 주문 취소, 배송지 변경 ㄴ 도메인 모델(엔티티, 애그리거트, 리포지터리 등)은 명령 모델로 ..
[Chapter 02] 사이킷런으로 시작하는 머신러닝 1. 사이킷런 소개와 특징 사이킷런(scikit-learn): 파이썬 머신러닝 라이브러리. import sklearn 2. 붓꽃 품종 예측하기 붓꽃의 특징을 기반으로 품종을 분류하려고 한다. 분류는 지도학습 방법 중 하나. - 붓꽃 데이터 피처: Sepal length, Sepal widtn, Petal length, Petal width - 붓꽃 데이터 품종(레이블): Setosa, Vesicolor, Virgiinica (3종류) *피처: 특징. 학습 모델에서 제공하는 입력 변수. 단순 선형 회귀에서의 X변수. *레이블(label) 데이터: 분류 결정값. 기계학습으로 예측하는 실제 항목. y=f(X)에서 y. *지도학습: 학습을 위한 다양한 피처와..
[Chapter 01] 파이썬 기반의 머신러닝과 생태계 이해 1. 머신러닝의 개념 머신러닝(Machine Learning): 데이터를 기반으로 숨겨진 패턴을 학습하고 결과를 예측하는 알고리즘 기법. 머신러닝 알고리즘은 데이터를 기반으로 통계적인 신뢰도를 강화하고 예측 오류를 최소화하기 위한 다양한 수학적 기법을 적용하여 데이터 내의 패턴을 스스로 인지하고 신뢰도 있는 예측 결과를 도출해 낸다. 데이터 분석 영역은 재빠르게 머신러닝 기반의 '예측 분석(Predictive Analysis)'으로 재편되고 있다. 머신러닝의 분류 지도학습(Supervised Learning): 크게 회귀(regression)와 분류(classification) 두 유형으로 나뉘어짐. (+ 추천 시스템, 시각/음성 감지/인지, ..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 2주차 과제: Chapter 3. 애그리거트, Chapter 4. 리포지토리와 모델 구현 Chapter 4. 리포지토리와 모델 구현 Keywords: 키워드 4.1 JPA를 이용한 리포지터리 구현 자바의 ORM 표준인 JPA를 이용해서 리포지터리와 애그리거트를 구현하는 방법에 대해 살펴보자. JPA: 도메인 모델과 리포지터리를 구현할 때 사용 *ORM(Object Relational Mapping): 객체 관계 매핑 4.1.1 모듈 위치 인터페이스는 애그리거트와 같이 도메인 영역에 속하고, 리포지터리를 구현한 클래스는 인프사라스트럭처 영역에 속한다..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디 스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지" 2주차 과제: Chapter 3. 애그리거트, Chapter 4. 리포지토리와 모델 구현 Chapter 3. 애그리거트 Keywords: 애그리거트, 애그리거트 루트와 역할, 애그리거트와 리포지터리, ID를 이용한 애그리거트 참조 3.1 애그리거트 도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고, 상위 수준에서 모델 간의 관계를 파악하기 어렵다. => 해결책: 애그리거트. 애그리거트: 관련된 객체를 하나의 군으로 묶는 것. 복잡한 도메인을 이해하고 관리하기 쉬운 단위로 만듦으로써 상위 수준에서 도메인 모델 간의 관계를 쉽게..
Refactoring 1. 함수 추출 2. 함수 인라인 3. 변수 추출 4. 변수 인라인 5. 임시변수 분리 - final을 붙이는 등 코드의 각 구성 요소가 오직 한 가지에 대해서만 책임을 지도록 한다. - 가독성 높아짐 6. 임시변수를 매서드 호출로 전환 - 임시변수에 할당된 수식을 메서드로 만들고, 임시변수를 참조하는 곳을 찾아 모두 메서드 호출로 바꾸는 작업 - 주의: 임시변수에 값이 한 번만 대입되는지 확인해야 함(여러 번 대입된다면 임시변수를 분리해야) Clean Code - 리팩토링이 유지보수 단계에서 코드를 개선한다면, 클린코드는 설계 단계에서부터 가독성을 높이기 위한 수단 - 클린 코드: 코드를 설계시에 좋게 쓰는 것 1. 작게 만들어라 (10줄 내로 줄이세요) 2. 한 가지만 해라 (함..