생성 수정
31 / 31문항
Q01이 장 전체를 한 문장으로 줄이면 무엇입니까?정답
SOLID
"LSP는 데이터 객체에, OCP는 제어 컴포넌트에 붙는다."
SOLID 다섯 원칙이 아무 코드에나 똑같이 적용되는 것이 아니라, 원칙마다 담당 구역이 따로 있다는 것이 이 장의 핵심입니다.
Q02LSP는 왜 Schema·DTO·VO·Entity·ORM 같은 데이터 객체의 문제입니까?정답
SOLID
LSP(리스코프 치환 원칙)는 자식이 부모 자리에 들어가도 안전한가를 묻는데, 데이터 객체는 자리를 바꿔 끼우는(치환하는) 일이 잦은 대상이기 때문입니다.
Q03OCP는 왜 Router·UseCase·Repository 같은 제어 컴포넌트의 문제입니까?정답
SOLID
OCP(개방-폐쇄 원칙)는 코드를 고치지 않고 늘릴 수 있는가를 묻는데, 제어 컴포넌트는 pg_repository를 mongo_repository로 갈아끼우는 것처럼 확장이 자주 필요한 대상이기 때문입니다.
Q04러닝(Learning)의 본질은 무엇입니까?정답
머신러닝
규칙을 누가 만드는가입니다. 전통적인 프로그래밍은 사람이 규칙을 직접 정의하고, 머신러닝·딥러닝은 기계가 데이터에서 규칙을 스스로 발견합니다.
Q05머신러닝과 딥러닝은 어떻게 구별됩니까?정답
머신러닝
특징(feature)을 누가 추출하는가(사람이 골라줌 / 스스로 찾음), 필요한 데이터 양, 데이터 형태, 결과의 해석 가능성 네 축으로 구별됩니다.
Q06CPU와 GPU는 어떤 비유로 구별됩니까?정답
머신러닝
'대학교수 1명'(CPU, 순차적으로 깊게 계산)과 '초등학생 3,000명'(GPU, 병렬로 동시에 얕은 계산을 나눠 처리)입니다.
딥러닝의 행렬 연산은 후자에 훨씬 잘 맞아 GPU가 필수가 됩니다.
Q07Dataset과 Database는 어떤 축으로 갈립니까?정답
머신러닝
정적/동적 축입니다. Dataset은 특정 시점에 고정(박제)된 것이고, Database는 실시간으로 계속 바뀌는 것입니다.
Q08LSP는 어떤 종류의 코드에, OCP는 어떤 종류의 코드에 붙습니까?정답
스스로 확인
LSP는 데이터 객체(Schema·DTO·VO·Entity·ORM)에, OCP는 제어 컴포넌트(Router·Use Case·Repository)에 붙습니다.
Q09'받는 건 넓게, 주는 건 좁게'는 무슨 뜻입니까?정답
스스로 확인
입력은 상위 타입(더 일반적인 형태)으로 넓게 받고, 출력은 구체적인 타입으로 좁게 주라는 뜻으로, LSP를 지키는 실무 원칙입니다.
Q10부르는 쪽에 isinstance 분기가 생기면 무엇이 깨진 것입니까?정답
스스로 확인
LSP입니다. 자식 타입을 구분해서 다르게 처리해야 한다는 것은 자식이 부모 자리를 완전히 대체하지 못한다는 뜻입니다.
Q11pg_repository 를 mongo_repository 로 바꿀 때 실제로 바뀌는 파일은 무엇입니까?정답
스스로 확인
Outbound Adapter 구현 파일 하나뿐입니다. Port(인터페이스)와 그것을 쓰는 코어 코드는 바뀌지 않습니다. 이것이 OCP가 지켜진 결과입니다.
Q12한 요청 흐름에서 상자(데이터)와 화살표(제어)에는 각각 어떤 원칙이 붙습니까?정답
스스로 확인
상자(데이터 객체)에는 LSP, 화살표를 만드는 제어 컴포넌트에는 OCP가 붙습니다.
Q13전통 프로그래밍과 러닝은 출력이 어떻게 다릅니까?정답
스스로 확인
전통 프로그래밍은 사람이 정한 규칙대로 정해진 출력을 내고, 러닝은 데이터에서 기계가 스스로 규칙을 찾아 출력을 냅니다.
Q14피처 엔지니어링 네 가지 작업은 무엇입니까?정답
스스로 확인
결측치 처리, 인코딩(범주형→숫자), 스케일링(범위 맞추기), 파생 변수 생성입니다.
Q15머신러닝과 딥러닝의 특징 추출 주체는 각각 누구입니까?정답
스스로 확인
머신러닝은 사람이 특징을 골라주고, 딥러닝은 신경망이 특징까지 스스로 찾습니다.
Q16딥러닝에 GPU가 필수인 이유를 한 문장으로 말하면 무엇입니까?정답
스스로 확인
딥러닝의 핵심 연산인 행렬 곱셈이 서로 독립적인 계산이 많아, 순차 처리(CPU)보다 대규모 병렬 처리(GPU)에 훨씬 잘 맞기 때문입니다.
Q175~6강의 동기/비동기와 이 장의 순차/병렬은 무엇이 다릅니까?정답
스스로 확인
동기/비동기는 '기다리는가'를 묻는 시간 축이고, 순차/병렬은 '한 번에 하나씩인가 동시에인가'를 묻는 계산 축으로 서로 다른 질문입니다.
Q18Dataset과 Database를 가르는 축은 무엇입니까?정답
스스로 확인
정적/동적 축입니다. Dataset은 특정 시점에 고정되고, Database는 실시간으로 바뀝니다.
Q19Ground Truth의 어원과, 학습·평가에서의 서로 다른 역할은 무엇입니까?정답
스스로 확인
원래 항공 사진과 실제 지상 상태를 대조하던 데서 온 말로, 학습에서는 모델이 맞춰야 할 목표로, 평가에서는 채점 기준으로 쓰입니다.
Q20SOLID 다섯 개를 모든 파일에 다 적용해야 한다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
원칙마다 주 담당 구역이 다릅니다. 데이터는 LSP, 제어는 OCP부터 봅니다.
Q21자식이 검증을 더 빡세게 하면 좋다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
부모가 받던 값을 자식이 거부하면 LSP 위반입니다.
Q22부모의 필수 필드를 자식에서 Optional로 낮춰도 된다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
계약 위반입니다. 부르는 쪽이 값이 있다고 믿고 있습니다.
Q23정사각형은 직사각형이니 상속하면 된다고 생각하면 왜 위험합니까?정답
자주 하는 실수
수학적 IS-A와 프로그래밍 IS-A는 다릅니다. 정사각형이 직사각형의 동작(너비·높이 독립 설정)을 깨뜨릴 수 있습니다.
Q24OCP를 지키면 아무 파일도 안 바뀐다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
조립소 한 곳은 바뀝니다. 바뀌는 자리를 몰아넣는 것이 목적입니다.
Q25기능 추가는 기존 유스케이스에 if 를 넣으면 된다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
그건 확장이 아니라 변경입니다. 새 파일을 만드는 것이 OCP를 지키는 방법입니다.
Q26머신러닝과 딥러닝이 다른 두 기술이라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
딥러닝은 머신러닝의 부분집합입니다.
Q27GPU가 CPU보다 좋은 부품이라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
잘하는 일이 다릅니다. 순차 논리는 CPU가 더 빠릅니다.
Q28Ground Truth는 언제나 옳다고 생각하면 왜 위험합니까?정답
자주 하는 실수
사람이 라벨링한 것이므로 라벨링 노이즈가 있습니다.
Q29데이터 객체와 제어 컴포넌트는 각각 무엇입니까?정답
용어
데이터 객체는 값을 담고 계층을 이동하는 것(Schema·DTO·VO·Entity·ORM)이고, 제어 컴포넌트는 흐름을 만들고 다른 것을 호출하는 것(Router·Use Case·Repository)입니다.
Q30VO(Value Object)란 무엇입니까?정답
용어
식별자 없이 값의 조합이 정체성인 불변 객체입니다.
Q31영속성 컨텍스트(Persistence Context)란 무엇입니까?정답
용어
ORM이 객체의 변경을 추적·반영하는 작업 공간입니다.
LangTailor