들어가며우리 팀은 API를 제공하지 않는 외부 서비스(ERP, 외부 관리자 페이지 등)에서 매일 데이터를 수집하는데, 이 수집기들이 Playwright 위에서 돌아간다. Celery worker에 headless 브라우저를 올려서 매일 새벽마다 실행하는 구조다.일주일 동안 이 수집기들이 연쇄적으로 터졌는데, 하나 고치면 다른 데서 터지고, 그걸 고치면 또 다른 데서 터지는 식이었다. 돌이켜보면 전부 "Playwright는 테스트 도구"라는 전제에서 오는 문제들이었다고 생각된다.보이지 않는 로딩 모달이 클릭을 삼킨다ERP 시스템에서 엑셀을 다운로드하는 수집기가 운영 환경에서만 간헐적으로 실패했다. "엑셀변환하기" 메뉴를 못 찾아서 30초 timeout.코드 흐름은 이랬다:# "조회펼침" 버튼 클릭 → 데이..
회사 사정으로 인해 기존에 3인이었던 백엔드 개발팀이 1인으로 줄게 되었다.따라서 혼자서 기존 서비스 운영 + 신규 개발을 뛰어야 하는 상황인데인원 감축 전/후로 이에 대응한 부분을 작성한다.감축 전참고로 나는 인원 감축에 대해 사전에 어느정도 알고 있어서 대략 4주 정도는 준비할 시간이 있었다. 우선 인원이 줄어들어도 할 건 해야한다.다시 말해 운영 + 기능 개발 + 구조 개선이 인원이 줄어들었음에도 정상적으로 돌아갈 수 있도록 사전 작업이 필요했다.현 회사에 합류한지 대략 1년 정도 지났는데 그동안 기능 개발에 대해서는 많이 파악해둬서 큰 문제가 없었다.그런데 운영, 구조 개선 쪽 업무는 아직 미흡한 부분이 좀 있어서 이 부분을 개선하는 데 집중했다.운영회사의 서비스는 다양한 매출/마케팅 채널로부터 ..
RTB: 수집 파이프라인 구조 개선배경얼마 전까지 신규 기능 개발과 리팩토링을 주로 하다가, 운영성 업무를 맡게 되었다.참고로 나는 이런 종류의 일을 RTB(Run the Business)라고 부른다(새로운 것을 만드는 게 아니라, 이미 돌아가고 있는 것을 유지하고 확장하는 일) 보통 운영 업무는 "어쩔 수 없는 것"으로 받아들이고 단순히 유지보수만 하게 되기 쉽다.그게 답답해서 개선 포인트를 좀 찾아보았다. 대상은 50개가 넘는 외부 API에서 데이터를 수집하는 파이프라인이다.이 글은 그 과정에서 발견한 구조적 문제들과, 개선 방향을 설계한 기록이다. 실제 구현은 다음 주 중에 팀에 제안하고 진행할 예정이다.매일 아침 하는 일새벽 배치가 돌고 나면 Slack에 리포트가 온다. "확인 필요"가 뜨면 ad..
최근에 Claude Code Max를 사용하면서 3가지를 깨달았다.1. 구현의 대다수는 AI가 훨씬 잘하고 효율적이다.2. 코드를 치는 시간보다 문제를 정의하는 시간에 더 집중하게 되었다.3. 문제를 정의하고 분석하는 스킬이 개발 실력보다 더 중요하다 근데, 기존의 내가 갖고 있던 가치관과 내가 일하는 방식은 정확히 대체 가능한 개발자의 방식이었다.이에 대해 인정하고 고치는 과정에 대해 작성해보도록 하겠다. 개발자로서 중요하다고 생각하는 스킬들내가 개발자로서 중요하다고 생각하는 주요 스킬은 크게 3가지다.1. 개발 실력2. 도메인 지식3. 문제 해결 능력 우선, 개발 실력의 경우 말 그대로 개발 실력에 대한 것이다.항상 확장 가능하게 설계, 개발하고 기능 구현을 빠르고 정확하게 처리하는 것.CS 지식..
들어가는 글지난번에 구독 시스템 설계기에 대해 글을 작성했었다.그렇게 설계한 기능에 대해 현재는 테스트를 마치고 라이브 환경으로 전환하여 처리하게 되었다.본 포스트에서는 구현 중 발생한 문제 및 해결과정을 간단하게 나열하고(경험 정리 목적) 돌아보도록 하겠다. 상황기존에 B2B 계약 기반으로 운영되던 서비스를 B2C 구독 모델로 전환하면서 결제 기능을 새롭게 설계, 구현해야 했다.이때 단순 결제 처리 외에 수반되는 작업들이 많았는데 나열하자면 다음과 같다.요금제 → 허용된 서비스 내 하위 기능들과 생성할 수 있는 자원에 대한 Quota 정의구독비즈니스 로직들에 기능 제한 처리 및 Quota 처리결제 수단 등록정기 결제요금제 업그레이드결제 취소 및 부분 환불구독 취소 및 만료 처리청구서/영수증 생성PG 연..
들어가는 글벌써 2025년이 끝나가고 있다.이에 따라 올해 내가 일을 하면서 어떤 선택을 했고, 그에 따른 결과가 어땠는지 정리해보고자 한다.개인적으로 올해는 폭발적인 기술 성장보단 어떤 환경에서 어떤 개발을 하고 싶은지 커리어를 정리하는 한 해가 되었다고 생각된다.일보안 회사 근무(~3월)작년 7월부터 예전에 산업기능요원으로 다니던 회사에서 근무를 하고 있었다.해당 회사에서 내가 맡았던 부분들은 ASM 솔루션 개발이다.팀 내에서는 Python으로 작성된 정보수집/공격 자동화 엔진 개발 쪽으로 간략히 정리하면 다음과 같다.Python 으로 작성된 정보수집/공격 자동화 엔진 고도화MSA 에서 서비스 - 엔진 간 Event-Driven Task OrchestrationDebezium을 통해 MSA 에서 읽기..
- Total
- Today
- Yesterday
- jwt
- PREFECT
- 코딩테스트
- SSL
- 그리디
- Javascript
- 삽질
- Til
- requests
- endl을절대쓰지마
- 프로그래머스
- 이것도모르면바보
- BOJ
- Remote
- 위상정렬
- 백준
- 우선순위큐
- 회고
- vscode
- kafka쓰고싶어요
- docker-compose update
- cipher suite
- django testcase
- 파이썬
- 불필요한 값 무시하기
- 최대한 간략화하기
- 스택
- 힙
- Python
- SQL
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |