본문 바로가기
반응형

전체 글141

[MYSQL] TRUNCATE() 사용 이유 TRUNCATE() 사용방법은 다음과 같다. TRUNCATE(값, 버림할 자릿수) 자릿수를 버림해야할 경우 사용한다. TRUNCATE(값, 0): 소수점 제거 해줌 TRUNCATE(100.123, 0) -> 100 TRUNCATE(값, 1): 소수점 1자리수 미만은 버림 TRUNCATE(100.123, 1) -> 100.1 TRUNCATE(값, 2): 소수점 2자리수 미만은 버림 TRUNCATE(100.123, 2) -> 100.12 2024. 3. 25.
DDD(Domain Driven Design) 애그리거트 Chapter 3. 애그리거트(Aggregate) 3.1 애그리거트 애그리거트는 복잡한 도메인을 이해하고 관리하기 쉬운 단위로 만들어 상위 수준에서 모델을 조망하기 위해 사용한다. 애그리거트는 엔티티 안에 밸류를 넣음으로 관련 객체를 묶는 방식으로 구현한다. 관련 객체를 하나로 묶기 때문에 루트 엔터티를 만들 때 관련 밸류 오브젝트도 함께 생성해야한다. 애그리거트는 보통 한 개의 엔터티 객체만 갖는다. 두 개 이상의 엔터티는 드물다. 3.2 애그리거트 루트 애그리거트에 속한 모든 객체가 일관된 상태를 유지하려면 애그리거트 전체를 관리할 주체가 필요하며, 이 주체는 루트 엔터티이다. 애그리거트 루트라고도 한다. 3.2.1 도메인 규칙과 일관성 루트의 핵심 역할은 도메인 규칙에 따라서 애그리거트의 일관성이 .. 2024. 3. 20.
DDD(Domain Driven Design) 엔티티와 밸류 DDD 도메인 주도 개발을 하는 이유는 무엇일까 DDD로 개발하면 명확한 개념으로 잘게 쪼개어 개발함으로 - 요구사항에 적합한 개발 가능 - 다른 개발자가 코드를 볼 때도 이해가 쉬움 - 리팩토링의 수고를 덜 수 있음 - 유지보수 하기 좋은 코드가 됨 Chapter 1. 도메인 모델 시작하기 1.6 엔티티와 밸류 클래스 다이어그램은 엔티티와 밸류로 구분할 수 있다. 엔티티와 밸류를 구분해야 하는 이유는 도메인의 올바른 설계를 위해서이다. 1.6.1 엔티티 엔티티의 특징은 고유한 식별자를 가진다는 것이다. 이 고유한 식별자로 엔티티를 구분할 수 있다. 1.6.2 엔티티의 식별자 생성 엔티티의 식별자 생성 방법은 도메인 상황에 따라 달라진다. 식별자는 보통 다음 4가지로 생성한다. - 1) 특정 규칙에 따라.. 2024. 3. 19.
[React] 기초 JSX 사용법 react 코딩시 태그에 class를 주고 싶으면 function App() { return ( 개발 Blog ); } react 쓰는 이유: 데이터 바인딩이 쉽기 때문 데이터 바인딩: 서버에서 가져온 데이터를 HTML에 넣는 작업 데이터 바인딩 사용법: { 변수명, 함수 등 } function App() { let posts = '강남 고기 맛집'; return ( { posts } ); } style 사용법 style= {object 자료형으로 만든 스타일} 개발 Blog 참고: 코딩애플 유튜브 https://www.youtube.com/watch?v=FqnAFX9lQPQ&list=PLfLgtT94nNq1e6tr4sm2eH6ZZC2jcqGOy&index=3 2024. 3. 12.
[객체지향과 디자인패턴] 상속의 단점 3가지, 보완점 상속의 단점 3가지는 다음과 같다. 첫번째 단점: 상위 클래스 변경의 어려움이 있다. 상위 클래스가 변경되면 하위 클래스도 영향을 받기에 하위 클래스도 수정해야하는 단점이 있다. 두번째 단점: 클래스의 불필요한 증가를 유발할 수 있다. 해당 기능이 필요해서 상속을 받아 클래스를 만들었다. 그런데 이후 또 다른 기능이 필요해서 상속 받은 클래스에서 다시 상속을 받는 클래스를 만들었다. 이는 계층 구조가 계속 깊어지며 유지보수가 어렵고 재사용의 장점인 상속의 장점도 없어지게 된다. 세번째 단점: 상속을 잘못 사용할 수 있다. 상속은 IS-A 관계일 때 사용하는 것이다. 같은 책임을 갖는 관계가 되야한다. 그런데 비슷한 책임을 갖고 있다고 사용했다가 IS-A 관계가 아니여서 원하지 않는 방식으로 동작할 수 있.. 2024. 2. 29.
[객체지향과 디자인 패턴] 캡슐화를 하는 이유 캡슐화를 찾아보면 다음과 같이 말한다. 캡슐화란 내부 동작을 숨김으로 데이터 은닉화를 하는 것이다. 객체의 데이터(속성)와 그 데이터를 조작하는 메서드(함수)를 하나로 묶는 것이다. 캡슐화의 주요 목적은 객체 내부의 구현 세부 사항을 숨기고, 사용자에게는 해당 객체를 사용하는 데 필요한 인터페이스만을 제공하는 것이다. 그래서 왜 하는거지?? 캡슐화를 하는 이유는 구현 변경을 쉽게 하기 위함이다. 구현 변경을 쉽게 하기 위해 메서드를 만들어서 해당 메서드 안에서 작업을 처리하도록 한다. 따라서 요구사항 변화가 생겼을 때, 해당 메서드만 수정하면 된다. 캡슐화된 기능을 사용하는 코드에는 영향이 없게 되는 것이다. 참고: 2024. 2. 29.
가장 최근 Git 커밋 메시지 변경 가장 최근 커밋 메시지 변경 방법은 터미널에서 다음 명령어를 치고 변경 가능하다. git commit --amend 2024. 2. 10.
[디자인 패턴] 전략(Strategy) 패턴 전략패턴은 (기능을 가지고 있는)컨텍스트에서 알고리즘(전략)을 별도로 분리하는 설계 방법이다. @Service public class TicketSeller { @Transactional public CreateReservationResponse createReservation(CreateReservationRequest dto) { //예약 가능한 좌석인지 확인 performanceSeatInfo.isReserve(ReserveStatus.ENABLE); } } 전략패턴에 집중하기 위해 어노테이션, 기타 코드는 생략하였다. TicketSeller는 공연에 대한 비즈니스 로직을 처리하는 서비스이다. @Entity public class PerformanceSeatInfo extends BaseEntity.. 2024. 2. 8.

반응형
반응형