🤯 툴친자의 기록 시도의 기록 : 개인적인 용도 편
·
💬 Smalltalk
들어가며시간이 점점 빨리 가는 것 같습니다.2024년도 이제 막 마무리를 하고 있고, 1년의 기록들을 되돌아보는 시즌이 왔습니다. 언제고 쓰고싶었던 소재가 있었는데, 바로 기록에 대한 이야기였습니다.매년 연말에 다른 다이어리를 사고 그 다이어리를 1개월쓰고 멈췄을 고등학생 시절부터 저는 기록에 미쳐있었고1년을 다 채우기 힘들었던 다이어리를 처음으로 꽉 채울만큼 익숙해졌을 즈음 사회인으로서 일을 시작했었습니다. 늘 일복이 넘쳐 흘렀던 지금으로서는 한정된 시간에 얼마나 많은 일을 집중해서 할 수 있는가에 많은 시도들을 합니다. 기록에 있어서도 이런저런 시도들을 했었는데요.오늘은 그 변천사와 시도에 대해서 정리해보려고합니다. 저와 같은 목적으로 기록을 시도하는 분들이 이 글을 보고 아이디어를 얻어가셔도 좋을 ..
코틀린에서 Mutex, Semaphore 써보기
·
✔️ Kotlin
보호되어 있는 글입니다.
Kotlin의 Scope function`filter, map, let, apply, also, run` 를 적절하게 써보자
·
✔️ Kotlin
얼마전 PR리뷰 받을 때, 코드에서 `let` 보다는 `run`이 어울린다는 리뷰를 받은 적이 있습니다.제가 이것을 크게 구별하지 않고 감(...)으로 사용하고 있었다는 것을 그제야 알아챘죠.이번 기회에 kotlin 내장 확장함수를 어떻게 쓰면 좋고 어떻게 동작하는가 짚어보려고합니다. 코틀린을 쓰다 보면 함수형 프로그래밍을 자연스럽게 접하게 됩니다.그중에서도 이 함수들은 특히나 유용해서 코드를 간결하게 만들어주고, 생산성을 엄청 높여주기 때문에 잘 알아두면 좋을 것 같아요. Scope function 이란?Kotlin 표준 라이브러리에 포함된 함수들입니다.이 함수를 호출하면 임시 코드 범위가 형성되며 이 범위에서는 익명 객체 액세스할 수 있습니다.공통적으로 참조한 객체의 원본은 건드리지 않고, 새로운 객..
나는 어떻게 살아왔나 🗺️📍🧭
·
💬 Smalltalk
들어가며오랜만에 포스팅을 하면서 이렇게 거창한 제목을 붙이니, 민망하기도 하네요 👀이 글은 글또 10기 지원을 위해 작성을 시작한 글입니다.  처음에는 조용히 다른 링크를 통해 제출하려고하였는데요.글을 작성하다보니 기록할만한 글인 것 같아서 포스팅해둡니다.  자기소개가 미숙한 사람😇은 항상 자기소개할 것을 찾습니다.이 글을 쓰기 시작하면서 문득 떠오른 때가 있습니다. 지금은 개발을 업으로 삼고 있지만 갓 스물이 되었을 때의 저는 학문에 심취한 사회과학도였는데요. (물론 지금은 관련해서 하나도 기억나는 게 없네요 ㅎㅎㅎ)'자기소개' 라고하면 학부생 2학년 시절 사회학 세미나에서 적었던 자기소개가 가장 먼저 떠오릅니다.일반적인 자기소개보다 더 심도있게 어떤 성장 환경과 사회적 맥락에서 지금의 내가 되었는..
Test: Test Container 도입 이후 겪은 문제들 😱 (느려진 테스트, 동시성 문제 등 해결하기 at: Kotlin Exposed + Kotest)
·
💪 Practice
들어가며최근 회사에서 자진해서 욕심내어 했던 사례를 하나 소개합니다.테스트 컨테이너를 도입하여 실제 서비스 DB인 postgresql로 테스트를 할 수 있도록 하는 일이었습니다. 프로젝트의 테스트 DB가 h2 인메모리로 사용 중이었는데요. 도입하기 매우 가볍고 빠르다는 장점이 있었지만, 여러 단점들도 많았습니다.대표적으로 있었던 단점이 이런것들이 있었는데요.H2에서 테스트할 수 있는 쿼리만 사용할 수 있음.`ON CONFLICT` 등의 쿼리는 사용할 수 없음.`DISTINCT`을 사용할 때 H2에서는 동작하던 쿼리가 Postgresql에서는 오류를 일으키기도 함.Postgresql에서 사용하던 설정이나 컬럼 등을 사용할 수 없음.위의 이유 때문에 테스트를 신뢰할 수 없는 경우도 종종 생겼습니다.  매번 ..
K8s : Master node에 Pod 가 스케줄링 되지 않는 이유
·
☁️ Infra
들어가며쿠버네티스를 처음 공부하게 되면 Master node와 Worker node에 대한 개념부터 배우기 시작합니다.처음 그 개념을 익히며 왜 마스터 노드에는 파드가 스케줄링되지 않을까, 파드를 띄우는 방법은 없을까? 궁금했었습니다. 쿠버네티스에서 Master Node에 Pod가 스케줄링되지 않는 이유는 여러 가지가 있지만, 가장 주된 이유는 Master Node의 안정성과 성능을 유지하기 위해서입니다.이를 구현하기 위해 쿠버네티스는 `Taints`와 `Tolerations`라는 메커니즘을 사용합니다. Taints와 TolerationsTaints와 Tolerations는 노드와 파드 간의 특정 조건을 설정하여 특정 파드가 특정 노드에 스케줄링될 수 없도록 하거나, 특정 조건을 만족하는 경우에만 스케줄..