아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
데브시스터즈 favicon데브시스터즈

스칼라 컴파일 속도, 이렇게 개선하세요!

by DD
2024-12-17
1년 전
조회수 10

Typeclass 인스턴스 정의 위치 변경을 통해 컴파일 시간 30% 단축 효과를 얻음

Build Pipelining 적용으로 서브 프로젝트 간 병렬 컴파일을 가능하게 함

매크로 사용 시 Build Pipelining 적용에 주의, exportPipelining 설정 필요

Typeclass 인스턴스 정의 위치 최적화

Typeclass 인스턴스를 Companion Object에 정의하면 컴파일러가 인스턴스를 찾는 시간을 줄일 수 있다. 구체적으로, Implicit 검색 시간을 줄여 typer 페이즈의 속도를 향상시킨다. 따라서, 컴파일 속도 개선을 위해 Typeclass 정의 위치를 전략적으로 관리해야 한다.

Build Pipelining의 장단점

Build Pipelining은 서브 프로젝트 간 병렬 컴파일을 가능하게 하여 전체 빌드 시간을 단축시킨다. 반면, 매크로 사용 시 Pipelining 적용에 주의해야 한다. 따라서, 매크로 의존성을 고려하여 exportPipelining 설정을 적절히 조정해야 한다.

실전 적용 가이드: 컴파일 속도 개선

프로파일링 도구를 활용하여 Implicit 검색 시간을 분석하고, scala-profiling을 통해 Flamegraph를 확보한다. 구체적으로, Typeclass 사용 비중을 파악하고, Companion Object로의 이동을 검토한다. 결과적으로, 컴파일 시간 단축과 개발 생산성 향상을 기대할 수 있다.

스칼라 컴파일 속도 빠르게 하기
중급
아키텍처
Scala
sbt
Backend
원문 읽기
원문 읽기

관련 추천 글

Scala, 유럽 정부 펀드로부터 투자 유치! 생태계 강화 기대

레딧 로고

Netflix, 실시간 서비스 토폴로지 구축 노하우 공개

넷플릭스 로고

당근, 200+개 DB 마이그레이션 자동화 플랫폼 구축 성공!

당근 로고

Mill 1.1.0, JVM 프로젝트 설정을 더 쉽게!

레딧 로고

언어 설계, 라이브러리, 무엇이 더 중요할까?

해커뉴스 로고

데브시스터즈 엔지니어링 데이: 게임 서버 기술 공유 행사 리뷰

데브시스터즈 로고

댓글 0

첫 번째 댓글을 남겨보세요!
데브시스터즈 favicon데브시스터즈
중급
아키텍처
Scala
sbt
Backend

관련 추천 글

Scala, 유럽 정부 펀드로부터 투자 유치! 생태계 강화 기대

레딧 로고

Netflix, 실시간 서비스 토폴로지 구축 노하우 공개

넷플릭스 로고

당근, 200+개 DB 마이그레이션 자동화 플랫폼 구축 성공!

당근 로고