나는 이렇게 일한다 5

제약 이론을 통해 시스템 개선하기

제약 이론(TOC, Theory of Constraints)은 시스템의 성과를 제한하는 가장 큰 병목을 찾아내고 이를 극복함으로써 전체 성과를 극대화하는 접근법입니다.  이번 글은 [The Goal 당신의 목표는 무엇인가?] 만화판을 읽고, 제약 이론을 어떻게 적용할 수 있을지 생각해보는 글입니다. 우선 가상의 사례를 들어 제약 이론의 적용 과정을 묘사해보겠습니다.   한계에 직면하다최근 작업 속도가 점점 느려지고 있었다. 매일 같은 시간에 일하고 있지만, 성과는 없고 효율성도 떨어진다는 생각이 들었다. 노력은 계속되고 있지만, 진척이 느리다는 것이 점점 더 뚜렷하게 느껴졌다.  병목 찾기작업 흐름을 면밀히 살펴본 결과, 프론트엔드 코드 작성, 특히 사용자 인터페이스(UI) 작업에서 시간이 과도하게 소요..

인앱결제 서버 구현 _ 플레이스토어 편

가이드의 목적 단 하나의 글로 서버의 '플레이스토어 인앱결제'를 구현하는 것이 이 가이드의 목표입니다. 저는 인앱결제를 구현하는 과정에서 공식문서와 여러 글들을 참고했지만 어려움이 많았습니다. 공식문서는 구현보단 스펙 중심으로 나열되어 있었고, 다른 대부분의 글들은 일부 구현 사항만 다루거나 자세히 설명하는 경우가 적었습니다. 그래서 이 가이드를 작성하였습니다. 이 가이드를 통해 여러분은 빠르고 편하게 인앱결제를 구현하시기 바랍니다. 들어가며 - 인앱결제 로직을 '새 구매'와 '갱신', '만료', '취소/재개', '환불'로 나누어 설명합니다. - 인앱 상품 유형은 크게 '소모품'과 '구독상품' 두 가지 종류가 있습니다. - 구현 언어는 Python을 사용합니다. 새 구매 서버가 하는 일 인앱결제 과정에서..

인앱결제 서버 구현 _ 앱스토어 편

가이드의 목적 단 하나의 글로 서버의 '앱스토어 인앱결제'를 구현하는 것이 이 가이드의 목표입니다. 저는 인앱결제를 구현하는 과정에서 공식문서와 여러 글들을 참고했지만 어려움이 많았습니다. 공식문서는 구현보단 스펙 중심으로 나열되어 있었고, 다른 대부분의 글들은 일부 구현 사항만 다루거나 자세히 설명하는 경우가 적었습니다. 그래서 이 가이드를 작성하였습니다. 이 가이드를 통해 여러분은 빠르고 편하게 인앱결제를 구현하시기 바랍니다. 들어가며 - 인앱결제 로직을 '새 구매'와 '갱신', '만료', '취소/재개', '환불'로 나누어 설명합니다. - 인앱 상품 유형은 크게 '소모품'과 '구독상품' 두 가지 종류가 있습니다. - 구현 언어는 Python을 사용합니다. 새 구매 서버가 하는 일 인앱결제 과정에서 서..

시장지표(지수/환율/원자재) 프로젝트 회고

환율, 원자재, WTI 등, 시장지표도 포함시켜 주세요. 위의 문장은 실제 고객이 요청한 내용이다. 나는 '차세대 트레이딩 플랫폼' 서비스를 만드는 백엔드 개발자이다. 우리 서비스는 주식과 가상화폐에 대한 시세 정보, 차트, 종목분석과 같은 투자에 유용한 기능들을 제공한다. 하지만 우리는 지수, 환율, 원자재 같은 시장지표는 아직 제공하지 못하고 있었는데 위에서 언급한 고객 요청사항처럼 양질의 정보를 고객에게 제공하기 위하여 시장지표 프로젝트를 진행하기로 했다. 이번 글은 내가 실무자로서 프로젝트를 어떻게 진행했는지, 그 과정과 배운 것을 정리한 회고글이다. 요구사항 나는 프로젝트의 목적을 다음과 같이 정의하고 목적에 맞게 요구사항을 세웠다. 지수, 환율, 원자재 데이터를 제공하여 고객이 시장지표를 쉽게..

저장소 패턴(Repository Pattern) 도입기

*보안상 일부 명칭을 모호하게 표현하였으며 실제 소스코드가 아닌 설명을 위한 샘플 코드를 사용하였습니다. 저장소 패턴 도입 프로젝트 입사 후, 첫 실무 프로젝트로 저장소 패턴(Repository Pattern) 도입 프로젝트를 진행했다. 저장소 패턴이란? 저장소 패턴은 모든 데이터가 메모리상에 존재하는 것처럼 가정하고 이를 추상화하여 데이터 접근과 관련된 구현 사항을 감춘다. 저장소를 제외한 다른 레이어는 더 이상 저장소의 구현에 대해 신경 쓸 필요 없이 인터페이스로만 소통한다. 저장소 패턴을 도입한 이유는 기존 운영하던 ‘A’ 서버(보안상 ‘A’라 지칭)의 레이어가 Controller - Service 로만 구성되어 있었고 이와 관련하여 문제점을 가지고 있었기 때문이다. 기존 문제점 1. 비즈니스 로직..