크몽 첫 번째 외주가 성공적으로 끝나고 (첫 번째 외주 보러 가기!)
대략 2주가 지난 11월 초에 다시 한번 연락이 왔다.
11월 8일. PM님 연락
아래는 첫 외주를 담당해 주셨던 PM님과의 연락이다.
다른 프로젝트에 수정건이 있는데 한 번 확인해 줄 수 있냐는 내용이다.
그러고 갑자기 다른 PM님을 연결해 주셨다.
어찌 됐든 나를 믿고 또다시 연락을 주셨기 때문에 감사하기도 했고 어떤 걸 개발하게 될지 기대감도 들었다.
몇 분이 지나자 연결해 주신 PM님한테 연락이 왔다.
간단한 인사와 함께 압축파일 2개와 pdf 1개를 전달해 주시고 한 번 확인해 달라고 요청 주셨다.
본집 이사 관계로 고향을 내려가고 있던 상태라 월요일이 되어서야 확인할 수 있었다.
11월 11일. 파일 확인
파일의 내용은 아래와 같았다.
1. 소스 코드 및 인수인계 파일
- 소스 코드 : 백엔드 및 프론트엔드 코드
- 인수인계 파일: 계정 정보(일부), 배포 방법
2. 추가 개발 및 확인 요청 사항
- 추가 개발 및 확인 요청 사항이 적힌 엑셀 파일
- 확인이 필요한 부분의 화면 스크린샷들
3. 외부 API 명세서
그 외 여러 문제점들
11월 11일
파일을 확인해 보니 env 설정 파일이 누락되어 재요청드렸다.
11월 13일
이틀 뒤인 13일에 env 파일을 따로 제공받았다.
기존 AWS 계정도 적혀있지 않아 추가로 제공받았다.
11월 14일
기존 구동 중인 AWS EC2의 서버키를 요청했으나 분실됐다고 답변받았다.
11월 15일
- 제공받은 소스 코드 로컬 구동했으나 외부 API 연결이 안 됐다. 해당 부분 말씀드리니 갑자기 담당 PM님이 바뀌었다고 하여 첫 외주 PM님한테 연락드렸다. 외부 API를 사용하려면 해당 API를 제공하는 곳에서 ip를 허용해야 호출가능하다고 답변받았다.
- 기존 EC2 서버는 키를 분실하여 새로 EC2 서버를 팠다. 새로운 ip를 할당한 뒤 해당 ip를 허용해 달라고 연락을 드렸다.
- 여러 가지로 기존 개발자분이 잠수를 타셔서 인수인계가 잘 되지 않은 상황.
- 인수인계에 누락된 DB 클라우드 서버 계정을 전달받았다. (PM님도 계정 정보 몰라서 EC2 계정 그대로 써보니 된다 해서 알 수 있었다고 한다.. 외주 개발의 고충을 알게 되었다..)
- 확인해 보니 코드 이력 또한 관리되고 있지 않아서 git repo 생성 요청을 드렸다.
11월 19일
- 외부 API가 상용, 테스트 서버로 분리되어 있었는데 상용 서버만 호출이 되는 상황이라 테스트용 API도 ip 등록 요청을 드렸다.
12월 2일
- 드디어 외부 테스트 API에 새로 판 AWS EC2 서버의 ip가 할당되었다. 본격적으로 개발에 들어갔다.
프로젝트
eSIM 자동 발송 프로그램 관리 사이트
이번에 맡게 된 프로젝트는 eSIM 자동 발송 프로그램을 관리하는 어드민 사이트이다.
좀 더 자세하게 말하자면, E-commerce(네이버, 쿠팡 등)에 등록한 eSIM 상품에 대한 자동 발송, 주문내역 조회, 상품 관리 등 eSIM 주문을 관리해 주는 어드민 사이트이다.
개발 일정
- 2024년 12월 초 ~ 2024년 1월 8일
개발 스펙
언어 : Typescript
프론트엔드 : React.js
백엔드 : Next.js, MongoDB
작업 범위
- 기존에 구축되어 있던 네이버 연동 시스템에 쿠팡 쇼핑몰을 연동하여 추가하는 작업을 진행했다.
추가한 기능
- E-commerce(쿠팡) eSIM 주문내역 조회
- E-commerce(쿠팡) eSIM 상품 조회
- eSIM 상품 등록 및 관리
- eSIM 자동 발송 시스템
-> 일정 시간 간격으로 쿠팡의 주문 내역 조회하여 eSIM 자동 발송 및 배송 처리
-> 구매자에게 별도 알림 메시지 및 이메일로 QR 코드 전송
기타 기능 개선
이외에도 기존 시스템의 버그를 고치고 일부 기능을 개선하는 작업도 진행했다.
- eSIM 발급 검증 프로세스 추가
- 주문 내역 기간별 조회 기능 추가
- 6개월 간격으로 최근 6개월간의 기록만 남기고 DB 초기화하는 배치 기능 추가
등등
결과물
어려웠던 점
1. 부족한 인수인계 ⭐️⭐️⭐️
위에도 적어놨듯이 제대로 인수인계가 되어 있지 않았다. (사실상 없다고 봐도 무방..) 기초적인 서버 세팅, 서버 접속 key, 계정 정보, 소스 환경 변수, 배포 방법 등등 누락되거나 없는 정보가 많아서 초반부터 막히는 점이 굉장히 많았다. 솔직히 코딩을 하기도 전에 이걸 내가 제시간에 할 수 있을까??라는 생각이 들었었다.
2. 기존 코드 분석 ⭐️⭐️⭐️⭐️⭐️
제로 베이스에서 개발을 진행한 것이 아닌, 기존에 작성된 코드에서 '쿠팡' 연동 부분을 추가해야 했다. 문제는 프로그램이 어떤 프로세스를 통해 돌아가는지 매니저님도 제대로 모르는 것 같았다. 단순히 코드뿐만이 아니라, e-commerce가 연동이 되어 있기 때문에 쇼핑몰의 프로세스도 알아야 했다. 또한 eSIM 발급을 위해서 외부 업체의 API를 사용해야 했는데 해당 프로세스도 처음 보는 거라 이해가 어느 정도는 필요한 상황이었다. 기존 코드 분석 및 프로세스에 대한 이해를 위해 2주는 소요된 것 같다.
3. 다소 애매한 요구사항 ⭐️⭐️
사실상 요구사항이 "기존 네이버 연동건과 동일하게 쿠팡도 추가해 주세요" 이게 끝이었다. 겉으로는 크게 어려워 보이는 기능들은 아니지만 그 내부를 들여다보면 세세하게 다른 것들, 겉으로는 드러나지 않는 작업들이 꽤나 있었다. 직접 해보기 전까지는 모르는 프로세스들이 존재했다. 네이버, 쿠팡의 주문 및 배송 프로세스도 큰 틀은 비슷하지만 세세하게는 다르다.
4. 실구매 테스트 ⭐️⭐️⭐️⭐️⭐️
실제 쇼핑몰에 들어온 주문이 자동 발송 프로그램을 통해 제대로 발송이 되는지 테스트를 해봐야 하는데 테스트를 함부로 할 수 없어서 이 점이 가장 힘들었다. 더미 데이터를 만들어서 테스트를 최대한 돌려보고, 실제 사용자 테스트를 위해 직접 쿠팡에 들어가 주문 결제를 하고 취소하는 과정을 통해 테스트를 진행했다. 1월 8일에 개발 종료 이후에도 테스트 문제로 약 10일 정도는 버그를 수정해야 했다.
마치며
이번 프로젝트는 규모가 은근히 있었다. 거기에 프론트, 백 둘 다 개발이 필요했던 풀스택 개발이었다. 그래서인지 첫 프로젝트에 비해 배수는 넘게 받을 수 있었다. 이 정도의 프로젝트를 매달 할 수 있다면 웬만한 직장인 평균연봉은 더 벌 수 있을 것이다. (규칙적이진 않겠지만.)
이렇게 두 번째 프로젝트도 무사히 마치고 나니 개발 외주에 대한 감을 조금은 잡은 것 같다. 첫 외주 때는 사실 걱정이 컸었다. "내가 기한을 지킬 수 없으면 어쩌지?", "내가 할 수 있을까?(기술적인 문제)", "회사 다니면서 남는 시간에 할 수 있을까?(의지의 문제)" 등 많은 고민이 앞섰다.
하지만 무엇이든 시작을 하지 않으면 아무것도 되지 않는다. 그렇기에 이런 생각들은 사실상 망상에 불과하다.
일단 "시작"하고 나서 이러한 문제들이 "현실"이 되었을 때 그때 가서 "해결"하면 그만이다.
어찌 보면 단순히 돈을 벌기 위해 시작했던 외주를 통해 많은 깨달음을 얻게 되었다.
어떤 일이든 맥락은 비슷할 것이다.
일을 대하는 태도, 실행력, 도전 정신, 해결력, 경험 등 돈 주고도 하지 못할 작은 경험이었다.
2025년에는 또 다른 도전을 하고자 한다.
나중에 블로그에 기록으로 남겨볼 예정이다.
앞으로도 계속 발전하는 사람이 되자.
파이팅!
'IT > 예비창업&프리랜서' 카테고리의 다른 글
[크몽] 1인 개발자 등록부터 첫 외주 프로젝트 (9) | 2024.10.28 |
---|---|
대화형 항공권 음성 검색 서비스 개발 이야기 (2) | 2021.03.01 |