-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
## 효과적 면접을 위한 4단계 접근법 | ||
|
||
### 1단계 문제 이해 및 설계 범위 확정 | ||
|
||
- 중요한 것 | ||
1. 올바른 질문을 하는 것 | ||
2. 적절한 가정을 하는 것 | ||
3. 시스템 구축에 필요한 정보를 모으는 것 | ||
|
||
⇒ 면접관에게 질문을 주고 받으며, 요구사항을 구체화해라 | ||
|
||
|
||
### 2단계 개략적인 설계안 제시 및 동의 구하기 | ||
|
||
- 개략적인 설계안을 제시하고 면접관과 협력하며 진행한다. | ||
- 면접관을 마치 팀원처럼 대해서 설계 과정을 이어나가라 | ||
- 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램을 그려라 | ||
- 클라이언트, api, 웹 서버, 데이터 저장소, 캐시, CDN, 메시지 큐 등 | ||
- 시스템 규모에 관계된 제약 사항들을 만족하는지 개략적으로 계산하기 | ||
- (가능하다면) 시스템의 구체적 사용 사례도 살펴보기 → 에지 케이스 발견 | ||
|
||
### 3단계 상세 설계 | ||
|
||
- 이전 단계에서 달성한 것 | ||
- 시스템에서 전반적으로 달성해야 할 목표와 기능 범위 확인 | ||
- 전체 설계의 개략적 청사진 마련 | ||
- 청사진에 대한 면접관의 의견 | ||
- 상세 설계에서 집중해야 할 영역 | ||
- 설계 대상 컴포넌트 사이의 우선순위 정하기 | ||
- 시간 관리도 중요함 → 불필요한 세부 사항에 시간을 쓰지 말라 | ||
|
||
### 4단계 마무리 | ||
|
||
- 개선 사항은 언제든 있을 수 있기 때문에, 절대 설계가 완벽하다고 하지 않는다. | ||
- 설계 요약하기 | ||
- 오류 발생 시 일어나는 일 따져보기 | ||
- 운영 이슈 논의하기 - 모니터링, 로그, 배포 | ||
- 미래의 확장 요구 미리 생각해보기 | ||
- 시간이 남으면 - 세부적인 개선사항 확인하기 | ||
|
||
### 정리 | ||
|
||
- 질문하기 - 스스로를 믿지 말기 | ||
- 문제의 요구사항 이해하기 | ||
- 정답 및 최선의 답안 같은 것은 없음 | ||
- 면접관과 소통해서 사고 흐름을 이해할 수 있도록 하라 | ||
- 여러 해법을 함께 제시하기 | ||
- 개략적 설계에 면접관이 동의하면, 각 컴포넌트의 세부사항 설명하기 - 가장 중요한 컴포넌트부터 진행하기 | ||
- 면접관의 아이디어 이끌어내기 | ||
- 포기하지 말기 | ||
- 전형적인 면접 문제들에 대비하기 | ||
- 진행 중에 막히면, 주저하지 말고 질문하기 | ||
- 요구 사항 및 가정들을 분명히 하고 설계하기 | ||
- 처음부터 특정 컴포넌트의 세부 사항을 너무 깊게 파지 말기 | ||
- 설계얀을 내놓는 순간 면접이 끝나는 것이 아니라, 지속하기 | ||
|
||
```java | ||
지금은 아키텍처에 대해서 이야기 하지만, 어떠한 질문이나 요구사항을 들었을 때, 면접관에게 질문을 날리며 이해하는 것이 좋다고 느껴진다. | ||
``` |