왜 데이터 엔지니어링이 필요한가요?
여러분이 대형 쇼핑몰을 운영한다고 상상해 보겠습니다. 매일 수만 건의 주문이 들어오고, 고객의 클릭 로그가 쌓이며, 재고 시스템에서는 실시간으로 수량이 변하고 있습니다. 이 모든 데이터를 그냥 방치하면 어떻게 될까요? 아마 “이번 달 가장 잘 팔린 상품이 뭐지?”, “어떤 고객이 이탈 위험이 높지?” 같은 간단한 질문조차 답하기 어려울 것입니다. 데이터 엔지니어링(Data Engineering) 은 바로 이 문제를 해결합니다. 여기저기 흩어져 있는 원시 데이터(Raw Data)를 수집하고, 깨끗하게 정리하고, 분석가나 데이터 과학자가 바로 사용할 수 있는 형태로 만들어 주는 일련의 과정입니다.💡 쉽게 비유하면: 데이터 엔지니어링은 “데이터의 상수도 시스템”과 같습니다. 산에서 내려오는 원수(Raw Data)를 정수 처리(변환)하고, 깨끗한 물(정제된 데이터)을 각 가정(분석가, 대시보드, ML 모델)에 안정적으로 공급하는 파이프라인을 만드는 것입니다.
데이터 엔지니어링의 핵심 역할
데이터 엔지니어링은 크게 세 가지 핵심 역할을 수행합니다.1. 데이터 수집 (Ingestion)
다양한 소스에서 데이터를 가져오는 단계입니다.| 소스 유형 | 예시 |
|---|---|
| 데이터베이스 | MySQL, PostgreSQL, Oracle 등의 운영 DB |
| 파일 | CSV, JSON, Parquet, Excel 파일 |
| 스트리밍 | Kafka, Kinesis 같은 실시간 메시지 큐 |
| SaaS 애플리케이션 | Salesforce, SAP, Workday 등 |
| API | REST API, GraphQL 등을 통한 외부 데이터 |
2. 데이터 변환 (Transformation)
수집한 원시 데이터를 분석에 적합한 형태로 가공하는 단계입니다.- 정제(Cleansing): 중복 제거, 결측값 처리, 오류 데이터 수정
- 표준화(Standardization): 날짜 형식 통일, 통화 변환, 코드값 매핑
- 통합(Integration): 여러 소스의 데이터를 하나로 합치기 (예: 주문 데이터 + 고객 데이터)
- 집계(Aggregation): 일별 매출 합산, 월별 사용자 수 계산 등
3. 데이터 적재 및 서빙 (Loading & Serving)
변환된 데이터를 최종 목적지에 저장하고, 소비자에게 제공하는 단계입니다.- 데이터 웨어하우스 에 적재하여 BI 대시보드에서 조회
- 데이터 레이크 에 저장하여 데이터 과학자가 ML 모델 학습에 활용
- 실시간 서빙 레이어 를 통해 애플리케이션에서 즉시 사용
데이터 팀의 구성과 역할
데이터 조직에는 다양한 역할이 존재합니다. 데이터 엔지니어가 어디에 위치하는지 이해하면, 전체 데이터 흐름이 더 명확해집니다.| 단계 | 역할 |
|---|---|
| 데이터 소스 | 원본 데이터 발생 |
| 데이터 엔지니어 → 수집 | 소스에서 데이터 추출 |
| 데이터 엔지니어 → 정제/변환 | 데이터 클렌징 및 변환 |
| 데이터 웨어하우스 / 레이크 | 정제된 데이터 저장 |
| 데이터 분석가 → 분석 | 데이터 기반 인사이트 도출 |
| 데이터 과학자 → ML 모델 | 머신러닝 모델 학습 |
| 경영진 → 비즈니스 의사결정 | 데이터 기반 의사결정 |
| 역할 | 하는 일 | 주로 사용하는 도구 |
|---|---|---|
| 데이터 엔지니어(DE) | 데이터 파이프라인 설계·구축·운영 | Spark, SQL, Python, Databricks |
| 데이터 분석가(DA) | 데이터를 조회·시각화하여 인사이트 도출 | SQL, BI 도구 (Tableau, Power BI) |
| 데이터 과학자(DS) | ML 모델을 만들어 예측·분류 수행 | Python, R, MLflow, TensorFlow |
| 데이터 아키텍트 | 전체 데이터 시스템의 구조 설계 | 아키텍처 도구, 거버넌스 프레임워크 |
| 애널리틱스 엔지니어 | 분석용 데이터 모델(테이블) 설계·관리 | SQL, dbt |
데이터 파이프라인의 큰 그림
데이터 엔지니어링의 핵심 산출물은 데이터 파이프라인(Data Pipeline) 입니다. 파이프라인은 데이터가 소스에서 최종 목적지까지 흘러가는 전체 경로를 의미합니다.| 단계 | 구성 요소 | 설명 |
|---|---|---|
| 데이터 소스 | 운영 DB, 로그 파일, SaaS API, IoT 센서 | 원본 데이터 발생지 |
| 수집 (Ingestion) | Batch, Streaming | 데이터를 플랫폼으로 가져옴 |
| 저장 (Storage) | 데이터 레이크, 데이터 웨어하우스 | 수집된 데이터 저장 |
| 변환 (Transformation) | ETL/ELT | 데이터 정제, 표준화 |
| 서빙 (Serving) | BI 대시보드, ML 모델, 애플리케이션 | 최종 소비자에게 전달 |
💡 핵심 포인트: 데이터 파이프라인은 “한 번 만들면 끝”이 아닙니다. 매일, 매시간, 때로는 실시간으로 반복 실행되어야 하며, 중간에 오류가 나면 자동으로 감지하고 복구할 수 있어야 합니다. 이것이 데이터 엔지니어링을 단순한 스크립트 작성과 구별짓는 핵심입니다.
현대 데이터 엔지니어링의 트렌드
데이터 엔지니어링은 빠르게 진화하고 있습니다. 최근의 주요 트렌드를 살펴보겠습니다.클라우드 네이티브 (Cloud-Native)
과거에는 온프레미스(On-Premise) 서버에 직접 Hadoop 클러스터를 구축했지만, 현재는 클라우드 기반 플랫폼(Databricks, Snowflake 등)을 사용하는 것이 표준이 되었습니다. 필요할 때 리소스를 늘리고, 사용하지 않을 때 줄이는 탄력적인 운영이 가능합니다.레이크하우스 패러다임 (Lakehouse)
데이터 레이크와 데이터 웨어하우스의 장점을 결합한 새로운 아키텍처입니다. 하나의 플랫폼에서 모든 데이터를 저장하고, SQL 분석부터 ML 학습까지 수행할 수 있습니다. (이 내용은 03. 레이크하우스 아키텍처에서 자세히 다룹니다.)선언적 파이프라인 (Declarative Pipelines)
“어떻게(How)” 처리할지 일일이 코딩하는 대신, “무엇을(What)” 만들고 싶은지만 선언하면 시스템이 알아서 처리해 주는 방식입니다. Databricks의 Spark Declarative Pipelines(SDP)가 대표적인 예시입니다.실시간 처리의 보편화
과거에는 하루에 한 번 배치로 처리하는 것이 일반적이었지만, 이제는 몇 초~몇 분 이내에 데이터를 처리하는 니어 리얼타임(Near Real-Time) 처리가 많은 기업에서 표준이 되어가고 있습니다.현장에서 배운 것들: 데이터 엔지니어의 현실
데이터 엔지니어의 실제 하루 일과
교과서에서는 데이터 엔지니어가 우아하게 파이프라인을 설계하고, 멋진 아키텍처를 그리는 모습을 보여줍니다. 현실은 좀 다릅니다. 제가 20년간 현업에서 관찰한 데이터 엔지니어의 실제 하루 를 솔직하게 그려보겠습니다.| 시간 | 하는 일 | 비율 |
|---|---|---|
| 09:00~09:30 | 슬랙 확인: “어젯밤 ETL 실패했어요” 알림 3건 | 장애 대응 |
| 09:30~11:00 | 실패한 파이프라인 디버깅: 원본 DB 스키마가 변경됨 → NULL 컬럼 추가됨 → 스키마 불일치 에러 | 장애 대응 (30%) |
| 11:00~12:00 | 분석가 요청: “이 데이터 어디서 오는 거예요?” “이 컬럼이 NULL인 이유가 뭐예요?” 응대 | 데이터 지원 (15%) |
| 13:00~14:30 | 신규 소스 시스템 연동 작업 (API 문서 읽기, 인증 설정, 스키마 매핑) | 새 파이프라인 개발 (20%) |
| 14:30~16:00 | 기존 파이프라인 성능 튜닝: 쿼리가 3시간 걸리는 원인 분석 → 잘못된 JOIN 순서 발견 | 최적화 (15%) |
| 16:00~17:00 | 인프라 관리: 클러스터 사이즈 조정, 비용 리포트 확인, VACUUM/OPTIMIZE 스케줄 확인 | 인프라 운영 (10%) |
| 17:00~18:00 | 코드 리뷰, 문서화, 팀 미팅 | 협업 (10%) |
💡 핵심 현실: 데이터 엔지니어가 가장 많은 시간을 쓰는 일은 새 파이프라인 개발이 아니라 기존 파이프라인의 장애 대응과 데이터 품질 관리 입니다. 파이프라인은 “만들면 끝”이 아니라, 원본 시스템이 바뀌고, 데이터 볼륨이 증가하고, 비즈니스 요건이 변할 때마다 계속 관리해야 하는 살아있는 시스템 입니다.
데이터 엔지니어 역할의 진화: ETL 개발자에서 플랫폼 엔지니어로
데이터 엔지니어의 역할은 지난 20년간 극적으로 변했습니다.| 시대 | 역할 이름 | 주요 업무 | 핵심 스킬 |
|---|---|---|---|
| 2005~2012 | ETL 개발자 | Informatica/DataStage로 ETL 작성, Oracle DW 관리 | SQL, ETL 도구, 스키마 설계 |
| 2012~2017 | 빅데이터 엔지니어 | Hadoop/Hive/Pig 스크립트 작성, 클러스터 관리 | Java/Scala, Hadoop 생태계, Linux |
| 2017~2022 | 데이터 엔지니어 | Spark/Airflow/dbt로 파이프라인 구축, 클라우드 관리 | Python, Spark, SQL, 클라우드(AWS/Azure) |
| 2022~현재 | 데이터 플랫폼 엔지니어 | 셀프서비스 플랫폼 구축, 거버넌스 설계, 비용 최적화 | IaC, CI/CD, 거버넌스, 비용 관리, LLM/AI 활용 |
⚠️ 이것을 안 하면 이런 일이 벌어집니다: 2025년에도 “ETL 스크립트만 잘 짜면 된다”고 생각하면 경쟁력을 잃습니다. 현대 데이터 엔지니어에게 요구되는 역량은 코딩 능력보다 플랫폼 설계, 거버넌스, 비용 최적화, 그리고 비즈니스 이해 입니다.
현대 데이터 엔지니어에게 필요한 스킬셋
실무에서 채용할 때, 그리고 팀 역량을 키울 때 제가 사용하는 스킬 매트릭스입니다.필수 스킬 (Must Have)
| 스킬 | 왜 필요한가 | 수준 기준 |
|---|---|---|
| SQL | 데이터 파이프라인의 80%는 SQL로 작성 가능 | 윈도우 함수, CTE, 최적화를 자유자재로 |
| Python | 비정형 처리, API 연동, 자동화 | pandas, API 호출, 에러 핸들링 수준 |
| Spark 기초 | 대규모 데이터 처리의 표준 | DataFrame API, 파티셔닝 이해, 셔플 최소화 |
| Git | 코드 버전 관리, 팀 협업의 기반 | 브랜치 전략, PR 리뷰, CI/CD 연동 |
| 클라우드 기초 | 인프라 이해, 비용 인식 | S3/ADLS, IAM, 네트워크 기본 |
차별화 스킬 (Nice to Have → 점점 Must로)
| 스킬 | 왜 중요해지고 있는가 | Databricks에서의 활용 |
|---|---|---|
| IaC (Terraform, Pulumi) | 인프라를 코드로 관리, 환경 재현성 | Workspace, 클러스터 정책, UC 설정 자동화 |
| Asset Bundles / CI/CD | 파이프라인 배포 자동화 | DAB로 Jobs, Pipelines 배포 |
| 데이터 거버넌스 | 규제 대응, 데이터 품질 | Unity Catalog 설계, Row Filter, Column Mask |
| 비용 최적화 | FinOps의 핵심 | 클러스터 사이징, Spot 활용, 쿼리 최적화 |
| 데이터 모델링 | 분석 효율성, 성능의 근간 | Star Schema, SCD, Medallion 아키텍처 |
2025년 떠오르는 스킬
| 스킬 | 배경 | 활용 |
|---|---|---|
| LLM/GenAI 활용 | 코드 생성, 데이터 분류, 비정형 처리에 AI 활용 | Databricks AI Functions, Agent Framework |
| 데이터 품질 엔지니어링 | 데이터 신뢰도가 비즈니스 의사결정의 기반 | SDP Expectations, Great Expectations |
| DataOps | 소프트웨어 엔지니어링 프랙티스를 데이터에 적용 | 테스트, 모니터링, 관찰 가능성(Observability) |
데이터 파이프라인 장애 대응: 가장 흔한 5가지 원인
“데이터 엔지니어가 가장 많이 하는 일은 데이터 파이프라인 장애 대응이다”라고 말씀드렸습니다. 제가 20년간 경험한 장애 원인을 빈도순으로 정리합니다.| 순위 | 원인 | 빈도 | 증상 | 예방법 |
|---|---|---|---|---|
| 1위 | 원본 스키마 변경 | 30% | “AnalysisException: cannot resolve column name” | 스키마 진화(Schema Evolution) 활성화, 변경 감지 모니터링 |
| 2위 | 데이터 볼륨 급증 | 25% | OOM(Out of Memory), 타임아웃 | 오토스케일링, 적응형 쿼리 실행(AQE), 데이터 볼륨 알림 |
| 3위 | 원본 시스템 장애/지연 | 20% | 데이터 미도착, 불완전 적재 | 재시도 로직, 데이터 완전성 체크(row count 비교) |
| 4위 | 코드 변경 오류 | 15% | 배포 후 파이프라인 실패 | CI/CD 파이프라인, 스테이징 환경 테스트, 코드 리뷰 |
| 5위 | 인프라 이슈 | 10% | 클러스터 시작 실패, 네트워크 에러 | Serverless 활용, 멀티 AZ 구성, 장애 알림 |
💡 장애 대응의 핵심 원칙: (1) 감지가 빨라야 합니다— 고객이 발견하기 전에 알림이 와야 합니다. (2) 복구가 자동이어야 합니다— 일시적 장애는 재시도로 해결. (3) 근본 원인 제거— 같은 장애가 3번 반복되면 아키텍처를 바꿔야 합니다.
ETL vs ELT: 현대 데이터 엔지니어링의 패러다임 전환
데이터 엔지니어링을 이해하려면 ETL과 ELT의 차이를 알아야 합니다. 이 패러다임 전환이 현대 데이터 엔지니어링의 핵심 흐름입니다.| 비교 | ETL (Extract-Transform-Load) | ELT (Extract-Load-Transform) |
|---|---|---|
| 순서 | 추출 → 변환→ 적재 | 추출 → 적재 → 변환 |
| 변환 위치 | 별도 ETL 서버 (Informatica, DataStage) | 타겟 시스템 내부 (Spark, SQL) |
| 원본 보존 | 원본이 변환 후 사라질 수 있음 | 원본을 그대로 저장 (Bronze 레이어) |
| 유연성 | 변환 로직을 바꾸면 처음부터 다시 | 원본이 있으므로 언제든 다시 변환 가능 |
| 시대 | 2000~2015년 주류 | 2015년~ 현재 주류 |
| Databricks | - | ELT 방식 (Bronze→Silver→Gold) |
💡 왜 ELT가 승리했는가: 클라우드 스토리지가 극도로 저렴해졌기 때문입니다. S3에 원본을 그대로 저장하는 비용이 TB당 월 $23 수준이므로, “일단 저장하고 나중에 변환”하는 것이 경제적으로 합리적입니다. 또한 원본을 보존하면 비즈니스 요건이 바뀌었을 때 처음부터 재수집하지 않아도 됩니다. 이것이 Medallion 아키텍처(Bronze→Silver→Gold)의 기반입니다.
데이터 품질: 모든 것의 기반
파이프라인을 아무리 잘 만들어도, 데이터 품질이 나쁘면 아무 소용이 없습니다.”쓰레기가 들어가면 쓰레기가 나온다(Garbage In, Garbage Out)“는 데이터 엔지니어링의 불변의 법칙입니다.| 품질 차원 | 의미 | 검증 예시 |
|---|---|---|
| 완전성(Completeness) | 필수 데이터가 누락 없이 존재하는가 | 주문 테이블에 고객 ID가 NULL인 비율 < 0.1% |
| 정확성(Accuracy) | 데이터가 실제 값을 정확히 반영하는가 | 주문 금액이 음수가 아닌가, 날짜가 미래가 아닌가 |
| 일관성(Consistency) | 시스템 간 데이터가 일치하는가 | 주문 시스템과 결제 시스템의 총액이 같은가 |
| 적시성(Timeliness) | 데이터가 필요한 시점에 제공되는가 | 일일 리포트에 어제 데이터가 포함되어 있는가 |
| 유일성(Uniqueness) | 중복 데이터가 없는가 | 같은 주문이 두 번 적재되지 않았는가 |
⚠️ 이것을 안 하면 이런 일이 벌어집니다: 한 고객이 데이터 품질 검증 없이 6개월간 파이프라인을 운영했습니다. 어느 날 CEO에게 보고된 매출이 실제보다 20% 높다는 것을 발견했습니다. 원인은 결제 실패 건이 걸러지지 않고 매출에 포함된 것이었습니다. 데이터 품질 문제는 발견이 늦을수록 피해가 기하급수적으로 커집니다. Databricks의 SDP Expectations 기능을 사용하면 파이프라인 내부에서 품질 규칙을 선언적으로 정의할 수 있습니다.
데이터 엔지니어링과 Databricks: 왜 이 조합인가
전통적으로 데이터 엔지니어는 10개 이상의 도구 를 조합해서 파이프라인을 구축했습니다. Databricks는 이 도구 파편화를 해결합니다.| 기존 방식 (도구 파편화) | Databricks 통합 | 이점 |
|---|---|---|
| Airflow (오케스트레이션) + Spark (처리) + S3 (저장) | Lakeflow Jobs + Spark + Delta Lake | 하나의 플랫폼에서 관리 |
| dbt (SQL 변환) + Great Expectations (품질) | SDP (선언적 파이프라인 + Expectations 내장) | 변환과 품질 검사를 한 곳에서 |
| Apache Kafka (수집) + Debezium (CDC) | Lakeflow Connect (커넥터) + Auto Loader | 코드 없이 수집 |
| Terraform (인프라) + GitHub Actions (CI/CD) | Databricks Asset Bundles (DAB) | 파이프라인 코드와 인프라를 함께 관리 |
| Ranger/Sentry (거버넌스) + Atlas (메타데이터) | Unity Catalog (통합 거버넌스) | 권한, 리니지, 메타데이터를 한 곳에서 |
도구 파편화의 실제 비용
“도구가 많으면 뭐가 문제냐?”고 물으실 수 있습니다. 실제 비용을 계산해 보겠습니다.| 비용 항목 | 10개 도구 조합 | Databricks 통합 | 차이 |
|---|---|---|---|
| 라이선스/구독 | Airflow(인프라) + dbt(Cloud) + Fivetran + GE + … = 월 15,000 | Databricks DBU만 과금 | 상당 부분 절감 |
| 학습 비용 | 엔지니어 1인당 10개 도구 학습 = 3~6개월 온보딩 | 하나의 플랫폼 학습 = 1~2개월 | 온보딩 60% 단축 |
| 통합 유지보수 | 도구 간 인터페이스 변경 대응, 버전 호환성 | 단일 플랫폼 업그레이드 | 운영 공수 50% 감소 |
| 장애 진단 | ”에러가 어디서 난 거지?” — 5개 시스템 로그를 뒤져야 | 단일 Job UI에서 전체 흐름 확인 | 장애 대응 시간 70% 단축 |
| 채용 | ”Airflow + Spark + dbt + Terraform + Kafka 경험자” — 구하기 어려움 | ”Databricks 경험자” — 상대적으로 수월 | 채용 효율 향상 |
⚠️ 오해하지 마세요: “Databricks가 모든 도구를 대체한다”는 뜻이 아닙니다. 조직의 상황에 따라 Airflow, dbt 등 기존 도구를 Databricks와 함께 사용하는 것이 더 나은 경우도 많습니다. 핵심은 도구의 수를 줄이고, 통합의 복잡성을 낮추는 것 입니다.
데이터 엔지니어링 커리어 로드맵
마지막으로, 데이터 엔지니어링 분야로 진입하거나 성장하고 싶은 분들을 위한 현실적인 로드맵입니다.| 단계 | 기간 | 목표 | 핵심 학습 |
|---|---|---|---|
| 입문 | 0~6개월 | SQL과 Python 기초 숙달 | SQL 윈도우 함수, Python pandas, 기초 ETL 작성 |
| 주니어 | 6~18개월 | 첫 프로덕션 파이프라인 구축 | Spark 기초, Delta Lake, 배치 파이프라인, Git |
| 미들 | 1.5~3년 | 복잡한 파이프라인 설계/운영 | 스트리밍, 데이터 모델링, 성능 튜닝, CI/CD |
| 시니어 | 3~5년 | 팀의 데이터 아키텍처 설계 | 거버넌스 설계, 비용 최적화, 팀 멘토링 |
| 스태프+ | 5년+ | 조직 전체의 데이터 전략 | 멀티팀 플랫폼, 데이터 메시, 기술 전략 |
💡 현업 조언: 데이터 엔지니어링은 “코딩만 잘하면 되는” 분야가 아닙니다. 비즈니스 도메인 이해, 커뮤니케이션 능력, 비용 감각이 시니어로 갈수록 중요해집니다. 가장 좋은 데이터 엔지니어는 “왜 이 데이터가 필요한지”를 이해하는 사람입니다.
데이터 엔지니어의 비용 감각: FinOps 시대의 필수 역량
클라우드 시대에 데이터 엔지니어에게 “비용 감각”은 선택이 아닌 필수입니다. 코드를 잘 짜는 것만큼, 그 코드가 얼마의 비용을 발생시키는지 아는 것이 중요합니다.| 비용 발생 포인트 | 흔한 실수 | 절감 방법 | 절감 효과 |
|---|---|---|---|
| 클러스터 유휴 | All-Purpose 클러스터를 24시간 켜둠 | 자동 종료 설정 (10~30분) | 60~80% |
| 과도한 셔플 | 큰 테이블끼리 무작정 JOIN | 브로드캐스트 조인, 파티셔닝 최적화 | 30~50% |
| 풀 스캔 | SELECT * 남발 | 필요한 컬럼만, 파티션 프루닝 활용 | 40~70% |
| 스토리지 방치 | VACUUM 미실행, 임시 테이블 방치 | 정기 VACUUM, 임시 데이터 정리 정책 | 20~40% |
| 중복 파이프라인 | 같은 데이터를 여러 팀이 각각 가공 | Feature Store, 공용 Silver/Gold 레이어 | 30~50% |
⚠️ 이것을 안 하면 이런 일이 벌어집니다: 한 고객의 데이터 팀이 비용 의식 없이 6개월간 개발한 결과, 월간 클라우드 비용이 180,000으로 3.6배 증가했습니다. 원인의 60%는 “유휴 클러스터”와 “비효율적 쿼리”였으며, 2주간의 최적화 작업으로 $80,000까지 줄일 수 있었습니다.
데이터 엔지니어링 장애 대응 플레이북
프로덕션 파이프라인 장애 시, 패닉하지 않고 체계적으로 대응하는 플레이북입니다.| 단계 | 시간 | 행동 | 상세 |
|---|---|---|---|
| 장애 감지 | 즉시 | 알림 수신 | Slack/PagerDuty/이메일 |
| Step 1 | 2분 | 영향 범위 파악 | 어떤 테이블이 영향받았나? 다운스트림 대시보드/모델은? |
| Step 2 | 5분 | 이해관계자 통보 | ”데이터 지연이 발생했습니다. X시까지 복구 예정입니다” |
| Step 3 | 10분 | 원인 분류 | 소스 시스템 문제 → 소스 팀 연락, 스키마 변경 → 스키마 진화 설정 확인, 리소스 부족 → 스케일업, 코드 버그 → 롤백 |
| Step 4 | - | 복구 실행 | 재실행 가능 → Job 재시작, 데이터 수정 필요 → 타임 트래블 복원 후 재처리 |
| Step 5 | - | 사후 분석 (RCA) | |
| “같은 장애가 다시 발생하지 않으려면 무엇을 바꿔야 하는가?” |