일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 롬복
- springboot
- Vue.js
- 코드업
- Codeup
- thymeleaf
- H2 설치
- go
- GitHub
- 클린 코드
- Spring
- Postman
- 객사오
- Git
- Spring Boot
- 스프링
- spring security
- 파이썬
- Python
- mariadb
- MySQL
- 티스토리챌린지
- 알고리즘
- 기초100제
- 클린코드
- golang
- 오블완
- Gradle
- java
- JPA
- Today
- Total
목록티스토리챌린지 (8)
nyximos.log
객체지향 설계에 존재하는 세가지 상호 연관된 관점개념 관점도메인에 존재하는 개념, 개념간의 관계사용자가 도메인을 바라보는 관점 반영실제 도메인의 규칙과 제약을 최대한 유사하게 반영명세 관점소프트웨어 안의 객체들의 책임, 인터페이스객체가 협력을 위해 무엇을 할 수 있는지구현 관점객체들이 책임을 수행하는데 필요한 동작하는 코드 작성객체의 책임을 어떻게 수행할 것인가인터페이스를 구현하는데 필요한 속성과 메서드를 클래스에 추가설계하고 구현하기커피를 주문하기 위한 협력찾기협력을 설계할 때는 메시지가 객체를 선택하게 해야한다.인터페이스 정리하기객체가 수신한 메시지가 객체의 인터페이스를 결정한다.구현하기코드와 세가지 관점코드는 세가지 관점을 모두 제공해야 한다개념 관점소프트웨어 클래스가 도메인 개념의 특성을 최대한 ..
지도 : 구조적이고 문제 지향적인 접근법, 범용적기능이 아닌 구조를 기반으로 모델을 구축하는 것이 범용적이고 이해하기 쉽고 유연하다.안정적인 구조를 기반으로 역할, 책임, 협력을 구성하라훌륭한 설계자는 예측 불가능한 요구사항 변경에 유연하게 대처할 수 있는 안정적인 구조를 제공한다.기능과 구조기능 : 사용자의 목표를 만족시키기위해 책임을 수행하는 시스템의 행위구조 : 사용자나 이해 관계자들이 도메인에 관해 생각하는 개념과 개념간의 관계로 표현구조도메인 모델도메인 : 사용자가 프로그램을 사용하는 대상 분야모델 : 대상을 추상화하고 단순화한 것도메인 모델이해관계자들이 바라보는, 소트프웨어에 대한 멘탈모델사용자모델/디자인모델/시스템이미지를 포괄&추상화한 소프트웨어모델설계자는 디자인 모델을 기반으로 만든 시스템..
명확한 책임과 역할을 지닌 참가자들이 협력에 참여해야 한다.자율적인 책임객체가 행동을 하는 이유 : 다른 객체로부터 요청을 수신해서책임 : 요청을 처리하기 위해 객체가 수행하는 행동자율적인 객체 : 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체자신의 의지에 따라 증언할 수 있는 자유객체가 자율적이기 위해서 객체에 할당되는 수준도 자율적이어야한다.너무 추상적인 책임협력에 참여하는 의도를 명확하게 설명할 수 있는 수준안에서 추상적이어야한다.어떻게가 아니라 무엇을자율적인 책임의 특징은 무엇을 해야하는가를 설명한다는 것이다.책임을 자극하는 메시지책임은 어떤 행동을 수행한다는 의미가 포함돼 있다.메시지는 객체로 하여금 자신의 책임, 행동을 수행하게 만드는 유일한 방법이다.메시지와 메서드메시지객체가 ..
협력이 객체의 행동 방식을 결정한다.협력어떤 객체가 도움을 요청하면 시작책임어떤 객체가 어떤 요청에 대해 대답할수 있거나 적절한 행동을 할 의무가 있는 경우 해당 객체는 책임을 가진다.책임을 객체에 할당하는 것은 중요하다.책임의분류하는것아는것객체의 공용 인터페이스를 구성한다.책임과 메시지한 객체가 다른 객체에게 요청을 전송 → 수신한 객체의 책임이 수행되어야 한다.메시지 전송 - 객체가 다른 객체에게 주어진 책임을 수행하게 한다.역할책임의 집합이 의미하는 것협력의 추상화대체 가능성객체의 모양을 결정하는 협력협력을 고려하고 클래스를 개발해야한다.객체들이 주고받을 요청과 응답의 흐름을 결정해야한다.→ 행동 결정 → 필요한 데이터 결정 → 클래스 구현 방법 결정객체지향 설계 기법역할, 책임, 협력의 관점에서 ..
객체지향과 추상화분류는 추상화를 위한 도구다객체를 어떤 개념으로 분류할지가 객체지향의 품질을 결정한다.타입의 계층일반화/특수화슈퍼타입/서브타입정적모델타입의 목적객체의 복잡성때문에 !(시간에따라 동적으로 변함 → 타입은 시간과 무관한 정적인 모습으로 다룰 수 있게해줌)객체의 동적인 특성을 추상화 시켜줌동적모델과 정적모델클래스
객체지향. 인지 능력객체인간히 분명하게 인지하고 구별할 수 있는 물리 & 개념적 경계를 지닌것식별가능한 개체 / 사물객체지향현실 세계 기반으로 새로운 세계 창조상태 : 특정 시점에 객체가 가지고 있는 정보의 집합객체의 프로퍼티 : 단순한 값 / 참조 링크행동외부에 노출되는 객체 상태 변경side effect가 발생한다.객체 자신의 상태 변경행동 내에서 협력하는 다른 객체에 대한 메시지 전송캡슐화 : 상태를 내부에 감춘다. → 객체 자율성 🔺식별자 : 객체를 구별하는 특정한 프로퍼티동등성 equality : 두값의 상태(불변상태)가 같은지동일성 identical : 식별자를 기반으로 두 객체가 같은지객체의 행동 - 객체의 정합성 결정객체지향 설계 → 행동 > 상태책임주도설계협력안에서 객체의 행동을 결정→..
객체지향새로운 세계 창조실세계 모방 🙅🏻♀️자율적인 객체들의 협력요청 &응답 → 협력하는 과정 → 역할(책임 포함) 부여객체에 적절한 책임 부여객체는 충분히 협력적/자율적 이어야한다.객체 : 상태 + 행동자율적인 객체 → 유지보수 👍🏻 재사용 👍🏻메시지 : 협력을 가능하게 함메서드 : 메시지를 처리하는 방법메시지와 메서드 분리 → 객체의 자율성 🔺클래스 관점 → 메시지를 주고받는 객체의 관점어떤 메시지를 주고 받으며 협력하는가
@ValidJava Bean Validation (JSR-380) 제공빈 검증기를 이용해 객체의 제약 조건을 검증한다.검증 그룹을 지원 ❌MethodArgumentNotValidException 발생@NotNull, @Size, @Email, @Min, @Max, @Pattern(regexp), @NotBlank 등의 유효성 검증 어노테이션을 사용한다.객체 필드에 위 어노테이션을 쓰고 컨트롤러 메소드에 @Valid를 붙여주자 @Valid 동작 원리Java Bean Validation API: @Valid는 Java Bean Validation API의 일부분입니다. 이 API는 표준화된 방법으로 객체의 유효성을 검증하는 메커니즘을 제공합니다.유효성 검사 트리거: @Valid 어노테이션이 적용된 필드나 메..