본문으로 건너뛰기

IBM * 레드햇 AX 과정 · 10강 문제풀이

클린·헥사고날·DDD — 추상화를 풀스택 구조로

전체 30강 · 이 강의 33문항

10강 교재 보기 →

생성 수정

33 / 33문항

Q01이 단원 전체를 관통하는 한 문장은 무엇입니까?

핵심 문장

"변하는 것과 변하지 않는 것을 갈라놓고, 변하지 않는 것 쪽에 내 코드를 세운다."

CQRS·SQL 명령어 분류·SOLID·클린 아키텍처·헥사고날·매개변수까지, 이 단원에 나오는 개념 전부가 이 한 문장이 크기만 바꿔 반복된 것입니다.

Q02매개변수가 왜 '관문(Gate)'입니까?

아키텍처

함수 안으로 무엇이 들어올 수 있는지를 매개변수가 결정하기 때문입니다.

함수 내부(안쪽·변하지 않는 로직)와 바깥(호출부·변하는 값) 사이의 경계를 지키는 문이라는 점에서 헥사고날의 Port와 같은 원리입니다.

Q03스코프 계층은 좁은 것에서 넓은 것 순으로 어떻게 놓입니까?

아키텍처

로컬 변수(함수 안) → 클래스 필드 → 컨텍스트·전역 → 환경변수(.env) 순으로 넓어집니다.

Next.js와 FastAPI 양쪽에 이 계층을 그대로 매핑할 수 있습니다.

Q04추상화하는 근본적인 이유는 무엇입니까?

아키텍처

변하기 쉬운 것(구현·기술 선택)과 변하지 않는 것(비즈니스 규칙)을 분리해, 변하는 부분이 바뀌어도 핵심 로직이 흔들리지 않게 하기 위해서입니다.

Port/Adapter, 클린 아키텍처의 안쪽 원, SOLID의 DIP가 모두 이 목적의 다른 얼굴입니다.

Q05추상화하는 근본 이유를 한 문장으로 말하면 무엇입니까?

스스로 확인

변하는 것과 변하지 않는 것을 갈라놓고, 변하지 않는 것 쪽에 내 코드를 세우기 위해서입니다.

Q06추상화가 나타나는 5곳을 열거할 수 있습니까?

스스로 확인

Port/Adapter, SOLID의 DIP, 클린 아키텍처의 안쪽 원, 함수의 매개변수, 스코프 계층입니다.

Q07환경 변수가 전역 변수보다 바깥인 이유는 무엇입니까?

스스로 확인

전역 변수는 코드 안(프로세스 내부)에 있지만, 환경 변수는 OS·컨테이너 레벨에서 코드 바깥으로부터 주입되기 때문입니다.

Q08함수 안팎의 x가 이름이 같아도 다른 이유는 무엇입니까?

스스로 확인

별개의 메모리(스코프)에 있기 때문입니다. 이름만 같을 뿐 서로 다른 값입니다.

Q09매개변수와 Port가 같은 것인 이유는 무엇입니까?

스스로 확인

둘 다 안쪽(함수 내부·코어)과 바깥(호출부·외부)의 경계를 지키는 유일한 통로(관문)이기 때문입니다.

Q10폴더만 나누면 헥사고날이라고 생각하면 왜 틀렸습니까?

자주 하는 실수

추상 클래스를 안 쓰면 라우터가 구현체를 직접 import 해 역전이 일어나지 않습니다.

Q11값은 넓은 스코프에 두면 편하다고 생각하면 왜 위험합니까?

자주 하는 실수

필요한 것보다 넓은 스코프가 거의 모든 버그의 시작입니다.

Q12환경 변수와 전역 변수는 같은 것이라고 생각하면 왜 틀렸습니까?

자주 하는 실수

전역 변수는 코드 안, 환경 변수는 코드 밖입니다.

Q13usecases, services, orchestrators를 섞어 써도 된다고 생각하면 왜 문제가 됩니까?

자주 하는 실수

하나로 통일하지 않으면 답 없는 논쟁이 매주 반복됩니다.

Q14AI에게 '이 기능 만들어줘'라고만 하면 왜 부족합니까?

자주 하는 실수

부탁이 아니라 구조를 줘야 합니다. 폴더 경로까지 지정하면 결과가 안정됩니다.

Q15Depends는 무엇을 합니까?

용어

요청마다 의존 객체를 만들고 정리하는 FastAPI의 의존성 주입 장치입니다.

Q16abc, ABC, @abstractmethod 는 각각 무엇입니까?

용어

abc는 추상 클래스를 만드는 파이썬 표준 모듈, ABC는 상속하면 추상 기반 클래스가 되는 클래스, @abstractmethod는 자식이 반드시 구현하도록 강제하는 데코레이터입니다.

Q17느슨한 결합(Loose Coupling)이란 무엇입니까?

용어

서로의 내부를 모른 채 규격만으로 연결되는 설계 성질입니다.

Q18퍼사드 패턴(Facade)이란 무엇입니까?

용어

복잡한 서브시스템에 단순한 정면 하나를 제공하는 구조 패턴입니다.

Q19Port Gate란 무엇입니까?

용어

직행 경로를 막고 포트라는 문을 세워 통과시키는 설계 관행입니다.

Q20이 단원 전체를 관통하는 한 문장은 무엇입니까?

용어

"변하는 것과 변하지 않는 것을 갈라놓고, 변하지 않는 것 쪽에 내 코드를 세운다."

Q21스코프 계층은 좁은 것부터 어떻게 놓입니까?

용어

로컬 변수 → 클래스 필드 → 컨텍스트·전역 → 환경변수(.env) 순으로 넓어집니다.

Q22풀스택 3계층은 무엇으로 이루어집니까?

용어

Next.js(프론트) → FastAPI(백엔드) → PostgreSQL(DB)입니다.

Q23이 아키텍처의 3대 이점을 한 문장으로 묶으면 무엇입니까?

용어

테스트 용이성·기술 교체 유연성·유지보수성이며, 셋 다 핵심 로직이 특정 기술을 모른다는 사실에서 나옵니다.

Q24의존성 조립소(DIP Factory)란 무엇입니까?

용어

주입할 구현체를 조립하는 전용 모듈입니다.

Q25DDD(Domain-Driven Design)란 무엇입니까?

용어

비즈니스 도메인을 코드 구조의 중심에 두는 설계 방법론입니다.

Q26컨텍스트(스코프의 한 종류)란 무엇입니까?

용어

애플리케이션 실행 문맥·상태를 나타내는 스코프입니다.

Q27필드(Field)와 인스턴스 변수는 스코프 관점에서 어떤 관계입니까?

용어

필드는 클래스에 선언된 변수 전체를 가리키고, 인스턴스 변수는 그중 인스턴스마다 하나씩 있는 것입니다.

Q28싱글톤 패턴을 9~10강 관점에서 다시 정의하면 무엇입니까?

용어

그 클래스의 인스턴스가 프로그램 전체에 딱 하나만 존재하도록 강제하는 생성 패턴입니다.

Q29전략 패턴(Strategy)의 정의는 무엇입니까?

용어

알고리즘을 캡슐화해 실행 중 교체 가능하게 하는 행위 패턴입니다.

Q30어댑터 패턴(Adapter)이란 무엇입니까?

용어

비호환 인터페이스를 연결하는 구조 패턴입니다.

Q31무상태(Stateless, 9~10강 부록 기준)는 무엇에 대한 성질입니까?

용어

요청 사이에 서버가 아무 상태도 보관하지 않는 서버 성질입니다.

Q32환경 변수(Environment Variable)는 어느 레벨에서 주입됩니까?

용어

OS·컨테이너 레벨에서, 코드 바깥으로부터 주입됩니다.

Q339~10강의 다섯 가지 판별 축은 무엇입니까?

종합

추상 ↔ 구상, 안쪽 ↔ 바깥쪽, 읽기 ↔ 쓰기, 구조 정의 ↔ 데이터 조작, 좁은 스코프 ↔ 넓은 스코프입니다.