pile·
백엔드·데브시스터즈devsisters·

스칼라 컴파일 속도 빠르게 하기

문제쿠키런:킹덤 서버 Scala 프로젝트가 커지면서 typeclass implicit 검색과 매크로로 컴파일이 느려져 개발 생산성이 떨어졌다.

접근`-Vstatistics:typer`와 scala-profiling 플레임그래프로 병목을 측정하고, typeclass 인스턴스를 companion object에 정의해 implicit 검색 범위를 줄인다. `ThisBuild / usePipelining := true`로 빌드 파이프라이닝을 켜 서브프로젝트를 병렬 컴파일한다.

결과typer 페이즈 비중이 67.1%에서 52.8%로, 컴파일 시간이 65초에서 45초로 1.44배 빨라졌다. 파이프라이닝까지 더해 전체 빌드가 1.22배 추가 개선됐다.

데브시스터즈
데브시스터즈 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·네이버페이네이버페이·

    Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록

    문제Spring Data JDBC 의 Composite ID 적용을 위해 Spring Boot 3.5 → 4.0.1 업그레이드 시 Spring Batch, Kotlin, Jackson 등 전체 스택 메이저 전환 필요.

    접근Spring Boot 4 / Spring Batch 6 / Spring Framework 7 / Kotlin 2.3 / Jackson 3 / Kotest 6 / Gradle 9 / ojdbc11 순차 업그레이드. Composite ID 는 Persistable 인터페이스로 구현, JdbcDefaultBatchConfiguration 상속으로 메타데이터 저장.

    결과기술 부채 해결 + 장기 유지보수성 개선. 운영 DB 접근 정책 충돌을 사전 식별해 안정적 배포 달성.

    #kotlin#spring#spring-boot+3