릴로

** and only build the execution plan (DAG). * **Actions:** Operations that trigger the execution of the transformations and return a value to the driver program or write data to storage (e.g., `count()`, `collect()`, `saveAsTextFile()`).

**Q7: Explain Spark "Shuffling" and why it should be avoided.** * **Answer:** Shuffling is the process of redistributing data across different partitions and physical nodes. It occurs during wide transformations like `groupByKey()`, `join()`, and `reduceByKey()`. It should be minimized because it involves heavy disk I/O, data serialization, and network overhead, which heavily degrades Spark job performance.

---

### **4. NoSQL & Data Warehousing Questions**

**Q8: When would you choose a NoSQL database over a SQL database?** * **Answer:** Choose NoSQL when: * You have unstructured or semi-structured data (JSON, XML). * You need massive, horizontal scalability (scaling out by adding more cheap servers). * High write/read throughput is required (like IoT sensor data or real-time gaming leaderboards). * You don't require complex multi-table joins or strict ACID compliance (though some NoSQL DBs now support this).

**Q9: What is the difference between Star Schema and Snowflake Schema in Data Warehousing?** * **Answer:** * **Star Schema:** Consists of one central fact table connected directly to multiple denormalized dimension tables. It is simpler, has faster query performance (fewer joins), but has redundant data. * **Snowflake Schema:** A variation of the Star Schema where dimension tables are normalized (split into multiple related tables). It reduces data redundancy but requires more complex queries with more joins, which can slow down performance.

---

### **5. Real-Time Streaming Questions**

**Q10: What is Apache Kafka, and what are its core components?** * **Answer:** Apache Kafka is a distributed event streaming platform used for high-performance data pipelines and streaming analytics. Core components include: * **Producer:** Sends data/messages to Kafka topics. * **Consumer:** Reads data/messages from Kafka topics. * **Topic:** A category or feed name to which records are published. Topics are split into **partitions** for scalability. * **Broker:** A Kafka server that stores the data. A cluster consists of multiple brokers. * **Zookeeper (or KRaft):** Manages cluster metadata and coordinates the brokers.

---

### **6. Scenario-Based / Troubleshooting Questions**

**Q11: Your Spark job is failing with an `OutOfMemory (OOM)` error. How would you troubleshoot and fix it?** * **Answer:** I would check the following: 1. **Data Skew:** Check if one partition has significantly more data than others. I would use "salting" (adding a random key) to distribute the data evenly.

쿵.

대강당의 무거운 철문이 닫히는 소리가 고막을 찢을 듯이 울렸다.

방금 전까지 목을 조여 오던 굵은 밧줄의 감촉, 폐부 깊숙이 차오르던 서늘한 질식의 공포는 온데간데없었다. 붉은 피가 튀던 사형 집행장의 풍경 대신, 눈앞에 펼쳐진 것은 지나치게 눈부신 형광등 불빛과 숨이 막힐 정도로 빽빽하게 들어찬 300여 명의 사법연수생들이었다.

“강태혁 연수생. 멍하니 서서 뭐 하는 건가? 발표를 계속하게.”

단상 위, 권위적인 목소리가 귓전을 때렸다. 석조 제단처럼 높은 교수석에 앉아 거만하게 턱을 치켜들고 있는 사내. 전직 부장판사이자 사법연수원 형사재판실무 교수, 김종식이었다.

‘회귀…… 했나?’

태혁은 가늘게 떨리는 자신의 손을 내려다보았다. 흉터 하나 없이 매끄러운 손가락. 사형수로 감옥에서 썩기 전, 가장 오만하고 날카로웠던 사법연수원 2년 차의 봄이었다.

머릿속이 차갑게 가라앉는 것과 동시에, 망막 위로 기이한 반투명 빛무리가 아른거리며 글자들이 영혼에 각인되듯 떠올랐다.

[ 리갈 레저(Legal Ledger) 가동 ] [ 자산: 미래 판결 정보 (조회 가능) ] [ 부채: 인과율 오차 0.0% ]

‘이건…….’ 전생의 기억과 함께, 머릿속의 장부가 실시간으로 요동치며 눈앞의 상황을 분석해 내기 시작했다.

[ 분석 대상: 김종식 교수 제시 모의 사건 ] [ 쟁점: 피고인의 횡령 및 배임 혐의에 대한 법리 적용 ] [ 미래 판결 장부 조회 결과: 대법원 전원합의체 판결(201X도XXXXX)에 따른 무죄 전향 사건. 그러나 김종식은 도원회의 사주를 받아 특정 기업을 옹호하기 위해 고의로 왜곡된 하급심 판례를 정답으로 강요 중. ]

태혁의 입꼬리가 비틀려 올라갔다. 도원회. 회귀 전 자신을 사냥개처럼 부려 먹고 끝내 사형수로 만들어 버린 사법 카르텔의 끄나풀이 바로 눈앞에 있었다. 김종식은 이 모의재판 발표를 통해 태혁의 점수를 깎아내리고, 연수원 내에서 그를 매장하려는 음모를 꾸미는 중이었다.

“강태혁. 대답이 없군. 자네가 제출한 검토보고서는 현행 대법원 기본 판례의 흐름을 전혀 읽지 못하고 있어. 피고인의 배임 고의를 인정하지 않은 2심 판결을 그대로 준용하다니, 이래서야 기본이 되어 있다고 볼 수 있겠나?”

김종식이 안경을 치켜올리며 차갑게 쏘아붙였다. 대강당 내부의 연수생들 사이에서 웅성거림이 퍼져 나갔다.

“역시 강태혁도 별수 없네.” “김 교수님 성향을 전혀 파악 못 한 거 아냐? 저러다 F 학점 맞겠는데.”

동기들의 수군거림 속에서, 앞줄에 앉아 있던 민혜령의 펜 끝이 멈췄다. 단정하게 묶은 머리칼 사이로 보인 그녀의 눈동자가 태혁의 얼굴을 향했다. 평소 원리원칙만을 따지던 수석 후보생다운 차가운 관찰의 시선이었다.

태혁은 단상 마이크를 가볍게 쥐었다. 쇠가 긁히는 듯한 냉소적인 목소리가 강당 안을 가득 메웠다.

“교수님. 질문의 전제부터 틀렸습니다.”

“뭐라?”

“교수님께서 방금 인용하신 98도975 판례는 이 사건과 사실관계가 완전히 다릅니다. 해당 판례는 목적과 용도를 정하여 위탁한 자금에 대한 것이나, 본 사건의 피고인이 처분한 자금은 '공동 사업 목적의 출자금'입니다. 출자금의 소유권은 조합에 귀속되므로, 이를 임의 소비한 행위는 횡령죄가 아니라 단순 배임죄의 성립 여부만을 따져야 합니다.”

태혁의 막힘없는 속사포 설명에 김종식의 미간이 좁아졌다.

“그, 그것은 단순한 학설의 대립일 뿐……!”

“학설이 아닙니다. 대법원의 확고한 태도입니다.”

태혁은 눈앞에 떠오른 리갈 레저의 텍스트를 그대로 읽어 내리듯, 한 치의 오차도 없이 법조문과 판례 번호를 허공에 내던졌다.

<br>

**[ 대법원 2011. 2. 10. 선고 2010도13234 판결 ]**

“동업자 사이에 손익분배 비율이 정해져 있다 하더라도, 출자하여 공동 영업의 재산이 된 자금은 합유(合有) 관계에 있으므로 이를 임의로 소비한 행위는 합유자 전원에 대한 배임죄를 구성할 뿐, 타인의 재물을 보관하는 자의 지위에 있지 아니하므로 횡령죄는 성립하지 아니한다.”

<br>

강당 안이 찬물을 끼얹은 듯 조용해졌다. 김종식의 얼굴이 순식간에 붉게 달아올랐다. 그의 손가락이 미세하게 떨리며 서류철을 꽉 움켜쥐었다.

“자, 자네…… 지금 고작 연수생 신분으로 현직 법관들의 해석을 부정하겠다는 건가?”

“부정하는 것이 아니라 바로잡는 겁니다.”

태혁은 단상 너머 김종식의 눈을 똑바로 쏘아보았다. 사형대 위에서 지옥을 보고 돌아온 자의 눈빛이었다. 날것 그대로의 살기에 김종식이 본능적으로 상체를 뒤로 물렸다.

“교수님께서 집착하시는 그 ‘대법원 판례’는 3년 뒤 전원합의체에 의해 폐기될 운명입니다. 아니, 정확히는 도원회 계열의 로펌이 수임한 특정 사건을 봐주기 위해 기획된 기형적인 판결일 뿐이죠. 법리를 왜곡해가면서까지 피고인에게 무리하게 횡령 혐의를 씌우려는 이유가…… 혹시 다른 곳에 있으신 건 아닙니까?”

“강태혁!!!”

김종식이 책상을 치며 자리에서 벌떡 일어났다. 하지만 대강당 안의 연수생들은 이미 김종식의 과민반응에서 이상함을 감지하고 있었다. 특히 맨 앞자리에 앉은 민혜령은 태혁이 내뱉은 ‘도원회’라는 단어에 눈을 가늘게 뜨며, 거칠게 요동치는 심장을 진정시키려 애썼다. 그녀의 아버지가 죽기 전 마지막으로 남겼던 의문의 단어가 바로 그것이었기 때문이다.

민혜령의 펜이 공책을 강하게 짓눌렀다. ‘강태혁…… 저 남자는 도대체 뭘 알고 있는 거지?’

김종식은 턱밑까지 차오른 호흡을 가다듬으며, 핏발 선 눈으로 태혁을 노려보았다. 수백 명의 눈이 지켜보고 있는 마당에 여기서 더 논쟁을 벌이다가는 자신의 밑천뿐만 아니라 배후의 실체까지 드러날 판이었다.

“……오늘 발표는 여기까지 한다.”

김종식이 가까스로 목소리를 억누르며 차갑게 선언했다. 그는 서류를 거칠게 챙겨 들고 단상을 내려가기 직전, 마이크에 대고 깊고 낮은 목소리로 읊조렸다.

“강태혁 연수생. 자네의 그 오만한 법리 해석이 실무에서도 통할 수 있을지…… 내 개인 연구실에서 직접 검증해 주지. 발표가 끝나는 대로 즉시 교수 연구실로 오게.”

호출이었다. 단순한 훈계가 아닌, 덫으로 끌어들이려는 맹수의 으르렁거림.

김종식이 강당 문을 열고 나가자마자 연수생들의 시선이 일제히 태혁에게 쏠렸다. 하지만 태혁은 오히려 차가운 미소를 짓고 있었다.

[ 띠링! ] [ 인과율 오차 변동 없음: 0.0% ] [ 퀘스트 진행도 업데이트: 김종식의 개인 연구실 내 '진안정밀' 비자금 세탁 메모의 위치가 활성화됩니다. ]

‘스스로 호랑이 굴의 문을 열어주는군.’

태혁은 단상을 내려와 느긋한 걸음으로 강당 문을 향해 걸어갔다. 그의 뒤로, 민혜령의 집요한 시선이 끝까지 달라붙어 떨어질 줄 몰랐다.

다음 화 계속 보기 →

댓글을 남기려면 로그인 하세요.