포지션: Backend Developer (full-stack)
경력: 3년차
전문 분야: Spring Framework, 엔터프라이즈 애플리케이션 개발
직무: WEB, 응용S/W 프로그래머
사용 기술: Git, GitHub Teams, JIRA, CI/CD
"또 코드가 날아갔어요..." 팀에서 자주 들리던 한숨 소리였습니다. SVN으로 관리되던 프로젝트에서는 코드 충돌과 손실이 빈번했고, 머지 작업은 개발자들의 악몽이었습니다.
"전 회사에서 GitLab과 RedMine을 사용해봤는데, 현재 상황보다 훨씬 효율적이었어요. 다만 몇 가지 불편한 점이 있었죠." 저는 대표이사님께 이전 경험을 바탕으로 개선안을 제안했습니다. "우리 회사에 Git을 도입하고 개발 문화를 바꿀 수 있겠어요?" 대표님의 이 질문에 저는 자신 있게 프로젝트를 맡게 되었습니다.
주요 해결 과정 및 성과:
"초반엔 적응에 힘들었지만, 이제 코드 날아가는 걱정 없이 개발에만 집중할 수 있어요!"라는 개발자들의 피드백이 가장 큰 보람이었습니다. 대표이사님도 "개발 문화가 완전히 달라졌다"고 평가해주셨습니다.
사용 기술: Java, XML, CSDB(Windchill), 멀티스레드 프로그래밍
군용 정비 매뉴얼을 관리하는 S1000D 시스템이 동시 접속 시 멈추는 심각한 문제에 직면했습니다. 사용자(30~40 명)들이 접속할 때마다 시스템이 느려지거나 요청이 무시되는 현상이 발생했고, 이는 일정에 직접적인 영향을 미치고 있었습니다.
코드를 분석한 결과, 무분별한 멀티쓰레드 로직과 3,000줄이 넘는 거대한 단일 클래스와 하나의 if문 안에 400~500줄씩 직접 구현된 비즈니스 로직이 문제의 원인이었습니다. 레거시 시스템의 전형적인 사례였죠.
주요 해결 과정 및 성과:
이 경험을 통해 얻은 가장 큰 교훈은 "스파게티 코드와의 싸움"에서 승리하기 위해서는 코드 구조화의 중요성과 멀티스레드 프로그래밍의 가치를 몸소 체험했다는 점입니다. 사용자들이 "시스템이 이제 정말 빨라졌다"고 피드백을 줬을 때 느낀 보람은 잊을 수 없습니다.
사용 기술: Hibernate, JPA, Spring Data
"이 쿼리만 수정하는데 3시간이 걸렸어요..." 수백 줄의 생 SQL로 가득한 레거시 코드에서 해외 개발자들이 겪는 고통이었습니다. JDBC로 직접 SQL을 작성하는 방식은 개발 속도와 유지보수성에 심각한 병목 현상을 일으키고 있었습니다.
문제 해결을 위해 Hibernate ORM과 Spring Data를 단계적으로 도입하는 프로젝트를 제안했습니다. 레거시 프로젝트에 자꾸 새로운 모듈을 붙이는데 불안감을 표현했지만, 제가 준비한 데모를 보여드렸습니다: "15줄의 SQL 쿼리가 단 한 줄의 코드로 변환되는 모습"이 모두를 설득했죠.
주요 성과:
이 프로젝트는 단순한 기술 도입을 넘어 베트남 팀과 생산성과 행복도를 높인 경험이었습니다. "쿼리 작성보다 실제 문제 해결에 집중할 수 있게 되었다"는 해외 개발자들의 후기는 잊을 수 없습니다.
사용 기술: Python, Flask, MSA, Ollama, Llama 3
"AI 챗봇으로 기술 문서를 검색하고 싶은데, 보안상 외부 API는 사용할 수 없습니다." 고객사의 요청이었습니다. 로컬 환경에서만 작동하는 AI 챗봇을 개발하는 도전이 시작되었습니다.
처음 Llama 3 70B 모델을 고려했지만, 무려 80GB의 그래픽 메모리가 필요하다는 사실에 놀랐습니다. "이렇게 큰 모델은 현재 예산으로는 불가능하겠네요." 현실적인 대안으로 16GB 그래픽 메모리에서 작동 가능한 Llama 3 8B 모델을 선택했습니다.
교범이 수정되면 그 값들을 자동으로 학습시키는 Flask 서버를 별도로 띄워서 지속적인 학습을 진행시켰습니다.
주요 성과와 도전:
"ChatGPT만큼 똑똑하진 않지만, 전자교범을 안내하는 챗봇이 생겼다는 게 중요합니다." 이 프로젝트는 최신 기술의 한계와 현실적인 제약 속에서 최적의 균형점을 찾는 값진 경험이었습니다.