Photo by krakenimages on Unsplash

11주 동안 64번의 커밋으로 위니아에이드 자급제 보상서비스 관리 시스템을 개발하였다.

크게 java springboot 와 oracle db 를 활용하였고, 현재 운영 중인 시스템이다.

Photo by David Siglin on Unsplash

 2021년 3월부터 2022년 2월까지 1년간 스타트업 수공에서 웹사이트와 앱을 개발하였다.

 처음 수공으로 갔을 때 웹사이트와 어드민은 개발되어 운영중이었고, 마스터(수리 기사님들)용 안드로이드앱은 개발 중이었다. 이 당시 아키텍쳐는 프론트엔드는 react 로 되어 있었고, 백엔드는 ruby, 인프라는 aws ec2 등으로 구성되어 있었다. 내가 입사한 이후 기존 개발자 분들 4분이 모두 다 퇴사하시고, 훌륭한 분들이 입사하셔서 내가 퇴사할 때는 개발팀이 6명까지 되었다.

 마스터용 안드로이드앱은 한 개발자분이 담당하셔서 나는 개발환경까지만 세팅하고 개발에 기여한 부분이 없었다.

 기존 개발자분들이 퇴사하시고, 안드로이드 개발자 한 분과 프론트엔드 개발자 한 분이 있었는데, 이 때 나는 내가 백엔드 이외에 다른 모든 개발내용을 알아야겠다고 판단하고, 백엔드에 집중하기 보다는 생산성을 높이기 위해 최근 프로젝트에서 활용했던 amplify 를 이용해 개발해보려 했으나 한 달이라는 시간내에 react-admin 과 카테고리 관리 기능 등의 기본적인 세팅까지만 마치고 amplify 를 이용한 개발은 멈춰야 했다.

 이후 백엔드 개발자 한 분이 오셔서 java springboot 로 기존 database 를 활용하는 방법으로 새롭게 개발을 시작하였다. 이 때 나는 springboot 를 aws lambda 로 배포하는 것을 테스트해보고, 이후 ecs 를 활용하여 개발, 테스트, 메인 서버를 구성하였다.

 그리고 프론트엔드는 aws amplify 를 통해 nextjs 를 배포하니 버지니아에 배포되어 서버가 느린 현상이 발견되어, serverless 를 활용하여 aws lambda@edge 로 배포하여 프론트엔드 서버 속도를 향상 시켰다. 웹사이트 메인서버 릴리즈 직전에는 카카오, 네이버 등 SNS 로그인을 연계하여 문의가 접수되는 프로세스를 개발하였다.

 이렇게 개발되어가는 중 백엔드 개발자 한 분이 오셔서 어드민 프론트엔드와 백엔드를 개발하셨는데, 이때 해당 개발자 분이 백엔드를 희망하는 것을 확인하고 내가 어드민 프론트엔드를 맡겠다고 했고, 어드민 프론트엔드를 일부 작업하다가 웹사이트 프론트엔드 작업이 많아져서 다시 웹사이트 프론트엔드 작업을 하였다. 그리고 웹 백엔드 작업도 일부 참여하였다.

 웹백엔드에서 어드민 백엔드 서버 분리가 필요하다고 하여 어드민 백엔드는 ec2 와 로드밸런서 등을 활용하여 구성하였고, ecs 배포 시간이 오래걸려서 웹 백엔드 개발서버도 ecs 에서 ec2 로 변경하였다.

 이렇게 백엔드와 프론트엔드의 인프라 부분을 작업하면서 github action 을 활용하여 CI/CD 도 세팅하였다.

 그리고 프론트엔드 개발자 한 분이 더 채용되셔서 개발자 6명이 팀이 되었고, 나는 리액트네이티브 웹뷰를 활용하여 안드로이드 앱과 iOS 앱을 배포하였다. 리액트네이티브 앱은 외주업체에서 2주간 작업하여 넘겨준 소스코드가 있었는데, 앱 웹뷰와 웹사이트가 통신하는 것과 카카오, 애플로그인이 자연스럽게 이루어지도록 웹사이트 프론트엔드 작업과 일부 백엔드 작업도 하였다.

 

 내가 수공에서 일하며 가장 중요하게 생각했던 것은 인프라, 소스코드에 대한 권한을 모두다 공유하고 이상적인 개발환경에서 일하는 것이었다. 이 부분에 대해서는 잘 이루어져서 좋은 팀을 이루고 떠나게 되어 기쁘다. 단 한 가지 아쉬운 점은 이런 상황에서 내 포지션을 명확히 하지 못했다는 것이다. 왜 프론트엔드와 백엔드를 구분해야 하는가? 에 대한 여러 이유 중 한 가지를 배울 수 있던 시간이었다.

Photo by freestocks on Unsplash

2020년 6월 1일부터 시작한 미플릭 프로젝트를 9월 28일 월요일에 오픈을 하면서 구현단계까지 한바퀴 돌았다.

물론 운영단계인 지금 개발해야할 것도, SR처리해야할 것도 많다.

 

처음에 php, codeigniter, gabia 클라우드에서 시작된 이 프로젝트는 한달 정도 지났을 때, 인원 이탈이 생기면서 기획부분과 아키텍처 부분을 다시 설계해야 했다.

그래서 react, java, springboot로 화면까지 띄우고, DB 설계를 할려는 찰나에 Micro services 를 적용해보자는 아이디어가 생겨, AWS 클라우드 서버에 micro service로 만들어진 python 기반 샘플 소스를 띄워보고, 프론트단을 react 를 적용하기 위해 gatsby ecommerce 샘플 소스를 활용해서 적용해 보았다. 그리고 동시에 백엔드는 aws amplify 를 이용해 구성하였다.

메인페이지에 상품이 보이도록까지 개발하였을 때, 새로운 팀원이 들어오면서 nextjs로 바꾸기로 하여 다시 nextjs, aws-amplify 로 개발을 하고, 한달이 지나 오픈까지 하였당

 

이번 프로젝트에서 배운 내용을 바탕으로 다음 프로젝트는 더 퀄리티있고 임팩트 있는 제품을 만들고 싶다.

Photo by xandro Vandewalle on Unsplash

2020년 1월부터 5월까지 5개월간 서울도시가스 통합정보시스템 고도화 프로젝트에 개발자로 참여하였다.

 

java, spring, egovframework, mybatis, oracle 로 backend 와 개발 및 운영환경이 되어 있었고, frontend 는 nexacro 를 활용해서 개발하였다.

 

기존 시스템이 glueframework 로 되어 있어서, glueframework 기반의 activity 로 이루어진 서비스를 egovframework 로 변환하는 작업이 살짝 번거로운 작업이었다.

Photo by Mathew Schwartz on Unsplash

2019년 5월부터 12월까지 7개월간 우리나라 행정안전부 스마트워크센터 예약프로그램 관리 및 개선업무를 하였다.

 

프로그램의 원 소스파일이 없어, 운영서버에서 jsp, css, js, class 파일들을 다운받고 class 파일들을 디컴파일해서 개발환경을 만들어 관리하였다.

 

class 파일들을 디컴파일 해보니, java 1.4 버전 부터 1.8 버전까지 골고루 들어가 있어서 굉장히 당혹스러웠다.

 

예약일자를 계산하는 스크립트가 조건을 고려하지 않고 만들어져 있어 매주 예약일자가 변경되는 이슈가 있었는데, 이 부분을 해결한 것이 현재 운영하는 데 있어 큰 도움이 되었다고 한다.

Photo by  Alexander Sinn  on  Unsplash

2018년 8월부터 2018년 12월까지 5개월간 진행했던 프로젝트입니다.

 

이 프로젝트는 당시 회사 대표님과 저와 둘이서 제안작업을 하여 수주하였고, 대표님께서 PM 역할을 하시고, 전 개발을 담당하여 진행하였습니다.

 

제 개발 커리어가 처음 시작된 프로젝트라고 생각하는데, 당시 회사 플랫폼을 기반으로 한국인터넷진흥원 고객분들의 요구에 맞게 커스터마이징 개발하였습니다.

 

기억에 남는 작업은 자바프로그램으로 상담기록에 있는 개인정보들을 비식별화 조치했던 것과 결과물을 제공할 때 R을 사용하여 시각적인 자료를 만들었던 것입니다.

 

당시 어렵게 프로젝트를 완료했으나, 한국인터넷진흥원 내부사정으로 서비스까지 이어지진 않아 아쉬웠던 프로젝트였습니다.

 


노용우(Yongwoo Roh) / Software Engineer / ywroh2@gmail.com

+ Recent posts