ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2025년 끝자락에 적는 2024년 회고 (2023년 하반기를 곁들인)
    일상/회고 2025. 11. 7. 21:41
    반응형

    어느덧 2025년 11월이 되었습니다. 2025년을 보낼 준비를 해야 할 때입니다.

     

    사실 회고를 꾸준히 상반기 하반기에 한 번씩은 적으려 했는데,

    약해빠진 몸과 나약한 정신이 자꾸 방해해서 이제야 2024년의 회고를 1년 퉁쳐서 적게 되었네요..

     

    2024년에 대한 이야기를 하기 전에 2023년 하반기에 대한 이야기를 먼저 적고 싶어서 대략적으로만 적겠습니다.

     

    큰 맥락으로 적고 넘어가는 2023년 하반기

    저는 2023년 하반기가 시작되자마자 안성팜랜드 관리 페이지의 개발에 투입되어 현금 매출 조회 API와 화면을 만들게 되었습니다.

    화면을 만들고, 문제가 없는지, 원하는 대로 작동하는지 테스트하는 한 달의 반복이었습니다. 

    그렇게 7월은 흘렀습니다.

     

     

    그리고 어느덧 8월, 인프콘 2023을 갔습니다.

    인프콘에 가서 행사 부스도 구경하고, 강연들도 들으며 유익한 시간을 보냈습니다.

    그러고 인프랩 개발자분이랑 데브챗을 할 수 있는 기회가 생겨 인프랩의 백엔드 개발자 분이랑 잠시 한 20분 정도 대화를 하였습니다.

    이때의 저는 수습 느낌이 아닌 어엿한 한 명의 백엔드 개발자가 되고 싶었습니다. 그래서 인프랩의 백엔드 기술 스택과, DB 등의 구조를 여쭤봤고, 제 명함을 드리고 이메일을 교환했습니다.

    막판에는 네트워킹 행사도 있어서 처음 보는 개발자분들과 대화도 많이 하고, 링크드인, 깃허브도 교환했습니다.

     

     

    시간은 또 흘러 9월.

    2023년 상반기부터 개발하던 삼성전자 급식 시스템의 2차 개발이 시작되었습니다.

    이때부터는 회사에 있는 시간보다 남대문 주변에 있는 에스원 건물에 들어가서 개발하고 테스트했던 날이 더 많아졌습니다.

    출근 - 개발 - 에스원 이동(과천 지정타에서부터 약 한 시간 소요) - 테스트 - 수정 - 테스트 - 퇴근의 반복이었습니다.

    이때는 저희 회사 팀원보다 외부 팀의 팀원분들을 보는 일이 더 많았어요...

     

    저는 그 사이 중간에 틈을 내서 SQLD자격증을 취득했습니다. 

     

    12월 말까지도 에스원 왔다 갔다 했습니다..

     

    이렇게 2023년 하반기는 에스원 왔다 갔다 하면서 삼성전자 급식 시스템 개발 및 테스트하느라 정신없이 흘렀습니다.

     

    드디어 2024년 상반기.

    2024년 1월이 되자마자 저는 일본여행으로 심신을 안정시켰습니다.

    이 여행으로 인해 산업기능요원 신청이 일주일정도 늦어서 결국 2024년 1월 15일부터 1035일의 산업기능요원이 시작되었습니다.

     

    2023년 11월쯤 저는 나중에 어떻게 될지 모르니 방송대 학사라도 갖고 있고 싶어서 방송대를 신청하였고,

    2024년에 1학년으로 방송대 4년의 여정도 시작되었습니다.

     

    20대 중반으로 향하는 두 개의 긴 여정이 2024년 초에 시작되었습니다.

     

     

    2월에는 써브웨이 물류를 받아오는 배치의 DB를 변경하는 작업이 있었습니다.

    2월 말에는 길었던 에스원에서의 테스트 작업에서 철수하게 되었습니다.

    인프런 퇴근길 밋업을 갔습니다.

     

    3월. 봄이 되었고, 조금씩 따뜻해졌습니다.

    사무실에서 써브웨이 물류 배치의 전문을 수정하고 테스트했습니다.

    그러던 중 회사에서 신 사업으로 안드로이드 테이블오더를 추진한다 하여 자사 관리 시스템에서 테이블오더에 맞는 옵션형식을 추가하는 작업을 진행했습니다.

     

    4월부터는 레거시 자사 관리 시스템을 삼성에 썼던 것처럼 React + Spring Boot 환경으로 개편해 보자고 해서, 삼성 때처럼 프로젝트를 세팅하고, 팀원들한테 해당 시스템을 설명해 드렸습니다.

    DB도 새로 파고, 팀원들이 관리 메뉴를 만들기 위해 필요한 프로그램관리 기능이 있는 메뉴,  메뉴관리 기능이 있는 메뉴, 사용자 관리 기능이 있는 메뉴를 빠르게 구성했습니다. 

     

    이렇게 새로운 시스템으로 개편하던 중 배포에 대한 부분을 맞닥뜨렸고, 서버 측과 클라이언트 측 소스를 git의 deploy branch에 올려놓고, jenkins에서 해당 브랜치의 소스를 배포하게 되는 간단한 파이프라인을 구성하였습니다.

    이때까진 운영계 없이, 개발계만 배포할 것이기 때문에 가장 간단하고 어렵지 않은 배포 파이프라인으로 구성했습니다.

     

    이렇게 구성하게 되고, 개발계가 저 없이도 개발이 진행이 되기 시작한 게 2024년 6월 초입니다.

     

    그리고 7월부터는 안성팜랜드의 카드 매출에 대한 부분을 KCP에서 FTP로 데이터 파일을 끌어와서 해당 데이터를 미리 정의된 전문으로 파싱 해서 테이블에 저장하고, 해당 테이블의 데이터를 더존 ERP에 넣는 배치 개발 프로젝트에 투입되어,  전문에 맞게. dat파일을 파싱 하고, ERP API를 호출하여 데이터를 넘기는 배치 모듈을 처음으로 개발하게 되었습니다.

     

    전문에는 몇 번째부터 몇 자리가 어떤 데이터이고, 어디부터 어디가 어떤 데이터인지 정의가 되어있었습니다.

    이런 식으로 데이터를 받아오고 파싱 하는 것이 처음이라 정말 신기했어요.

     

    처음에는 받아오고, 파싱 하고, 넘겨주고 하는 게 다인줄 알았지만 나중에 운영이 들어가게 되니 해당 배치 프로그램이 정해진 시간 이외에도 고객사가 데이터가 필요한 순간에 바로 받아 올 수 있는 수동 배치가 필요해졌습니다.

    그래서 해당 로직이 있는 서비스를 실행시키는 trigger api를 컨트롤러로 따로 빼서 자사 관리 시스템에 버튼을 누르면 해당 api를 호출하는 기능을 추가로 개발하였습니다. 

     

    이때까지만 해도 자사 관리 시스템의 개편이 진행 중이었으나,

    테이블오더가 캘리스코 사보텐에 나가며 잘 구동되고, 마진도 많이 남는 것을 확인한 회사의 높은 분들이 앞으로는 기기 값이 싼 안드로이드 기기에  자사의 포스와 키오스크 등을 넣자는 의지가 강해져서 자사 관리 시스템 개편이 잠정 중단되게 되었습니다...

     

    이렇게 되어 2024년 상반기에 절반 이상을 개발한 자사 관리 시스템 개편 프로젝트는 우선순위가 가장 낮게 변경되고, 현재 글을 적고 있는 2025년 말에도 진행이 되지 않고 있습니다..

    (현재도 자사 관리 시스템의 DB만 살짝 변경한 프로그램을 사용하고 있습니다.. 하지만 미뤄둔 React + Spring Boot 3.x대로 개편하자는 이야기가 현재는 조금씩 나오고 있습니다. 내년에는 진짜 진짜 진행할 수도 있겠네요..)

     

    2024년 상반기는 이렇게 진행하던 프로젝트가 엎어지며 마무리가 됩니다.

     

    이제는 2024년 하반기.

    지난번에 개발한 테이블오더가 잘되며 안드로이드 포스, 키오스크 시장에 진출하고자 마음을 먹은 회사는 안드로이드 포스와 키오스크 개발에 돌입하기 전에 포스와 키오스크에 연동되어 돌아가는 기기들을 관리하는 프로그램을 먼저 개발할 필요성을 느끼게 됩니다. 

     

    포스와 키오스크에 연동되어 돌아가는 기기나 솔루션:

    • 주방 프린터
      • 포스나 키오스크나 테이블오더에서 주문을 넣으면 주방에 주문서를 뽑아 알리기 위함.
    • DID(Digital Information Display)
      • 주문이 들어가고, 완료되면 고객을 호출하기 위함.
    • KDS(Kitchen Display System)
      • 주문이 들어가면, 현재 주방에서 만들어야 할 주문이 어떤 어떤 게 있는지 확인하면서 조리하기 위함.
    • 외부 배달 프로그램
      • 배달 주문을 받기 위함
    • 라벨 프린터
      • 라벨 프린터를 사용하는 매장들이 사용하기 위함.
    • 선주문 프로그램
      • 앱에서 선주문을 하게 되면 포스와 주문을 통합하기 위함.

     

    위에 적힌 것처럼 연동해야 할 기기와 솔루션이 아주 많았기 때문에 추후를 생각해서 회사는 연동 프로그램을 먼저 개발하길 원했고, 저의 다음 투입 될 프로젝트는 연동 프로그램이 되었습니다.

     

    요구사항은 위에 적힌 프로그램 및 기기 및 솔루션이 모두 이 연동 프로그램을 바라보고 주문을 관리하는 Android와 Windows에서 돌아갈 수 있는 프로그램이었습니다.

     

    멀티 플랫폼으로 개발해야 한다는 게 저에게는 가장 크게 다가왔습니다.

    SQLite를 써야 할 것이 예상되어 추후 복잡해질수록 관리가 어려워질 React Native는 안중에도 없었습니다.

    그래서 멀티 플랫폼으로 개발하기 위해 Flutter와 한창 뜨고 있던 Kotlin Multiplatform 중에 선택해야 했고, 결국 익숙하지 않은 언어인 Dart를 사용하는 Flutter 대신 그나마 Java를 사용해 왔던 저에게 더 익숙한 Kotlin Multiplatform(이하 KMP)를 선택하게 되었습니다.

     

    물론 자료 같은 거는 Flutter가 더 많았지만 그래도 내가 잘 아는 gradle로 프로젝트 의존성을 관리하고, 실행되는 환경도 그나마 더 잘 알고 있는 KMP가 낫겠다 싶었고, 기존에 키오스크를 개발한 언어가 Java이기에 만약에 영수증 프린터 같은 외부 기기를 연동하게 된다 하더라도 영수증 Component 같은 기존에 만들어 놓았던 포맷 모듈도 공통으로 사용할 수 있기 때문이었습니다.

    그래서 KMP로 안드로이드, 윈도우 앱을 개발하게 되었습니다.

     

    그리고 외부 기기나 외부 솔루션과 원활한 

    해당 KMP에서 Ktor을 활용하여 netty로 안드로이드 환경에서도 was를 띄워 Rest API를 통해 연결할 수 있도록 구성하였습니다. 

     

    이 연동 프로그램을 개발하며 의존성 관리와, 어느 플랫폼 또는 모듈에 종속되지 않는 구조를 잡고 유지하며 개발하는 것에 가장 심혈을 기울였던 것 같습니다. 아키텍처에 대한 고민이 많았고, 안드로이드 환경에 대한 이해도가 높아졌습니다.

     

    개발기를 모두 적기에는 글이 너무 길어질 것 같으니, 이 연동 프로그램에 대한 부분은 추후에 글로 더 적겠습니다..

     

    그리고 어느덧 연동 프로그램을 개발하다보니 10월,

    10월10일부터 31일까지 3주간 산업기능요원 기본교육 받으러 논산에 훈련소를 다녀왔습니다.

    3주의 길지 않은 시간이었지만 아직도 기억에 남네요. 아침에 자다가 들려오는 나팔소리, 점호...

     

    그렇게 훈련소를 다녀오고 나서 11월,

    훈련소를 3주간 다녀와서 회사로 복귀하고 나니 실장님이 저를 불러서 새로운 프로젝트를 급하게 해야한다고 말씀하셨습니다.

    그래서 새로 시작하게 된 프로젝트는 롯데의 사직구장에 들어가게 될 QR Order 프로젝트(이하 QR오더). 기간은 약 4달. (11월 시작 2월 오픈 목표)

     

    전체적인 프로젝트의 구상은 사직구장의 각 F&B 매장에 QR오더 페이지로 들어가게 되는 QR을 배치하고, 관람석에도 QR을 배치해서 QR로 매장에 주문을 넣고, 매장에서는 조리가 완료되면 해당 QR오더를 이용한 고객을 카카오톡 알림톡으로 호출하는 구조였습니다.

     

    그래서 이 프로젝트에 투입할 인원이 없었기에 저 혼자 프론트 페이지와 백엔드 서버를 모두 담당하게 되어 부담감이 컸습니다. 저 혼자 진행하는 이런 대형 프로젝트는 처음인데다가 고객사가 롯데라니.. 그래도 마음을 다잡고 차근차근 프로젝트를 진행해나갔습니다.

     

    QR오더 프론트는 React와 Scss로 개발했고, Zustand로 상태를 관리했습니다.

    백엔드 서버는 Spring Boot 2.7, DB는 기존에 자사 관리 시스템과 공유해서 사용하기 위해 MSSql에 Jpa + QueryDsl 사용했습니다. 

    추후 저희 회사의 다른 개발자분들이 붙으며 프론트에는 react-query, 백엔드에는 mybatis를 추가적으로 의존하여 사용하게 되었습니다.

     

    배포는 jenkins로 프로젝트에 미리 만들어둔 배포 sh 파일 실행해서 war로 말고, 웹은 React build해서 ec2서버의 Tomcat과 Nginx로 scp를 통해 올림으로서 배포를 진행하였습니다. 

    처음에는 이렇게 개발계에서 배포하면 좋겠지 했는데 나중에는 파이프라인 짤 시간도 없고 해서 그냥 운영계에도 가져다가 사용했습니다..

     

    제가 그렸던 운영계의 배포 파이프라인은 이러했습니다.

    컴퓨터에서 버전 올려서 deploy 브랜치에 pr을 올려서 merge되면 gitlab action 이 버전이 올라갔다는걸 검증하고 docker로 컨테이너로 말아서 AWS ECR에 올리고, ECR에 올라가면 ECS에 바로 배포 하는 파이프라인.

    제가 꿈꿨던 파이프라인은 이랬으나, 시간적 여유가 없었기에 실현되지 못하고 넘어갔습니다. 

     

    그리고 12월이 끝나며 2024년 21살의 박종연은 QR오더를 개발하며 마무리를 짓게 되었습니다.

     

    실제 QR 오더 작동 화면

     

     

     

    생각보다 큰 프로젝트들을 많이 진행했던 한 해네요.

    2025년에 2024년과 2023년 막바지를 적으니까 뒤죽박죽인 것 같은데, 나중에 가능하다면 연동 프로그램이랑 QR오더 프로젝트에 대해서도 따로 적어보겠습니다.

     

    긴 글 읽어주셔서 감사합니다~!

    '일상 > 회고' 카테고리의 다른 글

    2023년 상반기 회고. 근데 2022년 하반기를 곁들인..  (2) 2023.07.04
    2022.10.21 최근 근황  (2) 2022.10.21

    댓글

Designed by Tistory.