역할론

꽤 예전부터 나는 역할론을 주장해왔다. 오늘은 이런 내 생각에 대해서 이야기하고 싶어서 글을 쓴다.역할이란관계에 맞는 행동양식을 지키는걸 역할이라고 부른다 생각한다. 다르게 이야기하면 역할에 충실한 관계가 좋은 것이다.사랑하기 때문에 연인이 되지만, 연인이기 때문에 사랑을 나눠줘야만한다. 끊임없이.낳았기 때문에 부모가 되지만, 부모이기 때문에 무한한 사랑과 훈육을 나눠줘야만한다. 다 클때까지.그래야만 관계가 건강하게 유지될 수 있다. 역할에 맡게 행동할 수 없다면 결국 관계가 변하게 된다. 역할을 유지할 수 없는 이유하지만 우리는 항상 같은 관계를 유지하기는 어렵다. 친구를 예로 들면, 함께 있을때에 즐겁고 그 사람이 하는 것을 응원해줄 수 있을때 우린 친구고 우정을 나눌 수 있다. 그러나 더 깊은 우..

나의 생각 2025.04.20 0

테스트 하기 좋은 코드, 좋은 테스트 코드

이 글을 쓰는 이유 좋은 테스트 코드, 테스트하기 좋은 코드에 대해서 고민하다가 든 생각을 공유해보고자 적습니다. 테스트 하기 좋은 코드 1. 블랙박스 테스트할때 비즈니스 로직의 결과를 단언할 수 있는 코드가 테스트 하기 편하다. 비즈니스로직과 persist 작업이 한번에 이뤄지고 "OK"나 Unit 과 같은 결과물만 내놓으면 stubbing으로 내용이 잘 돌아갔음을 증명해야하고, 이렇게 되면 레포지토리 레이어까지 내려가서 테스트해야한다. "버그 없음"은 테스트 코드를 통해서 증명할 수 있는게 없기 때문에, return을 받아서 결과를 볼 수 있도록 되어있는게 편한 것 같다. 파라미터로 넣은 객체를 확인하는 방법도 있지만, 객체는 Immutable하게 유지해주는 편이 좋기 때문에 비즈니스 로직은 묶어서 ..

Kotlin 2024.01.15 0

스프링 컨테이너

기존에 사용했던 Nest.js와 Flutter 에서 의존관계를 관리했던 방법 Nest.js를 쓰거나 Flutter 로 어플리케이션 개발을 할때는 DI를 구현해서 사용했다. Flutter 로 DI를 구현해서 사용했을때에는 Service Locator라는 라이브러리를 사용해서 어플리케이션 실행 시점에 ServiceLocatorInitializer(가칭)에서 의존관계를 조립해서 모든 의존관계를 ServiceLocator에 주입해두고 꺼내서 썼다. 어디에서 어떻게 의존관계가 관리되는지는 명확했다. Nest.js를 쓸때는 초기화된 결과들이 저장되는 곳은 몰라도, @Module을 통해서 어떤 모듈이 서로 참조하고, 노출되는 Provider는 어떤것이 있는지 알 수 있었다. 스프링은 어떻게 의존관계를 관리하지? 내가..

Spring 2023.01.24 0

IR compiler란?

이 글을 쓰는 이유 코틀린 진영은 지금까지 멀티플랫폼을 노리고 있는 언어입니다. 여러 환경에서 돌아갈 수 있도록 하겠다는 것인데요. JVM뿐만 아니라, WASM, JS, Native Platform등에서 돌아갈 수 있는 언어를 만드려고 하고 있습니다. 하지만 대부분 사람들이 멀티플랫폼에서 돌리려고 하기보다는 JVM 원툴로 사용하고 있기 때문에 그리고 JVM에서 굴러가서 쓰는 사람들이 대부분이기 때문에 멀티플랫폼에 관련된 글을 적어서 이런 시도를 하고 있다! 라는 것을 알리고 싶었습니다. 그래서 IR 컴파일러가 뭔데? IR컴파일러는 Kotlin IR(intermediate representation, 중간표현)으로 컴파일을 해주는 친구입니다. 자바가 바이트코드로 바꾸고 이걸 jvm위에 올려서 굴리는 것처럼..

Kotlin 2024.01.04 0