Scala — 함수형과 객체지향이 같은 동전의 두 면임을 증명한 언어
Entity (인물·조직)lectureverified2026-05-09

Scala — 함수형과 객체지향이 같은 동전의 두 면임을 증명한 언어

#vch#lecture-intro#A-language#g6

1. 요약

Scala는 2001년 EPFL의 Martin Odersky가 설계를 시작해 2004년 1월 공개된 JVM 언어다. Odersky의 학술 논문 명제는 "객체지향과 함수형은 같은 동전의 두 면이며 통합되어야 한다" 였다. 이름은 "scalable language" 의 줄임이다. Odersky는 자바 1.5의 generics 도입에도 핵심 기여한 인물이다.

2. 배경 — Java의 표현력 한계

2000년대 초 Java는 산업계 OOP 표준이었지만 boilerplate 가 많고 함수형 표현이 어려운 한계가 있었다. Odersky는 Java 호환성을 유지하면서 함수형 표현력을 기록하는 언어 를 목표로 박았다.

이는 1990년대 Pizza·GJ 같은 Java 확장 실험의 연장선이었다. Odersky는 그 경험으로 학술 정형성과 산업 실용성의 균형 을 기록하는 데 능숙했다.

3. 핵심 특징

  • JVM compatibility — Java 라이브러리·생태계 그대로 사용 가능
  • Unification of OOP + FP — 모든 것이 객체이면서 함수도 일등 시민
  • Pattern matching — Haskell 스타일의 강력한 매칭
  • Implicits — 컨텍스트 매개변수와 타입 클래스의 융합
  • Type inference — 학술적 정형성을 산업에 도입
  • Actor model (Akka) — Erlang의 영향을 JVM에 기록

4. 주 용도

  • 2004~2010: 학술·언어 연구·EPFL 교육
  • 2010~2015: Twitter·LinkedIn·Foursquare — 백엔드 대규모 도입. "better Java" 로 불림.
  • 2010~현재: Apache Spark (UC Berkeley AMPLab, 2010) — 빅데이터 처리의 표준. Scala로 짜여 있음.
  • 2015~현재: 함수형 백엔드(Cats·ZIO·Akka)·Kafka 스트림·금융

5. 시대 설계 도구 매핑

Scala는 "강한 타입 시스템 + 함수형" 이 산업 도구로 기록된 첫 사례다. 같은 시기 Java는 Spring Framework·Hibernate프레임워크가 설계를 기록하는 길을 갔다면, Scala는 언어 자체가 설계를 기록하는 길을 갔다.

이는 설계 위치의 두 갈래 를 보여준다.

  • 프레임워크 안에 설계 → 학습 곡선 낮음, 유연성 낮음 (Java/Spring)
  • 언어 안에 설계 → 학습 곡선 높음, 표현력 높음 (Scala/Cats)

산업계는 결국 둘 다 가져갔다 — 거대 시스템은 Java/Spring, 데이터·금융 분야는 Scala/Spark.

6. 강의 활용

Scala는 "두 패러다임을 통합하면 새로운 길이 박힌다" 를 보여주는 사례다. OOP와 함수형을 분리해서 보던 시대에, Odersky는 둘이 같다 는 학술적 통찰을 산업 언어로 박았다.

이는 Vibe Coding 시대의 메시지와 직결된다. "코드와 자연어 프롬프트가 같은 설계의 두 면" 이라는 통찰이 LLM 시대를 열었다. Scala가 30년 전 OOP-FP 통합을 박았다면, Vibe Coding은 코드-프롬프트 통합 을 기록한다.

또한 Apache Spark의 성공은 "잘 설계된 언어 + 잘 설계된 추상" 이 빅데이터 산업을 바꿨다는 점을 보여준다. Spark의 RDD·DataFrame 추상은 Scala의 함수형 타입 시스템 위에 기록되어 있다. 언어 설계가 곧 산업 설계의 토대 가 된 사례다.

Scala 3 (Dotty, 2021)는 더 원리에 충실한 방향으로 박혔는데, 이는 학술적 정형이 결국 산업으로 흘러간다 는 흐름의 증거다. 강의에서 "오늘 학술의 변두리가 10년 후 산업의 중심이 된다" 는 메시지를 전할 때 좋은 사례다.

출처

그룹 시리즈

synthesis/group-g6 (시대 그룹 종합 카드)