본문 바로가기

일상

3년차 회고록 - 이직 회사 적응기

이번년도에도 회고록을 써보려고 한다.
저번 글에 썼듯이 이번년도에는 처음으로 이직하게 되었다.

전회사 보다 복지도 좋아졌고 월급도 올랐다. 금융이라 기술적인 것보다는 용어들이 어려웠다.


1. 간편결제 리뉴얼

들어오자마자 리뉴얼 프로젝트에 투입이 되었다.
프리랜서 3명과 중간에 내가 포함이 되니 내가 투입될때 쯤에는 배치 및 백오피스 전반적인 테스트를 진행하였다.

잘못했습니다 고객님 ㅠㅠ


구글에 제가 개발한 간편결제 시스템을 치면 이런글들이 많다.
하긴;; 공동인증서 때문에 나도 테스트 때문에 일일이 은행 사이트 가서 불편은 한 상태였다.

그래도 한 카드 회사 전용 간편결제 시스템이기 때문에 트래팩은 생각보다 많이 나왔다.

원래는 사내에서 쓰는 시스템만 만들어지 고객들에게 쓰이는 시스템은 이번이 처음이라 안드로이드, ios 별 테스트 엄청 했던것같다.


나중에는 테스트가 너무 복잡해지다 보니 셀레니움 같은 것을 사용해 테스트를 하였다.
셀레니움으로 자동화 테스트를 시도하니 신기하신 분들이 모니터를 쳐다 보다 가시는 분도 있어 하였다.



2. 간편결제 - NEW 프로젝트

원래 간편결제가 있지만 토스나 네이버 페이 같은 간편결제가 원해지고 첫번째 프로젝트에서 사용된 시스템은 따지고 보면 다른 회사꺼였고 우리들만의 시스템이 필요하여 개발을 착수 하게 되었다.


처음 개발하기전에 유튜브에 토스채널을 10번은 돌려본것같았다.

우리 프로젝트는 크게 SDK, 프론트, 게이트웨이, API, 백오피스 로 분류가 되어 개발자 5명이서 한개씩 맡아 개발을 하였다.

SDK 는 우리가 많이 쓰는 제이쿼리나 lodash 같은걸로 많이 쓰는 식으로 만들었다.

요즘은 npm으로 올려 인스톨후 import 하여 사용하는게 많아졌지만 아직은 그것까지는 생각을 하지 않고 개발을 하였다.

SDK는 typescript + rollup으로 개발을 하였다.
원래는 리액트를 공부할때 webpack를 많이 써서 rollup에 대해서는 듣기만 했지 실제로는 사용해보기 않아 사용해보니 webpack보다는 가볍다는 느낌이 들었다. (물론 소스 코드가 많지 않아 그런것일 수 도 있다.)
또, 나중에 npm 등록 및 typescript 지원의 여지를 두기 위해 이렇게 만들었다.

실제 코드가 아닌 공부한 코드 입니다.


프론트는 JQuery + jsp 를 사용하여 중간에 body이 사라지고 ajax로 html를 호출하여 새로 끼는 방식으로 개발을 하였다.


처음에는 리플로우 + 리페인트 현상이 사용자에 하여금 느리게 느껴질 수 있게다라고 생각했는데, 다행히 페이지 마다 데이터 호출 하는 것도 작아 속도 문제나 css적으로 깨지는 것도 없어져 다행이라고 생각했다.

프론트는 게이트웨이를 타 카드 목록 및 결제에 관련된 요청을 하게 되는데 이 경우는 카드회사와 협업을 하게되었는데 EAI라는 걸 사용하여 데이터를 받아 사용했다.
일단 EAI가 xml 로 되어 있어 길이 제한과 10개 이상으로 동시에 요청이 오면 10개 빼고는 데이터가 손실되는 문제가 있다는걸 알게 되어 나중에 카프카나 레빗엠큐 같은 메시지큐 시스템에 넣어 사용하는것을 요청해보려고 한다 ㅠㅠ
오픈한 사이트가 아직 한개여서 트래픽은 많지 않아 꼭 넣어야하는 작업이 아닌가 싶다.


API는 프론트에서 인증 된것을 PG사에 쏴주는 일을 맡았다.
여기 회사에서 처음으로 Basic Authorization 기술을 사용하여 보안을 사용했다.


백기선님의 강의가 많이 도움이 되었다.


개발 후, 연동을 위해 가이드를 작성했는데 가이드는 인터넷을 정말 많이 봤던것같다


토스, 아임포트, 네이버 페이 사이트를 참조하여 만들었다.

가이드에 작성된 부분은 SDK와 API 관련된 내용이 작성되었다.
작성할떄 추가 및 수정되는 부분이 많이 생겼다. 원래는 결과 상태 코드는 생각지 않았지만, 갑자기 생기고 추가 되는 API 도 생겼다.
사이트에 문서가이드를 올리지 않아 문서로 최신이 변경될때마다 문서를 줘야하는 문제점이 있다. 나중에는 사이트에 가이드도 올려줬으면 좋겠다 ㅠㅠ


개발도 끝나고, 문서도 작성하여 다른 사이트에 연동하는 일만 남아 붙이게 되었다.


강의때 보던 곳중에, 한곳에 연결이 되게 되었고 소통은 슬랙을 통해 진행이 되었다.


슬랙은 공부할때만 써봤지 실제로 써보니 한번에 많이 오니 어떤 메시지를 읽어야 하는지;; 힘들었다.
아이폰은 시스템 업데이트를 안하면 앱 설치도 안되서 힘들었다 ㅠㅠ

- 추가 개발 건
원래는 PG사가 하나면 연결 되어있었지만, 고객사에서 TOSS PG를 사용하여 급하게 toss 와도 슬랙으로 연동하여 개발하였네요;;


하지만 개발한지 3~4일만에 자바 메모리가 차면서 시스템이 다운되는일도 있었다. 회사 라이브러리중에 I/O 닫는것을 안해주어 문제가 생겼다. ㅠㅠ
그리고 연결되어 있는 API 서버가 많아 어디서 에러가 났는지 확인하는 작업이 필요하여 로그관리에 신경을 많이썼다.
요즘은 ELK 라고 하여 로그를 많이 관리하는데 이것도 넣어보고 싶다 ㅎㅎ

출처 : 29cm 기술블로그 - https://medium.com/29cm




3. 마이데이터

이번년도 마지막 건이다.

마이데이터는 은행사, 카드사, 전자결제, 보험사 등등 거래내역이나, 포인트 관련 하여 정부가 관리하는 대규모 API 프로젝트이다.
여기에 참여하게 되어 API 서버를 만들면 코스콤 중계기관에서 관리를 해주었다.

원래는 2021년 하반기로 오픈이 예상되었지만 밀리고 밀려 2022년에 오픈하게 되었다.

API 만 만들어 그렇게 개발 시간이 많이 걸리지 않았지만 중간중간 스펙 변경, TLS v1.3, MTLS 같은 것이 발목을 많이 붙잡았다.

github에 올린 테스트 프로젝트


보안 방식에 대해서는 oAuth, JWT 만 공부 했었는데 인증서로도 관리 할 수 있는게 힘들었지만 흥미롭게 느껴졌다.


4. 결론

사용자에게 사용되는 것이 눈으로 보이는 시스템이 처음으로 해보면서 신기한점이 많았다.
제니퍼(APM) 같은 모니터링도 사용해보고, 다른 회사랑 얘기하는게 무섭지만 재밌어 많이 배우고 있다.
초년차에는 next.js, spring cloud, ktor 같은 최신기술에 관심이 있었지만 지금은 더 안정된 운영에 관심이 많이 가져지고 있다.

더 나은 개발자가 되기 위해 끊임 없이 일을 해야 겠다고 생각했고, 한빛미디어 서평단에 참가하게 되었다.