그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Testing
Testing

테스트하기 쉬운 코드의 조건은 무엇인가요?

실무4/5
설계5/5
인간4/5
기초3/5

면접관의 질문 의도

테스트 기법을 나열하고 끝내는지, 설계 원칙과 유지보수 트레이드오프까지 보는지를 가른다. 테스트 편의와 설계 단순함이 충돌할 때 어디서 멈출지 기준을 가졌는지가 핵심이다.

큐레이션 답변

학습 자료

테스트하기 쉬운 코드는 입력이 명확하고 외부 의존이 분리돼 있어 결과를 예측할 수 있다. 순수 함수는 동일 입력에 동일 결과를 보장해 단위 테스트가 단순해지고, 책임이 하나로 좁혀진 모듈은 실패 원인을 빠르게 좁힌다. 반대로 UI 조작, 네트워크 호출, 전역 상태 접근이 한 함수에 섞이면 테스트 설정이 복잡해지고 작은 변경에도 깨진다. 단 테스트 편의를 위해 캡슐화를 무너뜨리거나 구조를 과하게 쪼개면 오히려 코드 품질이 떨어지므로, 테스트 용이성은 설계 단순함과 함께 본다.

좋은 답변 구조

  1. 01테스트 용이성을 가르는 설계 원칙(순수성, 책임 분리, 의존성 주입)을 정리한다
  2. 02테스트를 어렵게 만드는 구조를 반례로 들어 원인을 짚는다
  3. 03테스트 편의와 설계 단순함이 충돌할 때의 결정 기준을 말한다
  4. 04리팩터링을 어디까지 밀고 어디서 멈출지 상황별 판단 기준을 정리한다

자주 실수하는 포인트

테스트 편의를 위해 캡슐화를 무너뜨려 내부 구현을 노출한다
외부 의존 분리를 생략한 채 모킹만 늘려 실제 동작과 멀어진 테스트를 만든다
테스트가 어렵다고 단위 테스트만 늘려 통합 단계에서 터지는 버그를 놓친다
테스트 가능한 구조라면 무조건 좋은 설계라고 단정한다

실무 맥락

  • 비즈니스 로직과 UI가 한 컴포넌트에 섞여 있어 테스트가 자주 깨지는 환경
  • 전역 상태와 네트워크 호출에 강하게 묶여 있는 레거시 컴포넌트를 손봐야 하는 상황
  • CI에서 flaky 테스트가 늘어 빌드 신뢰도가 떨어진 환경

본인 경험에 녹이는 힌트

비즈니스 로직을 컴포넌트 밖으로 빼서 단위 테스트가 가능해진 경험이 있다면 책임 분리의 효과와 연결할 수 있다

flaky 테스트 원인을 외부 의존 분리 부족으로 진단해본 경험이 있다면 의존성 주입의 필요성과 연결할 수 있다

테스트 편의를 위해 구조를 비틀었다가 되돌린 경험이 있다면 설계 단순함과 테스트 가능성의 균형으로 풀 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1테스트를 위해 허용 가능한 리팩터링 범위는 어디까지인가요
Q2순수 함수화가 어려운 코드에서는 어떤 전략을 쓰나요
Q3단위 테스트와 통합 테스트, E2E의 경계는 어떻게 정하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문