글 목록
-
Study
일 잘하는 사람이 되기 위해 내가 기억할 것
직장 뿐만 아니라 공동의 목표를 공유하고 있는 조직에서나와 조직 모두에게 가장 효율적인 결과를 위해 내가 할 수 있는것(내가 부족하고 고쳐야 할 것)그것은"문제 공유하고 도움 요청하기"다시 말해,내가 막힌 부분에 대해, 더 잘하고 뾰족한 사람의 도움을 받기+내가 못한 이유에 대해 다른 사람들에게 책임 전가(?)하기 → 모두와 책임 나눠 갖기 이게 왜 어렵냐신입들이 조직에서 아주 흔히 겪는 문제로 이런 것이 있다고 한다일 할당받고 함 → 밀릴 것 같음(5일동안 5를 해야 하는데 1일 남았는데 2밖에 못함) → [(내가 맡은 것은 최대한 열심히 하는 모습 + 해내는 모습) 보여주고 싶다 + 조직원들의 신뢰를 깨뜨릴 수 없다, 난 해낼 수 있다 등]의 이유로 어떻게든 몸 혹사시켜서라도 해내려고 함 → 실패 (..
-
Study
쿠폰 발급 동시성 제어 프로젝트
선착순 쿠폰 발급 동시성 제어(로 알아보는 잠금 방식)선착순 쿠폰 발급 시스템을 만들면서, 동시 요청 환경의 경합 상태를 해결하는 작업을 담당했다.개발은 Kotlin 과 SpringBoot 로 진행했다. 개발 및 테스트 과정 중에는 인메모리 DB(H2)를 사용했고, MySQL 은 마지막에 가서야 붙였다. 네트워크 왕복 비용도 없는 인메모리 데이터베이스를 사용한 덕분에 운영 상에서 각 잠금 방식에 어떤 차이가 있는지 영영 모르고 지나갈 뻔 했다.당연하게도 동시에 쿠폰 발급 요청을 보냈을 때, 같은 쿠폰이 중복 발급되고 남은 재고 수량에 오차가 생겼다. 1,000건을 보내면 요청 수의 2~30% 정도의 비율로 오차가 발생했다. 여러 스레드가 같은 재고(차감 전의 재고)를 동시에 읽고 각 스레드가 아직 재고가..
-
Study
무엇을 단위로 볼 것인가?
단위 테스트란?단위 테스트란 무엇일까? 당장 구글에 단위 테스트를 검색하면 '가장 작은 단위의 코드 블록(함수 또는 메서드)을 검증하는 테스트'라는 설명이 보편적이다. 나도 그렇게 알고 있었고, 실제로 그렇게 많이 알려져 있는 듯 하다. Classicist, Mockist그런데 최근에 단위 테스트란 무엇인가를 정의하는 두 학파(클래시스트(Classicist), 모키스트(Mockist)) 가 있다는 것을 알게 됐다. 대뜸 처음 듣는 말이어서 두 학파의 이야기를 알아보았다. 두 학파가 다르게 보는 것은 '무엇이 단위인가?' 에 대한 것이다. 여러 가지 차이가 있지만, 근본적으로 단위를 보는 관점이 다름으로부터 오는 차이들이다. Classicist 는 단위를 [관련 클래스들의 모음] 으로 정의한다. 이는 너무..
-
Study
가족 아카이브
가족 아카이브를 만들면서우리 가족은 평일에는 대부분 흩어져서 지내고, 대신 1년에 두세 번 정도로 자주 다 같이 여행을 간다. 그런데 그렇게 찍은 사진들은 각자의 폰 갤러리에, 또는 여러 개의 단톡방에 흩어져 있었다. 즉, 가족이 함께 쌓아온 히스토리를 한군데 모아두고 같이 들여다볼 공간이 없었던 것이다. 또, 톡방에 올라온 사진은 업로드된 그 순간만 보게 되고, 대화에 밀려 올라가고 나면 거의 찾아보지 않게 된 채로 만료기간이 지나는 일이 허다했다. 이런 것들이 문제로 여겨져 가족 아카이브를 기획하게 되었다.그래서 가족 8명이 사용할 가족 아카이브를 만들었다. 배포/사용/피드백/개선/배포 루프를 벌써 여러 번 돌았다. 그 안에서 가족들의 목소리로 서비스가 변화하는 모습들을 담아 보았다.기획: MVP를 ..
-
Study
DDD 는 silverbullet일까?
DDD는 silverbullet일까?DDD(Domain-Driven Design)는 그때나 지금이나 개발자들 사이에서 최고의 해법처럼 회자되는 방법론이다. 정확한 뜻을 몰라도 이름만으로 뭔가 있어 보이는, 오히려 초심자 입장에서 더 끌리게 되는, 그런 매력을 가진 이름이라고 생각한다. 프로젝트 당시 나 또한 그에 끌리는 사람 중 한명이었기 때문에, 프로젝트에 DDD를 도입하자는 팀원들의 제안을 마냥 뿌리치기가 힘들었다.본격적으로 도입을 준비하면서 공부를 시작했는데, 조금씩 의문이 생기기 시작했다. "우리 프로젝트에서 사용해도 괜찮은가?" "DDD를 해서 우리가 실제로 얻는 게 뭘까?" 하는 질문들이었다. 나도 DDD 전문가는 아니었기 때문에 아키텍처 경험이 있는 지인에게도 조언을 구했는데, 원칙 수준의 ..