배치, 비동기, 오버엔지니어링, 도메인
개발일기
최근 백오피스가 굉장히 많이 안정화됐다.
성능적인 면에서는 말할 것도 없고,
로드밸런싱과 무중단 배포 구축으로 리스크 없이 CI/CD도 이루어지고 있다.
최근에는 백오피스에서 잠시 손을 떼고
배치 서버를 슬슬 담당하기 시작하며 스프링 배치
를 알음알음 공부하고 있다.
최근에는 우리 회사의 정보를 타 회사로 이관하는 일배치 개발 업무를 받았는데,
기왕 만드는 거 성능 끝장나게 한번 만들어보자고
멀티스레드
와 비동기
를 적극 활용해 배치 애플리케이션을 개발해서 돌려봤다.
약 26만 건의 데이터
를 타 회사의 서버로 이관하기 위한 요청이
채 2분
이 걸리지 않아 끝났으나, 429 폭탄 을 맞아버렸다. 😭
그래서 수신 서버의 스펙을 다시 점검하고, 몇 번의 테스트를 거치면서 요청 속도를 줄여야만 했다.
멀티스레드와 비동기는 싱글 스레드
와 동기식
으로 바뀌었고, Chunk size
또한 대폭 줄어들었다.
이러고 걸리는 시간을 계산해보니, 26만 건의 데이터
를 보내는데 약 5시간
이 소요됨을 알고 좌절했다.
(2분 -> 5시간 😣)
비동기가 업계에서 아직 활발하게 쓰이지 않는 이유를 약간 엿본듯했다.
그리고 단독 애플리케이션이 아닌 여러 API와 연동되는 애플리케이션을 개발할 때는
성능에 집착하는 습관성능충을 잠시 내려놔야겠다는 깨달음을 얻었다. 일 두 번 하더라…
그리고 다른 일배치를 하나 더 만들게 됐는데, SFTP 서버
에 접속해 데이터를 내려받는 배치였다.
매우 간단하다고 생각이 들었는데 내려받아야 할 데이터를 보고 이해가 안 돼서 말문을 잃어버렸다.
XML
도 아니고 JSON
도 아니고 난생처음 보는 데이터 형식이어서
선배님들께 여쭤보니 이런 걸 전문이라고 부른다는 답변을 들었다.
(중간에 그럼 이게 모스부호 같은 건가요?라고 반문했다가 웃음바다가 터졌다. 그래도 역시 비슷한 거 같긴 하다…)
전문에 대한 설명을 좀 듣고 보니 그제야 문서가 이해되기 시작했다.
참 이런 사례를 겪고 보니 현업에서 그렇게 강조하는 도메인 지식
이 정말 중요하다는 게 이런 느낌이구나 싶었던 하루였다.