Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions docs/misson/day2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# 미션 - Day2

<!-- TOC -->
* [미션 - Day2](#미션---day2)
* [추상](#추상)
* [개념](#개념)
* [추상화의 가장 대표적인 행위](#추상화의-가장-대표적인-행위)
* [적절한 추상화](#적절한-추상화)
* [추상으로 부터 구체를 유추하지 어려운 케이스](#추상으로-부터-구체를-유추하지-어려운-케이스)
* [[미션] 추상과 구체 예시 생각해보기](#미션-추상과-구체-예시-생각해보기-)
* [예시 1️⃣](#예시-1)
* [예시 2️⃣](#예시-2)
<!-- TOC -->

## 추상

### 개념

중요한 정보는 **가려내어** 남기고, 덜 중요한 정보는 생략하여 **버린다**

### 추상화의 가장 대표적인 행위

**이름을 짓는다!!**
가장 단순하면서도, 아주 중요한, 고도의 추상적 사고 행위

### 적절한 추상화

> 읽기 좋은 코드는 추상화를 잘한 코드라고 생각하면 된다.

해당 도메인의 문맥 안에서, 정말 중요한 핵심 개념만 남겨서 표현하는 것

### 추상으로 부터 구체를 유추하지 어려운 케이스

1. 추상화 과정에서 중요한 정보를 부각시키지 못했다.
+ 상대적으로 덜 중요한 정보를 남기고 중요한 정보는 제거했다.
2. 해석자가 동일하게 공유하는 문맥이 없다.
+ 중요한 정보의 기준이 다를 수 있다.
+ 도메인 영역 별 추사항화 기준이 다를 수 있다.

## [미션] 추상과 구체 예시 생각해보기

### 예시 1️⃣

> 저수준의 구체를 추상화하는 과정

+ 추상 : 친구랑 생일파티를 했어.
+ 구체
+ 모일 시간을 정이 두터운 사람들과 정한다.
+ 정한 시간에 맞추어 장소를 예약한다.
+ 예약한 장소를 정이 두터운 사람들에게 문자를 통해 알려준다.
+ 모일 시간과 예약한 장소에서 정이 두터운 사람들과 만남을 가진다.
+ 만남한 장소에서, 입으로 씹는 행위와 입으로 소리를 내는 행위를 하며 시간을 보낸다.
+ 케이크와 선물을 통해 정이 두터운 사람들에게 축하를 받는다.

### 예시 2️⃣

> 저수준은 아닌 중?수준의 언어로 구성된 구체를 추상화 하는 과정

+ 추상 : 백엔드 기능을 개발했어.
+ 구체
+ 기능에 대한 요구사항을 파악한다.
+ 요구사항을 확인하고 마일스톤을 작성한다.
+ 요구사항에 맞는 시나리오 설계 문서를 작성한다. (UseCase, 시퀀스 다이어 그램)
+ ERD를 설계 및 작성한다.
+ API 명세 및 Mock API를 구현한다.
+ TDD를 통해 단위 테스트 및 주요 비지니스 로직을 개발한다.
+ 통합 테스트 코드를 작성한다.
+ PR을 올리고, 코드리뷰를 받으며 리팩토링을 진행한다.

[출처]
+ 인프런 워밍업 클럽 : https://www.inflearn.com/course/offline/warmup-club-3-be-code
+ 강의 : https://www.inflearn.com/course/readable-code-%EC%9D%BD%EA%B8%B0%EC%A2%8B%EC%9D%80%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1%EC%82%AC%EA%B3%A0%EB%B2%95/dashboard