This week I Learned 33

주영택·2020년 8월 18일
0

This Week What I Learned

목록 보기
31/50

프로젝트 Loom

최근 가장 핫한(개인적으로) 자바 프로젝트는 GraalVM 과 Loom 이다. 이 중 Loom 은 userland 의 lightweight 쓰레드 구현인 fiber 같은 걸 내장하는 프로젝트로 알고 있다.

Go 언어의 go 명령과 같은 M:N 쓰레드 구현이다. 커널의 스레드를 사용하지 않으니 문맥교환에 자유롭고 아마도 자바스크립트의 async/await 와 다르게 멀티코어를 제대로 활용할 것이다.

코틀린이 기본 라이브러리에서 coroutine 을 지원하는데 프로젝트 Loom 이 정착되면 이 구현은 어떻게 될까 궁금해졌다.

그리고 논의 중인 코틀린 언어 포럼 쓰레드

코틀린의 CPS 스타일 코루틴과 JVM 의 Fiber 는 다른 용도와 다른 구현이라고 한다.

코어 시스템 레이어링

작년에 shared 라는 폴더로 몰아져 있던 비즈니스 핵심 코드를 도메인 별로 분리하였는데 여기에도 계증은 생기고 어떤 모듈은 제 2 의 shared 가 되어가고 있다.

이에 대한 CTO 님의 가이드.

전체적으로 보면 3계층(양파껍질)입니다.

  • inner layer: core-support/core-audit/... middle/outer에 의존성없음.
    core내에서의 infrastructure,util같은 성격
  • middle layer: 서브도메인 core-account/product/.... inner에 의존. outer 의존성없음.
    middle끼리는 의존성없음, core내의 core
  • outer layer: core-report/... 여러 middle에 의존성.

링크들

profile
NodeJS 백엔드 웹 개발자입니다.

0개의 댓글