[김희정] 경력기술서

백엔드 중심 풀스택 개발자

휴대폰: 010-7579-3151
이메일: hjk.developer@gmail.com
GitHub: https://github.com/hjk997
Blog: https://travel2develop.tistory.com/

경력 요약

  • Wisenut 4년(2021.08.17 ~ 2025.09.30) 재직
  • 자사 솔루션(챗봇, 검색엔진)을 기반으로 다양한 프로젝트를 수행했습니다.
  • 신규 시스템 구축, 고도화 프로젝트에 참여하며 설계와 개발을 담당했습니다.
  • 또한 6번의 단독 파견에서는 고객사와 직접 협의하여 요건 정의와 일정 관리까지 수행하며 프로젝트 리딩 경험을 쌓았습니다.

보유 기술

Backend
JavaSpringMyBatisPython
Frontend
JavaScriptjQueryJSP
Database
OracleMariaDBMySQLPostgreSQLMongoDB
Infra & Cloud
TomcatnginxDockerS3
Tools
Gitsvn

자격증

토이 프로젝트

매일 목표를 달성하고 체크하는 웹앱
linux Pythonfastapijavascript dockerPostgreSQLMongoDB
참여인원 2명
역할 프론트엔드/백엔드 개발, 시스템 설계
  • 새로운 기술 사용을 목표로 다양한 라이브러리 및 프레임워크 학습(fastapi, NoSQL)
  • RDB, NoSQL을 사용한 CRUD 기능 구현
  • 직접 aws에서 ec2, rds, s3 등 호스팅을 하며 인프라 학습
  • chatGPT, copilot을 활용한 퍼블리싱 개발

자기개발

개발책 스터디
2023.03 ~ 2025.01
월, 화, 수 오후 10시에 함께 책을 읽고 노션에 요약 내용을 정리하는 스터디 진행
참여인원 4명
※ 완독 책 목록
  • 이펙티브 자바
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1, 2
  • JAVA 언어로 배우는 디자인 패턴 입문

주요 프로젝트 경험

농협중앙회 챗봇 고도화 3차 용역
2024.06 ~ 2024.12
은행 상담사용 챗봇 기능 고도화 및 서버 이전
linuxJavaSpringMyBatis JavaScriptjQueryJSP OracleMariaDBTomcat
참여인원 10명
역할 프론트엔드/백엔드 개발, 서버 이전
  • 기 운영 중인 10개 프로그램 구조 파악 및 이관
  • 챗봇 관리도구 신규 퍼블리싱 적용 및 상담사 질의 등록 기능 개발
  • 파일 업로드 라이브러리 일괄 변경
대한항공 일반망 검색엔진 구축
2024.03 ~ 2024.05
사내에서 사용하는 지식 관리 서비스(KMS)에 대한 검색 시스템 개발
AWS Fargate OAuth2S3Secret Manager JavaJavaScript
참여인원 1명
역할 프로젝트 협의, 백엔드 개발, API 설계
  • AWS Fargate (쿠버네티스 자동화)환경에서 자사 솔루션 연동, 검색 서비스 제공
  • Google OAuth2 로그인, 검색결과 제공 REST API 개발
  • Secret Manager를 통한 DB 접속 정보 관리
  • 파일 검색 및 다운로드를 위한 S3 연동 개발
  • google drive api 검색기능, aws SES 연동
  • 고객사와 일정 협의 및 요건 정리
하이비젼시스템 내부 검색 구축
2024.01 ~ 2024.05
사내 파일 서버에서 파일을 찾기 어려운 문제를 해결하기 위한 검색 시스템 개발
Windows JavaJavaScriptTomcatnginx
참여인원 2명
역할 프로젝트 협의, 프론트엔드/백엔드 개발, 시스템 설계
  • 고객 요구사항 협의 및 일정 조율 담당
  • 고객사 사내 파일 서버에 있는 약 10TB 규모 파일(.docx, .xlsx, .pptx 등) 수집·색인
  • 분산 검색엔진 구조 설계 및 프론트/백엔드 구현

기타 프로젝트 (요약)

자기소개

'모른다'가 '불가능'을 의미하지는 않는다
새로운 기술을 습득하여 프로젝트를 진행한 경험

IT 업계에서는 하루가 멀다하고 새로운 기술이 등장합니다. 일간에서는 이러한 세태를 따라가지 못해 초조해하고, 겪어보지 못한 기술에 막연한 두려움을 갖기도 합니다. 그러나 저는 이 모든 것에 대비하기 위해 두려워할 필요는 없다고 생각합니다. 배우고자 하면 익히지 못할 기술은 없다고 생각하기 때문입니다.

자사의 검색엔진 솔루션은 온프레미스나 aws ec2와 같은 통상적으로 사용되는 서버 환경에 주로 납품되었습니다. 그러나 고객사에서 AWS fargate 환경 구축을 고집하는 일이 일어났습니다. fargate는 마이크로 서비스를 손쉽게 운영하기 위한 쿠버네티스 기반의 클라우드 환경으로, ec2와는 달리 터미널에 직접 접근할 수 없습니다. 그래서 터미널에서 명령어를 입력해서 프로그램을 설치하고, 로그를 확인하는 것에 익숙한 개발자들에게 fargate는 낯설고 불편한 환경일 수밖에 없었습니다.

제게 주어진 프로젝트 기간은 두 달이었습니다. 저는 업무를 담당하게 된 날부터 도커와 쿠버네티스를 공부하기 시작했습니다. 먼저 회사의 지원금으로 책을 구매해서 Virtual Box가상환경에서 도커 실습을 하고, 쿠버네티스의 기본 구조를 파악하는 것부터 시작했습니다. 처음에는 컨테이너, 포드, 도커파일 같은 용어가 처음엔 생소하기만 하여, 고객사와 회의를 하는 것조차 힘들었습니다. 그러나 시간이 지날 수록 점차 개념을 이해할 수 있게 되었습니다. 솔루션을 쿠버네티스에 배포하는 도커파일을 직접 작성하고, 배포에 성공했을 때는 무척 기뻤습니다.

프로젝트 진행을 위해 AWS Secret Manager와 s3 연동도 필요하였기에, aws 공식 문서와 샘플 소스를 몇 번이고 읽으며 학습했습니다. 끝내 기간 내에 무사히 프로젝트를 완료할 수 있었습니다. 배우는 것을 두려워하지 않고, 포기하지 않았던 덕분입니다.

어떤 것이든 확실하게 이해하기
낯선 시스템 구조를 이해하고 적응하기 위한 노력

저는 어떠한 것이든 확실하게 이해하는 것이 중요하다고 생각합니다. 만일 단순히 프로그램을 빠르게 구현하는 데에만 집중하고, 샘플 코드를 아무렇게나 조합한다면, 당장은 동작할 수 있어도 언젠가 장애가 발생하기 마련입니다. 그렇게 되면 자신조차도 이해할 수 없는 스파게티 코드를 하나하나 뜯어보며, 간단한 문제 해결에도 많은 시간을 소요하게 됩니다. 그렇기에 프로그램을 확실히 이해하는 게 오류를 줄이고, 자신이 하는 일에 자부심을 갖는 방법이라고 생각합니다.

챗봇 프로그램이 서버 이전을 하게 되면서, 기 구축된 10개 시스템의 구조를 파악해야 하는 일이 생겼습니다. 이전 프로젝트에서 작성된 산출물은 각 시스템에 대한 개요와 실행 방법만 기재되어 있고, 연계 시스템이나 프로그램 구조가 충분히 기재되어 있지 않았습니다. 따라서 소스를 직접 보며 시스템 구조를 분석하는 과정이 필요하였습니다.

먼저 각 시스템이 통신하는 엔드포인트, DB 접속 정보를 파악하였습니다. 그 다음에는 소스코드에서 핵심 기능의 로직을 확인하였습니다. 그렇게 파악한 프로그램 목록은 아래와 같습니다.

  • 웹 기반 spring 시스템: 3개
  • 외부 시스템과 연동하는 배치 프로그램: 2개
  • 챗봇 클라이언트의 어댑터 역할 시스템: 4개
  • docx 파일을 HTML로 변환하는 프로그램: 1개

배치일 경우 어떤 시스템에서 이 배치를 필요로 하는지, 연계 데이터는 무엇인지 상세하게 확인하였습니다. 어댑터 프로그램의 경우 고객사 테스트 데이터를 활용하여 챗봇 실행 결과를 검증하며 구조를 파악했습니다. 무엇보다도 프로그램 연계 구조를 유심히 분석하였습니다. 그렇게 해야 프로그램 로직 변경 시 다른 프로그램에 미치는 영향도를 파악할 수 있었기 때문입니다. 그리고 서버 이전 시 변경해야 할 접속정보, 정상 동작 확인 방법을 매뉴얼에 꼼꼼히 작성하였습니다.

그 결과 프로젝트를 수행하는 동안 저는 누구보다도 시스템에 대해 잘 이해하게 되었습니다. 누가 시스템에 대해 물어보면, 제가 개발한 프로그램인 것처럼 술술 대답할 수 있게 되었습니다. 놓치고 있었던 개발 필요 내역을 발견하기도 했습니다. 결과적으로 서버 이전 후, 고객사 직원이 보는 앞에서 정상 동작 확인을 시연하며 안정적으로 서버 이전을 완료할 수 있었습니다.