티스토리 뷰

eTc

[회고] 2023년 회고

Aaron 2024. 1. 12. 00:18
반응형

2023년 회고

늦은 회고로.. 글은 올해(2024년도) 기준으로 작성되었다.

Intro

2023년에도 잔디를 구멍 없이 심는 목표로 달려왔지만.. 아쉽게도 몇 군데 구멍이 보여서 아쉽다. 그래도 2023년을 열심히 달려온 나를 위해 박수로 시작을..👏🏼


Result

2023년도는 정말 다사다난했다.. 기쁘고 감사한 시간이 많았던 만큼 힘들고 슬픈 시간도 있었지만, 돌아보면 결국 하나님께 감사드릴 일들뿐이다. 크고 작은 사건을 통해 작고 초라했던 나를 더 나은 사람으로 만들어 주시고, 주변에 좋은 사람들을 붙여 주시고, 부족한 것들을 채워주시고.. 돌아보면 모든 것이 감사한 한 해였다.

회사

프로젝트

2023년도에 기억에 남는 큼지막한(?) 프로젝트는 OOAh luxe, AppleCare+ 후 가입 서비스, DB 탈중앙화 정도인 것 같다.


OOAh luxe

OOAh luxe11번가의 명품 전용 플랫폼이다. 기본적으로 서비스 출시에 따른 나의 11번가 및 클레임 영역 변동 사항들을 반영하고, 핵심은 NFT 보증서 페이지 개발이었다. NFT 발행을 위해 Klip, UPTN 두 서비스를 이용하게 되었는데, 작년 AppleCare+ API를 사용했던 경험이 많은 도움이 되었다.
하지만 작업을 진행하면서 API로 파일을 직접 전송하는 부분은 처음 구현해 보게 되었는데, 구현하는 과정에서 헤맸던 기억이 있다. 당시 API로 파일을 전송하기 위해 적용했던 방법은 블로그에 간단히 남겼었다.


Klip, UPTN 서비스에서 NFT 발급을 위한 API 통신 절차에 차이가 있었는데, 민팅 전처리, 인증, NFT 이미지 업로드, 민팅 요청, 민팅 후처리 등 큰 개념으로 분리해 보면서 어떻게 하면 다형성을 잘 적용할 수 있을지 고민을 많이 해보았던 것 같다. 또, NFT 발행을 위해 사용자는 이름과 휴대폰 번호를 입력하게 되는데, 사용자가 이용할 서비스(Klip 또는 UPTN)에 가입된 정보가 없어서 민팅 요청에 실패하는 상황에도 무분별하게 외부로 API를 요청하는 행동을 방지하기 위해 NFT 발행 재시도 횟수를 Redis로 제한하게 되었다. 사용자는 최대 5번 NFT 발행 시도를 할 수 있고, 사용자 정보와 시도 횟수를 Redis에 저장하는 방식으로 구현하게 되었다. Redis는 실무에 적용해 보고 싶었던 기술인데 프로젝트를 진행하며 적용해 볼 수 있어서 좋았다.
Redis를 프로젝트에 적용하기 위해 공부한 내용들도 블로그에 정리했었다.


API 통신 과정에서 인증과 개인정보 암호화 단계가 있었는데 RSA 암호화, KISA SEED CBC 암호화, JWT 를 다뤄보면서 학습한 내용을 블로그에 정리했었다.


NFT 발생 건수는 명품 전용 플랫폼 상품 주문 건수 대비 5% 정도 되는 것 같은데 생각보다 이용 비율이 낮아서 아쉽긴 했지만 그래도 좋은 경험이 될 수 있었던 프로젝트였다.


AppleCare+ 후 가입 서비스

2022년도에 애플케어 동시 가입 서비스를 개발하고, 작년(2023년도)에는 애플케어 후 가입 서비스를 개발하게 되었다.


2022년도와 비교하였을 때 신제품의 애플케어 판매 연동률과 추가 수익이 많이 증가하게 되었고, 애플케어 후 가입 서비스가 사용자들에게 11번가만의 차별적인 서비스로 인지되고 있고, 주요 커뮤니티에서도 반응이 좋다는 소식에 굉장히 감격스러운(?) 감정을 느꼈다.


또한, 지속적으로 애플케어 연동 실패 사례를 모니터링하며 원인을 발견하여 개선해 낼 수 있었고, 연동 성공률도 높일 수 있었다.


DB 탈중앙화

중앙 집중식 데이터베이스를 영역별로 분리하는 탈중앙화를 대비하여 분리 대상 테이블에 참조되고 있는 쿼리를 분리하고, 이관하는 작업을 진행하게 되었다. 이관 대상 코드가 적지 않았기 때문에 남은 작업이 효율적으로 진행될 수 있도록 이관 작업에 공통으로 사용할 수 있는 유틸리티 클래스를 만들게 되었다.


유틸리티 클래스는 이관 대상 코드에 공통으로 적용될 수 있도록 함수형 인터페이스를 활용하게 되었고, 이관 검증을 위해 이관 전/후 로직을 모두 호출하게 되는 데 순차적으로 실행되다 보니 전체 실행시간이 두 배로 증가한다는 문제와 짧은 시간 차이로 조회 결과가 달라지는 경우 정상 상황임에도 검증이 실패되는 문제가 있었다. 이 부분은 CompletableFuture 클래스를 적용하는 전략으로 비동기적으로 해결할 수 있었다.


그 밖에도 아래와 같이 작업 단위별로 스위치를 적용하여 이관 코드를 관리하고,
DB : DB 직접 조회(AI-IS 적용)
API: API 호출만 수행(TO-BE 적용)
COMP: DB 직접 조회와 API 호출 결과 검증
STB: 안정화 단계


안정화(STB) 단계의 경우 슬랙 알람을 구성하여 모니터링하고, 스위치가 COMP(DB 직접 조회와 API 호출 결과 비교) 단계일 경우 비동기 적용 등.. 코드 이관 작업을 진행하면서 많은 고민도 해보고 달리는 자동차 바퀴를 갈아 끼우는 경험(?)을 해볼 수 있었다.


유틸리티 클래스를 만들면서 Functional Interfaces, CompletableFuture 활용을 위해 학습한 내용을 블로그에 정리했었다.

개선

2023년에는 다양한 개선을 시도해 보려고 노력했다.
더 많은 개선을 이뤄내지 못해서, 그리고 더 큰 개선에 도전하지 못해서 아쉬움이 많이 남지만, 올해에는 아쉬웠던 부분들을 잘 채워보아야겠다.


여러 절차가 필요한 반복 업무를 API로 간소화

  • 여러 절차가 필요한 반복적인 업무들을 발견하면 API로 간소화하는 작업을 하게 되었다.
  • 대부분 사람 손을 거치는 작업인데 기계가 처리하도록 하여 휴먼 에러를 막고, 작업을 간소화시켜 업무의 효율성을 높일 수 있었다.

사내 배치 Jenkins Build 자동화

  • 사내 서버 정기 점검 이후 약 20개의 미수행 배치를 수동으로 재기동하던 작업이 있었는데, 미수행된 배치가 있다면 자동으로 Jenkins Build를 자동으로 실행시켜 주는 별도의 배치를 구성하게 되었다.
  • 약 20개의 배치를 수동으로 재기동하던 작업은 생각보다 번거로운 작업이었는데 이제 신경 써야 할 포인트를 줄일 수 있어서 다행이다.
  • Jenkins REST API in JAVA

팀 배치 서버 무중단 배포


공통 코드 조회 슬랙봇(WhatIsThisCode)

  • 개발하면서 간단한 프로퍼티를 조회하기 위해 매번 번거로운 DB 접근 절차를 거치게 되면서 개발 생산성 향상을 목적으로 만들게 되었다. 이왕 만든 김에.. 많은 분이 사용해 주셨으면 하는 기대가 있었는데 생각 이상으로 많은 사내 개발자분이 사용하고 계신다는 사실을 알게 되어 너무 뿌듯했던 기억이 있다. 또 팀원분들의 피드백으로 봇을 더 똑똑하게 만들 수 있었다.
  • 슬랙봇으로 개발 생산성 높이기 with Slack RTM API

맞춤법 검사 슬랙봇(SpellChecker)

  • 공통 코드 조회 슬랙봇에 힘을 입어 맞춤법 검사 슬랙봇을 만들게 되었다. 내가 필요한 편의 기능이라면 다른 분들도 동일하게 필요로 하는 기능일 것으로 생각한다. 처음에는 내가 사용하려고 만든 기능들을 많은 분이 사용해 주셔서 뿌듯하다.

단순 반복 업무(비교, 수정 등..) 배치로 자동화

  • 사업팀에서 단순 반복적인 작업을 하는 모습을 보고 배치로 자동화시키게 되었다. 단순 반복 업무를 배치로 전환하여 "덕분에 하루에 1시간 정도 소요되는 작업을 줄일 수 있었다"는 감사 표현을 받으면서 "이렇게도 주변에 좋은 영향을 전할 수 있겠구나."라는 생각을 하게 되었다.

사이드 프로젝트

사이드 프로젝트를 진행하면서 평소에 관심 있고 사용해 보고 싶었던 기술을 적용하게 되었는데. 가장 먼저 해보고 싶었던 것은 AWS EC2에 배포해 보는 것이었다.
AWS EC2, RDS, MariaDB, Jenkins, Docker, Nginx 등을 활용하여 서버를 구축하게 되었는데 실무에서는 사실 배포 시스템 구성이나 서버 구축이 이미 되어있는 경우가 많다 보니 경험하기 어려웠던 부분을 사이드 프로젝트를 통해 경험해 볼 수 있었다.
그 밖에도 NoSQL, Redis, Elasticsearch, Kafka 를 적용해 볼 계획이다.

독서

출퇴근 길 지하철에서 유튜브도 보고 이런저런 기사나 글도 읽으며 시간을 보냈었는데, 하루 종일 전자 기기를 보는 안쓰러운 나의 눈이 너무 피로했는지 자주 뻑뻑해지고, 침침해져서 출퇴근 길에 휴대폰을 내려놓기로 했다.

그렇다고 지하철에서 멀뚱멀뚱 서서 가는 것도 너무 심심해서 무엇을 하면 좋을까 생각하다가 출근길에 자주 마주치는 분이 계시는데 분주한 출근길에 책을 읽으시는 모습이 너무 인상 깊었다. 그래서 그분의 출근길 독서 친구가 되어주기로 마음을 먹고 지하철 이동 시간이 30분 정도로 긴 시간은 아니었지만, 책을 읽기 시작했다.


2023년도 하반기부터 읽기 시작해서 많이 읽지는 못 했지만, 올해는 출퇴근 시간을 통해 이전보다는 많이 책을 읽을 수 있게 될 것 같다. 다만, 사람이 많은 출퇴근 시간 두꺼운 책은 주변에 불편함을 제공할 수 있으니.. 지혜롭게 읽을 방법을 생각해 보아야 할 것 같다.


개인적으로 영화를 보고 몇 년이 지나면 줄거리가 기억이 잘 나지 않듯이 책도 시간이 지나면 내용이 가물가물하고 특정 내용에 대해 다시 읽고 싶어도 책을 펼쳐 원하는 정보를 찾기까지 적지 않은 시간이 걸리게 된다. 그래서 책을 읽으면서 중요한 부분을 체크해 두고 개인 스터디용 블로그에 정리를 해오고 있다.


도메인 주도 개발 시작하기는 DDD를 아주 얕게 알고 있었는데 조금 더 자세히 알고 싶어 져서 읽게 되었다. 그런데 역시나.. 알고 있던 내용은 빙산의 일각이었고 흥미로운 내용들이 많아서 재미있게 읽을 수 있었다. 업무에 적용해 보고, 진행 중인 사이드 프로젝트에도 잘 녹여내 보려고 한다.


소프트웨어 장인은 머리에 과부하가 와서 휴식이 필요한 시기에 읽었다. 편한 마음으로 읽을 수 있었고 어떤 마음가짐으로 일을 대해야 할지 다시 한번 돌아볼 수 있었다.

강의

퇴근하고 강의를 들어야 뭔가 하루가 마무리되는 느낌(..?)이다. 그러다 보니 2023년도에는 다양한 강의를 듣게 되었던 것 같다.


코딩으로 학습하는 GoF의 디자인 패턴은 강의나 기술 도서를 보다 보면 디자인 패턴에 대한 이야기가 자주 언급되는데 그냥 지나쳤던 적이 많았었다. 그래서 이참에 기본적인 내용이라도 알아두면 좋겠다 싶어서 수강하게 되었다.


더 자바, 코드를 조작하는 다양한 방법, 더 자바, Java 8은 사실 쉬어가는 기분으로 수강하게 되었는데 생각 이상으로 배울 수 있는 부분이 많았다.


이펙티브 자바 완벽 공략 1부, 2부는 Effective Java 3/E 도서를 읽으면서 어려운 용어들과 이해가 가지 않은 문장들이 많이 있어서 잠시 멈춰두고 있었는데, 이 강의를 듣고 간지러웠던 부분들이 아주 시원해진 느낌이었다. 다음 강의도 어서 나왔으면 좋겠다..


토비의 스프링 부트 - 이해와 원리, 스프링 부트 - 핵심 원리와 활용 강의도 사실 쉬어가는 기분으로 수강했는데 역시나 배워갈 수 있는 부분이 많았다.


스프링 배치는 작년에 실무에서 사용하기 위해 기본 개념만 익히고 기존 코드를 참고하면서 작성해 왔는데, 배치를 제대로 모르고 사용하는 것 같아서 수강하게 되었다. 강사님께서 배치의 내부 구조를 모두 짚어 주시면서 아주 상세하게 설명해 주셔서 배치와 친해질 수 있는 시간이었다.

블로그

기본적으로 티스토리에 글을 게시하고 Git Blog에 기술 도서나 강의 내용을 정리하고 있는데 우연히 GikBook 블로그를 보고 마음에 무척 들어서 Git Blog를 GitBook으로 이관하게 되었다. 다크 모드를 지원하고 검색 기능도 좋지만, 무엇보다 목차 정리가 깔끔해서 마음에 들었다.


티스토리 블로그는 하루 평균 방문자가 많이 줄어들었다. 평일 기준으로 PV 2,000 정도 되었었는데, 요즘 들어 절반으로 줄어들었다. 대부분 ChatGPT를 많이 사용하다 보니 그런 것인지.. 블로그 글이 영양가가 없어져서인지.. 모르겠지만 아쉬움이 크다.

안 그래도 단순히 개념 정리 내용이 많았었는데 실무에서 겪은 일들이나 장애 대응 관련하여 기술적으로 깊은 내용들을 다루는 글들을 게시해 보아야겠다는 생각이 들었다.

컨퍼런스

WOOWACON 2023


Result

코로나로 대부분의 컨퍼런스가 그동안 온라인으로 진행되었었다. 그러다 보니 컨터런스 느낌보다 유튜브 영상을 보는 느낌이 강했었는데, 이번에 운이 좋게도 우아콘에 추첨이 되어 처음으로 오프라인 컨퍼런스를 참여하게 되었다. 사람이 생각보다 많아서 혼자 간 게 쓸쓸하게 느껴졌지만, 충분히 잘 즐기고 온 것 같다. 개인적으로 대규모 트랜잭션을 처리하는 주문시스템 규모에 따른 진화 세신이 흥미로웠다. 지금은 우아한테크 유튜브에 우아콘에서 다룬 세션들이 영상으로 공개되어서 듣지 못한 세션들도 시간이 될 때마다 들어봐야겠다.


아참 그리고 참가 선물이 너무 인상적이었다. 무엇보다 선물 상자에 같이 들어 있던 문구가 감동적이었다. 참가 선물에도 얼마나 얼마나 많은 고민과 정성이 들어갔을지 느껴졌다.


기타

사내 기술 블로그 게시

사내 기술 블로그에 처음으로 글을 게시하게 되었다. 개인 블로그에 이런저런 글을 게시해 왔었지만 사내 기술 블로그는 어떻게 보면 회사의 얼굴을 빌려(?) 글을 게시하는 곳이라고 생각하다 보니 나의 부족한 글로 인해 회사의 기술 평가가 낮아지면 어떡할지 하는 생각으로 아무도 신경 쓰지 않는 걱정을 했었다. 하지만 이미 여러 좋은 글을 작성해 본 착한 지인의 권유로 첫 글을 게시하게 되었다.


소심한 심장이 “잘못된 내용이면 포함되어 있으면 어떡하지?”, “모두가 아는 쉬운 내용이면 어떡하지?”.. 등등 걱정을 , 막상 게시해 보니 괜한 소심한 걱정을 했구나 싶다. 이렇게 최근에도 새로운 글을 게시하게 되었는데 아무래도 개인 블로그보다 글 작성에 더 신경을 쓰게 되었고, 결과적으로 글 작성에 더 신경을 쓴 만큼 얻어가는 부분도 많았던 것 같다.


심볼릭 링크로 스프링 배치 무중단 배포하기

Java CompletableFuture로 비동기 적용하기


운동

축구는 2023년도에도 꾸준히 해왔다. 토요일 오전 8시에 경기가 시작해서 이동 시간까지 고려하면.. 사무실 출근 기상 시간과 비슷하게 6시 30분 정도에 일어나느라 피곤하긴 하지만 그래도 몸은 튼튼해지는 느낌이다. 무엇보다 선출이었던 친한 동생이 종종 축구 개인 레슨을 해줘서 그런지 다들 많이 늘었다는 말을 해줘서 기분이 좋았다.😚 그래도 축구는 잘 다치는 운동이다 보니.. 항상 조심조심하기..

KPT (Keep – Problem – Try)

Keep

꾸준함

꾸준함이 주는 이점을 알기에 2024년에도 운동과 공부를 꾸준하게 하기!


개선

2023년에 업무를 진행하면서 비효율적인 포인트나 이슈를 발견하면 개선 전략을 세우고 틈틈이 적용해 왔었는데 2024년에도 많은 개선 활동들을 해보아야겠다. 무엇보다 레거시 시스템 개편, 쿼리 성능 튜닝, 테스트 코드, 아키텍처 개선 같이 큼지막한 개선을 도전해 볼 계획이다.


독서

독서 시간(출퇴근 시간)이 보장되었으니, 올해에는 많은 책을 읽어볼 계획이다. 지금 당장 읽고 싶은 책은.. 대규모 시스템 설계 기초, 오브젝트, 실용주의 프로그래머 정도이고 다 읽으면 또 흥미로운 책들을 찾아봐야지. 강의는 아직 MSA 강의밖에 생각나는 게 없는데 또 흥미로운 주제가 있으면 들어봐야지.


운동

퇴근하면 자기 개발 활동을 하다 보니 아쉽게도 핑계지만.. 평일에는 운동할 시간이 생각보다 없다. 10분이라도 푸시업과 같은 근력운동을 시작해야 할 것 같다. 축구를 해서 체력은 그래도 버텨주지만 근력이 없으니 몸이 비실비실한 것 같은 느낌이 들어서 그렇다.😭

Problem

프로젝트

2023년도에는 OOAh luxe 명품 전용 플랫폼 프로젝트와 DB 탈중앙화 대비 분리 대상 테이블 참조 쿼리 이관이 유일하게 큰 프로젝트였다. 큰 프로젝트를 진행하면서 아키텍처 및 도메인 모델 설계도 해보고 새로운 장애 대응도 해보고 싶은데 그런 프로젝트들이 생길지 모르겠다. 없다면 큼지막한 개선 프로젝트를 찾아서라도 진행해 보아야 할 것 같다.


회사 분위기

매각 이슈로.. 회사 분위기가 좋지는 않다. 앞으로의 회사 운명이 어떻게 될지 모르겠고.. 내가 도움 줄 수 있는 부분이 없지만.. 잘 해결되었으면 좋겠다.🥲


월별 일기

일 년 치 회고를 한 번에 생각해 내려고 하다 보니 무슨 내용을 다뤄야 할지 잘 생각이 나지 않기도 하고, 기억 속에 잠시 지워져서 회고에 다루지 못하는 내용들이 생기는 것 같다. 월말에 일기 형식으로 미니 회고(?)로 작은 단위의 회고를 진행하고 연말에 정리해서 연 회고로 마무리하는 방법도 괜찮을 것 같다.

Try

사이드 프로젝트

진행 중인 사이드 프로젝트에 사용해 보고 싶었던 기술이나 아키텍처, 도메인 모델 설계 등을 적용해 보고 있다. 실무에서 직접 다루지 않는 JPA 관련 기술, AWS EC2, RDS, MariaDB, Docker 등을 다뤄볼 수 있어서 흥미로웠고, 아직 진행 중인 프로젝트지만 향로님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 통해 배포까지 진행해 볼 수 있었다. NoSQL, Redis, Elasticsearch, Kafka 등 실무에 사용되지 않는 기술들도 프로젝트에 적용해 볼 수 있다면 적용해 볼 계획이다. 할게 많지만.. 하루에 1%씩 하면 그래도 100일 만에 100%에 도달할 수 있지 않은가!


블로그

블로그에 개념 정리 내용이나 가이드를 주로 게시하고 있었는데, 실무에서 겪은 일들이나 장애 대응 관련하여 깊은 기술적인 내용을 다루는 글들을 게시해 보려고 한다. 기술을 공유하는 목적으로 시작했는데 정말 기술만 공유해서 이전에는 못 느꼈지만 내가 봐도 글들이 너무 재미가 없어 보인다.🤣 회고도 할 겸 실무에서 있었던 경험을 통한 기술을 공유하는 방식으로 주제를 다시 세워보아야겠다.

마무리

올해로 백엔드 개발자로 3년 차가 시작되었다. 3년 차 개발자라면 어느 정도의 기술력과 능력을 갖추어야 하는지 모르다 보니 주변에 훌륭한 개발자들을 보면 나도 모르게 "나는 왜 이렇게 부족할까?", "나는 그동안 뭘 한거지..", "내가 할 수 있는 것은 이 정도뿐인가.." 라고 자책을 하게 되었다.


개인적으로 퇴근 이후, 주말에 시간을 내기가 쉽지 않다 보니 개발자 커뮤니티 모임에도 참석하고 싶어도 제한이 있고 여러 개발자와 소통할 기회가 많이 없었다. 그래서 나를 더 잘 알아가고, 앞으로 무엇을 해야 하는지 찾아가기 위해 링크드인 활동을 시작하려고 한다. 그곳에서 여러 개발자분들과 소통하며 여러 정보도 공유하고, 개발자 인맥도 넓히고, 나를 더 알아가는 시간이 되었으면 좋겠다.


2024년도 다사다난한 일들이 많이 생기겠지만 언제나 사소한 일에도 감사한 마음을 잊지 않았으면 좋겠다.

Non mollare 💪🏼

반응형

'eTc' 카테고리의 다른 글

[회고] 2022년 회고  (2) 2023.01.18
[회고] 늦은 2021년 회고  (0) 2022.06.29
[ETC] 회고 방법  (0) 2022.06.18
[MacBook] 맥북 초기 불량 확인  (0) 2022.02.04
[Conference] SAMSUNG SDS Techtonic 2021  (0) 2021.12.11
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday