배치, 비동기, 오버엔지니어링, 도메인

배치, 비동기, 오버엔지니어링, 도메인

개발일기

 

최근 백오피스가 굉장히 많이 안정화됐다.

성능적인 면에서는 말할 것도 없고,

로드밸런싱과 무중단 배포 구축으로 리스크 없이 CI/CD도 이루어지고 있다.

 

최근에는 백오피스에서 잠시 손을 떼고

배치 서버를 슬슬 담당하기 시작하며 스프링 배치를 알음알음 공부하고 있다.

최근에는 우리 회사의 정보를 타 회사로 이관하는 일배치 개발 업무를 받았는데,

기왕 만드는 거 성능 끝장나게 한번 만들어보자고

멀티스레드비동기를 적극 활용해 배치 애플리케이션을 개발해서 돌려봤다.

26만 건의 데이터를 타 회사의 서버로 이관하기 위한 요청이

2분이 걸리지 않아 끝났으나, 429 폭탄 을 맞아버렸다. 😭

 

그래서 수신 서버의 스펙을 다시 점검하고, 몇 번의 테스트를 거치면서 요청 속도를 줄여야만 했다.

멀티스레드와 비동기는 싱글 스레드동기식으로 바뀌었고, Chunk size 또한 대폭 줄어들었다.

이러고 걸리는 시간을 계산해보니, 26만 건의 데이터를 보내는데 약 5시간이 소요됨을 알고 좌절했다.

(2분 -> 5시간 😣)

 

비동기가 업계에서 아직 활발하게 쓰이지 않는 이유를 약간 엿본듯했다.

그리고 단독 애플리케이션이 아닌 여러 API와 연동되는 애플리케이션을 개발할 때는

성능에 집착하는 습관성능충을 잠시 내려놔야겠다는 깨달음을 얻었다. 일 두 번 하더라…

 

그리고 다른 일배치를 하나 더 만들게 됐는데, SFTP 서버에 접속해 데이터를 내려받는 배치였다.

매우 간단하다고 생각이 들었는데 내려받아야 할 데이터를 보고 이해가 안 돼서 말문을 잃어버렸다.

 

XML도 아니고 JSON도 아니고 난생처음 보는 데이터 형식이어서

선배님들께 여쭤보니 이런 걸 전문이라고 부른다는 답변을 들었다.

(중간에 그럼 이게 모스부호 같은 건가요?라고 반문했다가 웃음바다가 터졌다. 그래도 역시 비슷한 거 같긴 하다…)

전문에 대한 설명을 좀 듣고 보니 그제야 문서가 이해되기 시작했다.

 

참 이런 사례를 겪고 보니 현업에서 그렇게 강조하는 도메인 지식이 정말 중요하다는 게 이런 느낌이구나 싶었던 하루였다.

 


© 2022. All rights reserved.