개발 공수가 감이 잡히질 않습니다.. 조언 좀 부탁드립니다.
안녕하세요
PHP 개발자 입니다 ...
지금까지 별 어려움 없이(?) 잘 살아왔는데...
이런저런 이유로 리눅스 서버에서 데몬처럼 작동해야하는 프로그램을 개발해야하는 일이 생겼습니다.
다행스럽게도, 제가 학습해서 개발하는게 아니라 신규 인원을 채용하거나 외주 개발을 통해 납품받아도 상관 없는 상황 입니다.
아직 DB설계나 어떻게 작동할지 설계가 명확히 나오지 않아서 구인공고를 내거나 외주 의뢰를 하고 있지는 않은데요. 준비하면서 주변에 이런저런 조언을 얻고 있는데 그 편차가 너무 커서 도무지 감이 잡히질 않습니다.
누구는 내용을 듣고 경력 1,2년차도 쉽게 만들 수 있다고 하고
누구는 그런걸 만들어본 노하우가 있거나 7,8년 이상 연차가 있어야 할거라고 합니다.
또 누구는 단순한 개발이니 외주를 맡긴 후 납품받아 사용하면 된다하고 누구는 전담 인원이 몇달~수년간 유지보수를 해가며 최적화를 시켜야 한다고 합니다.
제가 자바 개발자가 아니다보니 도무지 감이 잡히질 않네요.
데몬 프로그램이 해야 하는 역할은 다음과 같습니다.
1. 매초 DB를 검색하여 통신을 해야하는 데이터가 있는지 찾는다.
2. 데이터가 있을 경우 외부 API 서버와 https 통신을 통해 데이터를 전송 한다.
3. 외부 API 서버가 응답을 하면 해당 내용을 DB에 저장한다. (update)
4. 이 작업을 관리자가 종료하지 않는 이상 무한히 반복한다.
이런 동작들 입니다.
데이터는 초당 1건일수도 있고 수백만, 수천만건 일수도 있습니다. 처리에 지연이 걸릴 수 있으나 기본적으로 지연이 최소화 되어야 합니다.
이를 위해 필요하다면 서버를 증설하여 여러 데몬이 동시에 돌아도 되나 병렬처리가 가능하도록 코딩을 해야겠죠 (DB에서 데이터를 가져오면 어느 데몬이 가져 왔는지 DB에 남겨 놓아서 서로 겹치지 않도록 한다던가..)
또 별도로 종료하지 않는 이상 무한히 반복되어야 하므로 메모리 릭이나 오류 발생에 의한 강제종료가 있어서는 안됩니다.. (말은 쉽죠...)
이런 상황이다보니 여러모로 참 애매합니다.
경력 많고, 경험 많은 개발자를 채용해서 개발하면 결과물이야 훌륭하겠지만 한번 완성 시킨 후 별다른 문제가 없고 속도에 문제가 없다면 사실상 업무가 없습니다. .... 그렇다고 인원을 놀릴수는 없구요.
그렇다고 적당한(?) 연봉의 인원을 채용하여 해당 업무를 맡기기엔 불안한 점도 있습니다.
더불어 주변에서 해주는 조언들도 너무나 큰 편차가 있구요.
저런류의 데몬을 자바로 만들때 어떻다고 보시나요?
편의상 DB는 Mysql을 사용하고 외부 API 서버의 경우 절대 뻗지 않는다고 가정 합니다.
덧. 구인공고에 앞서 인재검색으로 자바 응용프로그램 개발자를 검색해봤는데... 정말 몇명 없더라구요. 있더라도 10년~15년 이상 되신 분들만 있어서 또 당황....