Skip to content

Latest commit

Β 

History

History
191 lines (143 loc) Β· 13.1 KB

File metadata and controls

191 lines (143 loc) Β· 13.1 KB

prepare_frontend_interview

μ•„ν‚€ν…μ²˜

"μ•„ν‚€ν…μ²˜μ— λŒ€ν•΄ 고민이 μžˆμœΌμ‹ κ°€μš”?"λΌλŠ” μ§ˆλ¬Έμ— λŒ€ν•œ λ‹΅λ³€ μ „λž΅ κ°€μ΄λ“œ

λ‹΅λ³€ μ „λž΅: "μ•„ν‚€ν…μ²˜λΌκ³  ν•˜λ©΄ λ²”μœ„κ°€ 넓은데, μ €λŠ” 크게 4κ°€μ§€ 레벨둜 λ‚˜λˆ μ„œ κ³ λ―Όν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€." 라고 μš΄μ„ λ—€ λ’€, λ©΄μ ‘κ΄€μ˜ λ°˜μ‘μ— 따라 깊이λ₯Ό μ‘°μ ˆν•©λ‹ˆλ‹€.

μ•„ν‚€ν…μ²˜ 뢀뢄은 5λ…„μ°¨ λ―Έλ“œκΈ‰ ν”„λ‘ νŠΈμ—”λ“œ 개발자의 λ©΄μ ‘ 상황에 λ°›μ•˜λ˜ μ§ˆλ¬Έμ— λŒ€ν•œ 개인적인 λ‹΅λ³€μž…λ‹ˆλ‹€.

λͺ©μ°¨


μ‹œμŠ€ν…œ/인프라 μ•„ν‚€ν…μ²˜

πŸ“Œ κ΄€λ ¨ 주제: ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜, μ½”λ“œ 섀계 레벨, CS - λ„€νŠΈμ›Œν¬

λ‹΅λ³€ μ˜ˆμ‹œ

ν˜„μž¬ ν”„λ‘œμ νŠΈμ—μ„œλŠ” λͺ¨λ†€λ¦¬μ‹, λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€, BFFλ₯Ό λͺ¨λ‘ κ²½ν—˜ν–ˆμŠ΅λ‹ˆλ‹€. μ΄ˆκΈ°μ—λŠ” λͺ¨λ†€λ¦¬μ‹ ꡬ쑰둜 λΉ λ₯΄κ²Œ κ°œλ°œν–ˆμ§€λ§Œ, μ„œλΉ„μŠ€κ°€ μ„±μž₯ν•˜λ©΄μ„œ λ„λ©”μΈλ³„λ‘œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ λΆ„λ¦¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ·Έ κ³Όμ •μ—μ„œ ν”„λ‘ νŠΈμ—”λ“œκ°€ μ—¬λŸ¬ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ™€ 직접 ν†΅μ‹ ν•˜λ©΄μ„œ 인증/κΆŒν•œ μ²˜λ¦¬κ°€ λΆ„μ‚°λ˜λŠ” λ¬Έμ œκ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€. 각 μ„œλΉ„μŠ€λ§ˆλ‹€ 토큰 검증 둜직이 μ€‘λ³΅λ˜κ³ , ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ μ—¬λŸ¬ μ„œλΉ„μŠ€μ˜ 인증 μƒνƒœλ₯Ό 관리해야 ν–ˆμ£ .

이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ BFF λ ˆμ΄μ–΄λ₯Ό λ„μž…ν•΄μ„œ 인증/κΆŒν•œ 처리λ₯Ό ν•œ 곳으둜 ν†΅ν•©ν–ˆμŠ΅λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œλŠ” BFF만 바라보고, BFFκ°€ 각 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ— 인증된 μš”μ²­μ„ μ „λ‹¬ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

꼬리 질문 λŒ€λΉ„

μ˜ˆμƒ 질문 λ‹΅λ³€ 포인트
BFF λ„μž… ν›„ 단점은? BFFκ°€ 단일 μž₯애점(SPOF)이 될 수 있고, BFF 자체의 배포/관리 λΆ€λ‹΄ 증가. 이λ₯Ό μœ„ν•΄ health check와 graceful shutdown 적용
λͺ¨λ†€λ¦¬μ‹μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ „ν™˜ 기쀀은? νŒ€ 규λͺ¨ ν™•λŒ€, 독립 배포 ν•„μš”μ„±, 도메인 경계가 λͺ…ν™•ν•΄μ‘Œμ„ λ•Œ
BFFμ—μ„œ 인증 외에 λ‹€λ₯Έ 역할도 ν•˜λ‚˜? 데이터 집계(aggregation)도 일뢀 μˆ˜ν–‰ν•˜μ§€λ§Œ, κ³Όλ„ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ λ„£μ§€ μ•ŠμœΌλ € ν•œλ‹€

ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜

πŸ“Œ κ΄€λ ¨ 주제: μ‹œμŠ€ν…œ/인프라 μ•„ν‚€ν…μ²˜, μ»΄ν¬λ„ŒνŠΈ 섀계 μ•„ν‚€ν…μ²˜, μ½”λ“œ 섀계 레벨, React - μƒνƒœ 관리

λ‹΅λ³€ μ˜ˆμ‹œ

ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ ˆλ²¨μ—μ„œλŠ” μƒνƒœμ˜ 성격에 따라 도ꡬλ₯Ό λΆ„λ¦¬ν•˜λŠ” 것을 κ°€μž₯ μ€‘μš”ν•˜κ²Œ μƒκ°ν•©λ‹ˆλ‹€.

μƒνƒœλ₯Ό 크게 μ„Έ κ°€μ§€λ‘œ λ‚˜λˆ•λ‹ˆλ‹€:

  • μ„œλ²„ μƒνƒœ (비동기 데이터): React Query둜 κ΄€λ¦¬ν•©λ‹ˆλ‹€. 캐싱, 리페칭, λ‘œλ”©/μ—λŸ¬ μƒνƒœλ₯Ό μ„ μ–Έμ μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆμ–΄μ„œ, μ˜ˆμ „μ— Reduxμ—μ„œ isLoading, error, dataλ₯Ό 일일이 κ΄€λ¦¬ν•˜λ˜ λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈλ₯Ό 크게 μ€„μ˜€μŠ΅λ‹ˆλ‹€.
  • μ „μ—­ ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœ (인증 정보, ν…Œλ§ˆ λ“±): Zustandλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. Redux λŒ€λΉ„ λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈκ°€ 적고, ν•„μš”ν•œ 슬라이슀만 ꡬ독할 수 μžˆμ–΄ λ¦¬λ Œλ”λ§ μ΅œμ ν™”κ°€ μ‰½μŠ΅λ‹ˆλ‹€.
  • λ ˆκ±°μ‹œ/λ³΅μž‘ν•œ μƒνƒœ: κΈ°μ‘΄ μ½”λ“œλ² μ΄μŠ€μ— Redux Toolkit이 이미 μžˆλŠ” 경우 μœ μ§€ν•˜λ˜, μƒˆλ‘œμš΄ κΈ°λŠ₯μ—μ„œλŠ” μœ„ 쑰합을 μš°μ„  μ‚¬μš©ν•©λ‹ˆλ‹€.

폴더 κ΅¬μ‘°λŠ” ν˜Όν•©ν˜•μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. μ΅œμƒμœ„λŠ” feature 기반(/features/auth, /features/dashboard)으둜 λ‚˜λˆ„λ˜, feature λ‚΄λΆ€λŠ” layer 기반(components/, hooks/, api/, types/)으둜 κ΅¬μ„±ν•©λ‹ˆλ‹€. κ³΅ν†΅μœΌλ‘œ μ“°μ΄λŠ” 것듀은 /shared 디렉토리에 λ‘‘λ‹ˆλ‹€.

폴더 ꡬ쑰 μ˜ˆμ‹œ 보기
src/
β”œβ”€β”€ features/
β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ store/        # Zustand slice λ˜λŠ” Redux slice
β”‚   β”‚   └── types/
β”‚   β”œβ”€β”€ dashboard/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   └── ...
β”œβ”€β”€ shared/
β”‚   β”œβ”€β”€ components/       # 곡톡 UI (Button, Modal λ“±)
β”‚   β”œβ”€β”€ hooks/            # 곡톡 μ»€μŠ€ν…€ ν›…
β”‚   β”œβ”€β”€ utils/
β”‚   └── types/
β”œβ”€β”€ app/                  # λΌμš°νŒ…, ν”„λ‘œλ°”μ΄λ” μ„€μ •
└── styles/               # κΈ€λ‘œλ²Œ ν…Œλ§ˆ, MUI μ»€μŠ€ν„°λ§ˆμ΄μ§•

꼬리 질문 λŒ€λΉ„

μ˜ˆμƒ 질문 λ‹΅λ³€ 포인트
Reduxκ°€ 이미 μžˆλŠ”λ° μ™œ Zustand도 μ“°λ‚˜? 점진적 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜. ν•œ λ²ˆμ— κ°ˆμ•„μ—ŽκΈ°λ³΄λ‹€ μƒˆ κΈ°λŠ₯λΆ€ν„° μ μš©ν•˜κ³ , νŒ€μ› ν•™μŠ΅ 곑선도 κ³ λ €
React Query와 ReduxλŠ” μ–΄λ–»κ²Œ 곡쑴? μ„œλ²„ μƒνƒœλŠ” React Query, ν΄λΌμ΄μ–ΈνŠΈ μ „μš© μƒνƒœλ§Œ Redux/Zustand. 역할이 κ²ΉμΉ˜μ§€ μ•Šκ²Œ 경계λ₯Ό λͺ…ν™•νžˆ ν•œλ‹€
feature 기반 ꡬ쑰의 단점은? feature κ°„ 곡유 μ½”λ“œκ°€ μ• λ§€ν•  λ•Œ /shared둜 λΉΌμ•Ό ν•˜λŠ” νŒλ‹¨μ΄ ν•„μš”. λ„ˆλ¬΄ 이λ₯΄κ²Œ λΉΌλ©΄ premature abstraction

μ»΄ν¬λ„ŒνŠΈ 섀계 μ•„ν‚€ν…μ²˜

πŸ“Œ κ΄€λ ¨ 주제: ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜, μ½”λ“œ 섀계 레벨

λ‹΅λ³€ μ˜ˆμ‹œ

μ»΄ν¬λ„ŒνŠΈ μ„€κ³„μ—μ„œ κ°€μž₯ μ‹ κ²½ μ“°λŠ” 뢀뢄은 곡톡 μ»΄ν¬λ„ŒνŠΈμ˜ 일관성과 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 배치의 μœ μ—°μ„±μž…λ‹ˆλ‹€.

곡톡 μ»΄ν¬λ„ŒνŠΈλŠ” MUIλ₯Ό λž˜ν•‘ν•΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€. MUI의 Button, Modal, TextField 등을 κ·ΈλŒ€λ‘œ μ“°μ§€ μ•Šκ³ , ν”„λ‘œμ νŠΈμ˜ λ””μžμΈ μ‹œμŠ€ν…œμ— 맞게 λž˜ν•‘λœ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“­λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ λ””μžμΈ λ³€κ²½μ΄λ‚˜ 라이브러리 ꡐ체 μ‹œ λž˜ν•‘ λ ˆμ΄μ–΄λ§Œ μˆ˜μ •ν•˜λ©΄ 되고, μ‚¬μš©ν•˜λŠ” μͺ½μ€ 영ν–₯을 λ°›μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

MUI λž˜ν•‘ μ˜ˆμ‹œ μ½”λ“œ 보기
// shared/components/Button.tsx
const StyledButton = styled(MuiButton)({
  // ν”„λ‘œμ νŠΈ 곡톡 μŠ€νƒ€μΌ
})

export const Button = ({ ...props }: ButtonProps) => <StyledButton {...props} />

λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μœ„μΉ˜λŠ” μΌ€μ΄μŠ€λ§ˆλ‹€ λ‹€λ₯΄κ²Œ νŒλ‹¨ν•©λ‹ˆλ‹€. 기쀀은 ν•΄λ‹Ή 둜직이 μž¬μ‚¬μš©λ˜λŠ”κ°€μž…λ‹ˆλ‹€:

  • ν•œ μ»΄ν¬λ„ŒνŠΈμ—μ„œλ§Œ μ“°μ΄λŠ” 둜직: μ»΄ν¬λ„ŒνŠΈ 내뢀에 λ‘‘λ‹ˆλ‹€. λΆˆν•„μš”ν•œ 좔상화λ₯Ό ν”Όν•˜κΈ° μœ„ν•΄μ„œμž…λ‹ˆλ‹€.
  • μ—¬λŸ¬ μ»΄ν¬λ„ŒνŠΈμ—μ„œ κ³΅μœ λ˜λŠ” 둜직: μ»€μŠ€ν…€ ν›…μœΌλ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€.
  • UI와 λ¬΄κ΄€ν•œ 순수 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직: 별도 μœ ν‹Έ ν•¨μˆ˜λ‚˜ μ„œλΉ„μŠ€ λ ˆμ΄μ–΄λ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€.

μ²˜μŒλΆ€ν„° λΆ„λ¦¬ν•˜κΈ°λ³΄λ‹€, 쀑볡이 λ°œμƒν•˜λŠ” μ‹œμ μ— μΆ”μΆœν•˜λŠ” 것을 μ„ ν˜Έν•©λ‹ˆλ‹€. "두 번째 μ‚¬μš©μ²˜κ°€ 생길 λ•Œ μΆ”μƒν™”ν•œλ‹€"λŠ” 원칙을 λ”°λ¦…λ‹ˆλ‹€.

꼬리 질문 λŒ€λΉ„

μ˜ˆμƒ 질문 λ‹΅λ³€ 포인트
MUI λž˜ν•‘μ˜ 단점은? λž˜ν•‘ λ ˆμ΄μ–΄κ°€ λ‘κΊΌμ›Œμ§€λ©΄ MUI의 propsλ₯Ό λ‹€ μ „λ‹¬ν•˜κΈ° λ²ˆκ±°λ‘œμ›€. ν•„μš”ν•œ props만 μ—΄μ–΄λ‘λŠ” 것과 μ „λΆ€ μ—΄μ–΄λ‘λŠ” κ²ƒμ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„
Presentational/Container νŒ¨ν„΄μ€ μ‚¬μš©ν•˜λ‚˜? Hook의 λ“±μž₯ μ΄ν›„λ‘œ μ—„κ²©ν•˜κ²Œ λ‚˜λˆ„μ§„ μ•Šμ§€λ§Œ, "둜직 없이 λ Œλ”λ§λ§Œ ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ"와 "데이터λ₯Ό μ‘°ν•©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ"의 ꡬ뢄은 μ—¬μ „νžˆ μœ νš¨ν•˜λ‹€κ³  λ³Έλ‹€
"두 번째 μ‚¬μš©μ²˜" 원칙이 μ•ˆ λ§žλŠ” κ²½μš°λŠ”? λͺ…ν™•ν•˜κ²Œ 곡톡이 될 것이 μ˜ˆμƒλ˜λŠ” 경우(λ””μžμΈ μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈ λ“±)λŠ” μ²˜μŒλΆ€ν„° λΆ„λ¦¬ν•œλ‹€

μ½”λ“œ 섀계 레벨 (관심사 뢄리/μ˜μ‘΄μ„± λ°©ν–₯)

πŸ“Œ κ΄€λ ¨ 주제: μ‹œμŠ€ν…œ/인프라 μ•„ν‚€ν…μ²˜, ν”„λ‘ νŠΈμ—”λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜, μ»΄ν¬λ„ŒνŠΈ 섀계 μ•„ν‚€ν…μ²˜

λ‹΅λ³€ μ˜ˆμ‹œ

μ½”λ“œ μ„€κ³„μ—μ„œ κ°€μž₯ μ€‘μ‹œν•˜λŠ” 원칙은 μ˜μ‘΄μ„± λ°©ν–₯을 ν•œ λ°©ν–₯으둜 μœ μ§€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ 이λ₯Ό 풀어보면, μ•„λž˜μ™€ 같은 λ ˆμ΄μ–΄λ₯Ό μ˜μ‹ν•©λ‹ˆλ‹€:

[UI Layer] β†’ [Business Logic Layer] β†’ [Data Access Layer]
  μ»΄ν¬λ„ŒνŠΈ        μ»€μŠ€ν…€ ν›… / μ„œλΉ„μŠ€       API 호좜 / React Query
  • UI λ ˆμ΄μ–΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 λ ˆμ΄μ–΄μ— μ˜μ‘΄ν•˜μ§€λ§Œ, κ·Έ λ°˜λŒ€λŠ” μ•ˆ λ©λ‹ˆλ‹€. μ»€μŠ€ν…€ 훅이 νŠΉμ • μ»΄ν¬λ„ŒνŠΈμ˜ κ΅¬ν˜„μ„ μ•Œ ν•„μš”κ°€ μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • Data Access λ ˆμ΄μ–΄λŠ” API ν˜ΈμΆœμ„ μΆ”μƒν™”ν•©λ‹ˆλ‹€. μ»΄ν¬λ„ŒνŠΈκ°€ fetchλ‚˜ axiosλ₯Ό 직접 ν˜ΈμΆœν•˜μ§€ μ•Šκ³ , React Query의 쿼리 ν›…μ΄λ‚˜ 별도 API ν•¨μˆ˜λ₯Ό 톡해 μ ‘κ·Όν•©λ‹ˆλ‹€.

이 μ›μΉ™μ˜ μ‹€μ§ˆμ  μž₯점은 ν…ŒμŠ€νŠΈμ™€ ꡐ체가 μ‰¬μ›Œμ§„λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. API 응닡 ꡬ쑰가 λ°”λ€Œμ–΄λ„ Data Access λ ˆμ΄μ–΄λ§Œ μˆ˜μ •ν•˜λ©΄ 되고, UIλ₯Ό λ¦¬λ””μžμΈν•΄λ„ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ κ·ΈλŒ€λ‘œμž…λ‹ˆλ‹€.

λ˜ν•œ TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ„ ν™œμš©ν•΄μ„œ λ ˆμ΄μ–΄ κ°„ 계약(contract)을 λͺ…μ‹œν•©λ‹ˆλ‹€. API 응닡 νƒ€μž…, μ»΄ν¬λ„ŒνŠΈ Props νƒ€μž…, 도메인 λͺ¨λΈ νƒ€μž…μ„ λΆ„λ¦¬ν•΄μ„œ, ν•œ λ ˆμ΄μ–΄μ˜ 변경이 λ‹€λ₯Έ λ ˆμ΄μ–΄λ‘œ μ „νŒŒλ˜λŠ” λ²”μœ„λ₯Ό νƒ€μž… 체크둜 μ¦‰μ‹œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

꼬리 질문 λŒ€λΉ„

μ˜ˆμƒ 질문 λ‹΅λ³€ 포인트
API 응닡 νƒ€μž…κ³Ό 도메인 νƒ€μž…μ„ μ™œ λΆ„λ¦¬ν•˜λ‚˜? API 응닡은 snake_case일 수 있고, ν”„λ‘ νŠΈ 도메인에선 λΆˆν•„μš”ν•œ ν•„λ“œκ°€ μžˆμ„ 수 μžˆλ‹€. λ³€ν™˜ λ ˆμ΄μ–΄λ₯Ό 두면 λ°±μ—”λ“œ λ³€κ²½ 영ν–₯을 μ΅œμ†Œν™”
κ³Όλ„ν•œ 좔상화가 λ˜μ§€ μ•Šλ‚˜? μ†Œκ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„  μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§μΌ 수 μžˆλ‹€. νŒ€ 규λͺ¨μ™€ ν”„λ‘œμ νŠΈ 수λͺ…을 κ³ λ €ν•΄μ„œ νŒλ‹¨ν•œλ‹€
이 ꡬ쑰λ₯Ό νŒ€μ— μ–΄λ–»κ²Œ κ³΅μœ ν•˜λ‚˜? ADR(Architecture Decision Record)μ΄λ‚˜ μ½”λ“œ 리뷰 μ»¨λ²€μ…˜μœΌλ‘œ λ¬Έμ„œν™”. μƒˆ 멀버 μ˜¨λ³΄λ”© μ‹œ μ°Έκ³  자료둜 ν™œμš©

λ©΄μ ‘ 마무리 멘트

μ •λ¦¬ν•˜λ©΄, μ €λŠ” μ•„ν‚€ν…μ²˜λ₯Ό ν•œ κ°€μ§€ μ •λ‹΅μœΌλ‘œ λ³΄κΈ°λ³΄λ‹€λŠ” ν”„λ‘œμ νŠΈμ˜ 규λͺ¨, νŒ€μ˜ 상황, λ³€κ²½ κ°€λŠ₯성에 따라 μ μ ˆν•œ μˆ˜μ€€μ„ μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μž‘μ€ ν”„λ‘œμ νŠΈμ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‚˜ μ—„κ²©ν•œ λ ˆμ΄μ–΄ 뢄리λ₯Ό μ μš©ν•˜λ©΄ μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§μ΄ 되고, λ°˜λŒ€λ‘œ 큰 ν”„λ‘œμ νŠΈμ—μ„œ ꡬ쑰 없이 μ§„ν–‰ν•˜λ©΄ μœ μ§€λ³΄μˆ˜κ°€ μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.

κ·Έλž˜μ„œ 항상 **μ§€κΈˆ 이 μˆ˜μ€€μ˜ ꡬ쑰가 ν˜„μž¬ 상황에 μ μ ˆν•œκ°€?**λ₯Ό κ³ λ―Όν•˜λ €κ³  ν•©λ‹ˆλ‹€.