본문 바로가기

전체 글

(25)
Spring IoC IoC란?Spring은 기본적으로 IoC 개념을 사용한다.IoC(Inversion of Control)는 객체의 생성과 의존 관계 관리의 제어권이 개발자 코드가 아니라 외부 컨테이너로 넘어가는 것을 의미한다. DI(Dependency Injection)는 이러한 IoC를 구현하는 대표적인 방법으로, 객체가 사용할 의존 객체를 직접 생성하지 않고 외부에서 주입받는 방식을 말한다.bookController와 bookService가 있다고 해보자. IoC를 사용하지 않았을 때에는 bookController에서 bookService를 호출하기 때문에 bookController에서 bookService 객체를 생성해서 사용하게 된다.class BookController { fun reserveBook() {..
Task 'prepareKotlinBuildScriptModel' not found in project 프로젝트를 하다가 아래와 같은 문제를 만난 적이 있다.Task 'prepareKotlinBuildScriptModel' not found in project ':api'이 문제에 대해 원인과 해결 방법을 찾아본 결과, 다양한 원인과 그에 따른 해결 방법이 있지만 내가 겪은 케이스에 대한 원인과 해결 과정을 기록으로 남기려고 한다.상황프로젝트를 하다가 멀티모듈로 전환하는 단계였고, api 모듈을 추가했다.CLI에서 ./gradlew api:build는 정상 동작했지만, IntelliJ에서 Gradle 프로젝트를 동기화하는 과정에서 해당 에러가 발생했다.prepareKotlinBuildScriptModel Task라는 것은 무엇일까?prepareKotlinBuildScriptModel은 IDE가 Kotlin..
Kotlin Coroutine Builder Coroutine Builder란?코틀린에서는 코루틴을 이용하여 비동기 프로그래밍을 할 수 있다.코루틴을 이용하여 프로그래밍을 하기 위해서는 코루틴을 만들어야 한다. 이 때, 코루틴 빌더를 통해서 코루틴을 만들 수 있다.많은 코루틴 빌더가 있지만 많이 사용되는 launch, async, runBlocking에 대해서 살펴보자.launchlaunch는 코루틴을 시작하는 코루틴 빌더이다.import kotlinx.coroutines.*fun main(args: Array) { val scope = CoroutineScope(Dispatchers.Default) scope.launch { printCount(1) } scope.launch { printCount(..