데
데브시스터즈
August 9, 20221회
9가지 프로그래밍 언어로 배우는 개념: 2편 - 다형성

간단 소개
다양한 프로그래밍 언어에서 다형성을 구현하는 방법들을 비교 분석하고, 각 기법의 장단점 및 한계점을 설명합니다.
AI Summary
- 다형성의 중요성 및 다양한 구현 방식
- 다형성은 코드 재사용성을 높이고 코드 양을 줄이는 데 기여
- 객체 지향 프로그래밍 외에도 절차적, 함수형 프로그래밍 언어에서도 지원
- 오버로딩, 인터페이스, 제네릭, 타입 클래스 등 다양한 다형성 기법 존재
- 다양한 다형성 기법 비교 및 언어별 지원
- 오버로딩은 함수명 중복 정의를 통해 추상화에 기여하지만 남용 시 직관성을 저해할 수 있음
- 인터페이스는 추상 메서드와 구현을 포함하며 다형성 구현에 널리 사용되지만, 자기 타입 메서드 선언 및 정적 메서드 추상화에 제약이 있음
- 제네릭은 타입 안정성을 제공하며 자료 구조에서 주로 사용되지만, 상속 기반 언어에서는 활용도가 제한적일 수 있음
- 타입 클래스는 타입과 분리된 함수 구현을 통해 상속 문제에서 자유롭고 정적 메서드 문제 해결
- Variance 및 인터페이스의 한계
- Variance는 제네릭 타입 간 타입 캐스팅의 안전성을 검증하며, 공변성(Covariant), 반공변성(Contravariant), 불변성(Invariant)으로 구분됨
- 인터페이스는 자기 자신의 타입을 사용하는 메서드 선언 불가, 정적 메서드를 추상 메서드로 선언 불가 등의 한계 존재
- Scala와 Rust는 타입 클래스를 통해 인터페이스의 한계를 극복하고, 상속 문제에서 자유로운 다형성 구현 가능
Next Feeds

올리브영 데이터 엔지니어링
올리브영의 데이터 엔지니어링은 ETL에서 클라우드 기반으로 확장되었으며, MSA 기반 데이터 서비스 플랫폼으로 진화 중입니다.
데이터 엔지니어링ETLGCP데이터 파이프라인MSA
2022. 8. 8.
올리브영
Redux, Again
React 상태 관리의 어려움 극복을 위해 Redux를 도입하고, Local state 우선 전략과 Hook을 활용한 상태 공유를 거쳐, 결국 Redux의 생산성을 재발견하는 과정.
ReduxReact상태관리HookContext
2022. 8. 8.
VCNC

컬리 검색이 카프카를 들여다본 이야기 1
컬리 검색 시스템에서 카프카 설정 튜닝을 통해 메시지 처리량(스루풋)을 개선하고 불필요한 시스템 동작을 방지한 경험 공유.
카프카레디스리밸런싱max.pollBatch Listener
2022. 8. 8.
컬리

Unity 프로젝트를 위한 Git Hooks 활용
Unity 프로젝트에서 Git Hooks를 활용하여 문제 예방 및 개발 효율성을 높이는 방법과 주의사항을 소개합니다.
Git HooksUnity버전 관리개발 효율성Rust
2022. 8. 2.
데브시스터즈
합성 컴포넌트로 재사용성 극대화하기
합성 컴포넌트 패턴을 사용하여 프론트엔드 컴포넌트의 재사용성과 유연성을 극대화하는 방법에 대한 기술 블로그 글입니다.
합성 컴포넌트재사용성프론트엔드Atomic DesignDialog Modal
2022. 7. 31.
카카오엔터테인먼트FE
합성 컴포넌트로 재사용성 극대화하기
합성 컴포넌트 패턴을 사용하여 재사용성과 유연성을 극대화한 Dialog Modal 구현 사례를 소개하고, prop 기반 방식과의 비교를 통해 장단점을 분석합니다.
합성 컴포넌트재사용성프론트엔드Atomic DesignDialog Modal
2022. 7. 31.
카카오엔터테인먼트FE