
개발을 하면서, 효율적인 SQL을 작성하기에 앞서 SQL 에 대해 더 친근해지고자!!예전에 프로그래머스에 있는 SQL 문제를 모두 풀었습니다. 저만 알기보다, 각 게시글을 Lv 1에서 5까지하여 모든 문제의 답을 공유하고자합니다. (참고로 기본적인 데이터베이스 지식과 함께 SQL을 공부한다면,따로 SQLD를 학습하지 않아도 쉽게 따실 수 있습니다!! 따로 준비 안하고 땄습니듯! ) 모든 레코드 조회하기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSELECT * FROM ANIMAL_INSORDER BY ANIMAL_ID 역순 정렬하기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Tota..

이번에는 코루틴에서 스코프를 열때, 코루틴을 실행할 때! 사용하던 Dispatcher에 대해 알아보고자 한다. 먼저, launch 로 실행할 때 인수로 넣을 수 있는 Dispatcher를 다 넣고 실행해 보았다.실행했을 때 주석과 같은 이름의 스레드가 동장함을 알 수 있었다. 과연 이 스레드들의 이름은 왜 다른걸까? 그리고 디스패처란 뭘까? fun main(){ runBlocking { launch { logging("1") //main - 2025-03-16T00:02:03.997624900 : 1 } launch(Dispatchers.Default) { logging("2") ..

이 장에서는 일시 중단 함수의 구성에 대한 다양한 접근 방식을 알아보고자한다.Suspend Function는 순차적이다?(Sequential)다른 곳에 정의된 두 개의 일시 중단 함수가 원격 서비스 호출이나 계산과 같은 유용한 일을 한다고 가정해 보겠다. (각각 1초 동안 지연한다.) 그럼 이 두 함수를 사용한다면 결과는 어떨까? suspend fun doSomethingUsefulOne(): Int { delay(1000L) return 13}suspend fun doSomethingUsefulTwo(): Int { delay(1000L) return 29}val time = measureTimeMillis { val one = doSomethingUsefulOne() ..

그런데 궁금하다.어떻게 코루틴을 정지시키는가?정확히는 어떻게 원리로 코루틴이 되어 있기에 상태를 감지하고 정지하는걸까? 이제 그 해답을 찾아보고자 한다. 코루틴 스코프?코루틴스코프를 직접 원문을 가져오면 이러하다. /** * 주어진 코루틴 [context]를 감싸는 [CoroutineScope]를 생성합니다. * * 만약 주어진 [context]에 [Job] 요소가 포함되지 않았다면, 기본적으로 `Job()`이 생성됩니다. * 이렇게 하면, 이 스코프 내의 어떤 자식 코루틴이 실패하거나 스코프 자체가 [취소][CoroutineScope.cancel]되었을 때, * [coroutineScope] 블록 내부에서와 마찬가지로 스코프의 모든 자식이 함께 취소됩니다. */@Suppress("FunctionN..

이번에는 코루틴에서 취소와 타임아웃 그리고 어떻게 취소가 가능한지 구조에 대해 알아보고자 한다.코루틴 실행중에 어떻게 취소하지?애플리케이션의 실행 중에, 백그라운드 코루틴에 대한 세분화된 제어가 필요할 수 있다. 예를 들어 MSA환경에서 다른 서버에 필요한 데이터를 동시 요청하다가, 의도치 않은 실패에 의해 , 더 이상 필요하지 않아져 작업을 취소할 수 있다. 이를 위해 launch 함수는 실행중인 코루틴을 취소하는데 사용할 수 있는 job을 반환한다. job의 cancel과 join 함수를 통해 코루틴을 정지할 수 있다. val job = launch { repeat(1000) { i -> println("job: 잠깐 잠 좀 잘게요 $i ...") delay(500..

코루틴이 뭔가요?코루틴은 잠시 중단 가능한 연산의 인스턴스라고 볼 수 있다. 개념적으로 스레드와 비슷한데, 예를 들어 하나의 스레드는 고양이 밥을 주고, 다른 하나의 스레드는 고양이 화장실을 치울 수 있다. 이 작업들은 병렬적으로도 가능하고, 동시적으로도 가능하다.참고: 병렬은 각 작업이 다른 주체에서 실행되는 것이고, 동시는 주체에 상관없이 다른 작업과 함께 수행되는 것을 의미한다.코루틴에서는 이러한 작업 단위를 코드 블록으로 분리하여 동시적 실행이 가능하도록 한다.코루틴의 간단한 동작과정 fun main () = runBlocking{ launch { delay(1000L) println("World!") } println("Hello")}이 코드를 처음 ..

코틀린을 학습하면서, 언어 레벨에서 제공하는 비동기 및 동시성 프로그래밍 기능인 코루틴에 대해 궁금해졌다. 그런데 학습을 하려고 검색을 하니, 주구장창 다들 책을 읽다가.. 다른 이야기를 하거나.. 해당 객체가 무슨 의미로 사용하는지 자세한 설명을 빼먹거나.. 읽다가 답답한 마음만이 커져서 학습이 어려웠다. 그래서 그냥 원문을 읽고 궁금한 것들에 대해 추가적인 글을 쓰면서 학습하고자 한다. https://kotlinlang.org/docs/coroutines-guide.html Coroutines guide | Kotlin kotlinlang.org 자 이제 코루틴 여행 시작이닷.

오랜만에 회고를 적는다. 현재 나의 일상은 이러하다. 📌 현재 나의 일상기상 → 이불 개기 → 식사 → 설거지 → 청소 → 빨래 → 세수 → 고양이랑 놀기 → 개발 공부 → 운동 → 샤워 → 취침군대보다 더 규칙적인 백수 생활을 하고 있다. 또한, 꾸준한 학습과 규칙적인 삶은 나도 모르는 사이에 성장을 하게 만들고 있다. (어머니께서 집사둔거같다고 매우 좋아하시는건 안비밀) 📌 주변의 변화와 감사함주변 분들이 하나둘씩 취업하면서, 고마웠던 기억을 담아 편지나 기프티콘을 보내주신다.(간호학과 동기 친구들도 취업할 때 저렇게 연락해줬었는데) 함께 성장했던 동료분들이 좋은 소식을 전해주실 때마다 기분이 좋다.하지만 문득, 스스로에게 이런 질문을 던지게 된다."그럼 지금의 나는 올바르게 성장하고 있..