미리보기
기본 정보

복잡한 문제를 구조적으로 해결하고, 개선 방안을 고민하는 개발자 입니다.
자기소개
더 나아지기 위한 나의 노력
개발자의 일은 근본적인 문제를 해결하여 사용하기 편리한 환경을 만들어내는 것이라고 생각합니다.
유지보수 업무를 경험하며 현재의 문제만을 해결하는 것이 끝이 아니라는 것을 깨달았습니다.
근본적인 문제를 해결하지 못하면 문제의 반복을 야기하고 저와 제 팀원을 괴롭게 하기 때문이었습니다.
하여, 문제를 해결하는 것에만 그치지 않고, 동일한 문제가 재발하지 않도록 근본적인 해결책을 찾기 위해 노력하고 있습니다.
해결 과정을 동료들과 공유하고 더 나은 방법이 있는 지 토론하고 탐구하며 성장하고 있습니다.
문제의 원인과 해결 방안을 최신 소스 코드에 반영하고 기록을 남김으로써 다시 발생할 가능성을 낮추기 위해 힘쓰고 있습니다.
성장하는 개발자가 되기 위해서는 지속적인 학습과 기술 적응이 필수적이라고 생각합니다.
출퇴근 시간을 활용해 IT 기업들이 공유하는 기술 트렌드를 유튜브로 학습하며 변화하는 흐름을 놓치지 않으려 노력하고 있습니다.
책뿐만이 아니라 퇴근후에도 강의를 들으며 자기계발에 힘쓰고 있습니다.
새로운 기술에 세심하게 접근하고, 이를 실제 프로젝트에 적용하며 발전하는 과정을 통해 더 나은 개발자가 되고자 합니다.
고객에게 더 나은 가치를 제공하는 솔루션을 만들기 위한 저의 노력이 회사의 비전과 목표에 부합할 것이라고 믿습니다.
경력
레피아
주임 | 개발 사업부 | 재직 중
2023.01. ~ 재직 중 (2년 2개월)
검색엔진 유지보수
SDK 코드 리팩터링을 통한 코드 수정 효율성 증대
SDK 배포를 위한 Nexus 구축
도커 컴포즈 생성을 통한 쉬운 테스트환경 구축
사내 환경 개선 방법
https://stellar-muscari-8b0.notion.site/14c9a489136980cc9893ff75f0cc0b9b?pvs=4
검색엔진 구축 및 커스터마이징
공공기관에 검색엔진 솔루션 설치를 지원
고객이 원하는 검색 화면 및 기능을 반영하여 검색 기능 및 UI를 커스터마이징하여 제공
주요 기관:
외부망
내부망
수원 시청
온나라 API 개발 및 유지보수
한국 광기술원
sso-token 사용한 전재결재 재구축
프로젝트
웹 크롤링 DB화 솔루션 개선프로젝트(REKMS)
레피아
2024.08. ~ 2024.09.
설명:
고객의 요청에 따라 7개의 웹 페이지를 크롤링하여 데이터베이스화
고객의 요구사항에 따라서 커스터마징 기능 필요
[적용 기술]
Java8, MySQL
[기여도]
기존 코드 리팩터링
3가지 웹을 크롤링하여 DB화 하는 업무
데이터 갱신 로직 개발
[프로젝트 진행 과정과 문제 해결]
이전까진 REKMS를 다뤄본 사람이 없었기에 관리와 납품이 거의 이루어지지 않았습니다.
2024년 3분기 이내로 REKMS를 기술적으로 개선하고 안정적으로 납품이 목표.
[주요 문제점]
코드 복잡성: 기존 코드가 스파게티 코드로 작성되어 있어 이해와 유지보수가 어려움.
데이터 갱신: 크롤링 대상 웹 페이지의 데이터가 갱신되었을 때, 이를 반영할 수 있는 갱신 로직 미흡.
관리자 사이트 기능 미흡
[문제 해결과 개선 과정]
코드 리팩토링
첫 번째 문제를 해결하기 위해 Service 인터페이스를 정의하고, 각 웹페이지 구조에 맞춰서 Service 클래스를 구현하여 모듈화된 구조로 정리했습니다.
이 과정에서 주요 데이터 필드(이미지, URL, 제목, 본문 등)를 표준화하여 일관된 형태로 저장할 수 있도록 개선.
기존은 Java main 메소드 내에 모든 비즈니스 로직 코드가 존재 .
이를 해결하기 위해 Util 클래스 추가 및 서비스 클래스를 적극 활용.
결과적으로 코드의 확장성이 개선되었으며, 보다 깔끔한 코드로 솔루션을 개선
데이터 갱신 로직 개선
구상 방식
1안) 기존 DB 데이터를 모두 삭제한 후 새롭게 데이터를 크롤링하는 방식
2안) 주요 컬럼을 기준으로 데이터 비교 후 변경된 항목만 업데이트하는 방식 (택)
해당 문제는 고객의 요구사항이 명확하지 않은 상태에서 시작되었습니다.
데이터 갱신을 위한 첫 번째 방안으로 1안을 채택.
대상이 되는 사이트의 정보양이 많지 않아서, 쉽고 빠르게 데이터를 갱신할 수 있는 장점이 있기 때문입니다.
이 방식은 모든 데이터를 최신 상태로 반영할 수 있다는 장점이 있지만, PK값이 매번 바뀌기에 이 점을 고객에게 설명하고 동의를 구했습니다.
프로젝트가 완료된 시점에서 고객이 2안으로 로직 변경을 요청했습니다.
시간이 촉박했지만 원만한 협의를 통해 데이터의 일관성과 안정성을 보장할 수 있는 방향으로 코드를 수정하며 마무리 되었습니다.
[프로젝트를 통해 얻은 점]
상기 프로젝트를 통해 초기 요구사항 설정과 명확한 문제 정의가 프로젝트 성공과정에서 얼마나 중요한지를 배우게 되었습니다.
고객의 요구사항이 초기 단계에서 명확하지 않을 경우 프로젝트 일정에 차질이 생길 수 있다는 것을 직접 경험하며, 앞으로는 사전 협의를 통해 보다 구체적이고 실질적인 요구사항을 파악하는 데 주력하려 합니다.
앞으로는 요구사항을 사전에 충분히 검토하고 합의하는 과정을 철저히 하여, 프로젝트의 일정 준수와 성공 가능성을 높이고자 합니다.
또한, 문제 해결과정에서 고객과의 원활한 커뮤니케이션과 동료와의 협력이 프로젝트의 완성도를 높이는 데 중요한 요소임을 깨달을 수 있었습니다.
관리자 사이트 리뉴얼 (RS5)
레피아
2023.06. ~ 진행 중
설명:
모놀로식 구조에서 일부 MSA 구조로 변경하는 관리자 리뉴얼 프로젝트
[적용 기술]
Java11, Spring boot, JPA
[기여도]
MSA 구조 설계 및 제안
인기 검색어 수집 방법 변경으로 관리자 사이트 리소스 확보 기여
UI 개선을 통해 사용자 경험 향상
https://stellar-muscari-8b0.notion.site/RS5-1659a4891369803aa48dc001673f9a47?pvs=4
[프로젝트 과정 및 어려운 과제 극복]
MSA 경험을 가진 인력이 없는 상황에서 MSA 아키텍처로 개선해야 하는 업무를 맡았습니다.
당시 저는 경력 1년 미만의 신입 개발자로, 회사 솔루션인 검색 엔진의 구조를 모두 이해하지는 못한 상태였습니다.
이해를 위해 선임 개발자분들을 찾아가 도움을 요청하며, 검색 엔진의 전체 구조를 시각화하기 위해 옵시디언으로 구조도를 작성하여 검증했습니다.
작성한 구조도를 선임분들과 재차 검토하며 구조적인 문제와 개선 아이디어를 얻을 수 있었습니다.
예를 들어, SDK 의존성으로 인한 업데이트의 어려움과 대량 검색 데이터 관리 대책에 대한 의견들이었습니다.
이 과정에서 기술 이사님의 조언과 팀원들과 협력, 유튜브, 서적 학습을 통해 MSA 구조의 기초와 적용 가능성을 심도 있게 토론하였고, 제가 설계한 구조를 주간 프로젝트 회의에서 발표할 기회도 가졌습니다.
제 아이디어는 긍정적으로 검토되었고, 최종적으로 RabbitMQ를 사용한 메시지 이벤트 방식을 도입하기로 했습니다.
[느낀 점]
상기 프로젝트를 통해 문제를 해결하기 위해서는 스스로 능동적으로 접근하고 학습하는 자세가 중요하다는 것을 배웠습니다.
다양한 의견을 수렴하고 이를 바탕으로 아이디어를 구체화할 수 있었던 경험은 귀사와의 업무에서도 중요한 자산이 될 것이라 생각합니다.
기술 스택
Java, JavaScript, Docker, Git, Python, Kotlin, Spring Boot, JPA
포트폴리오
URL
교육
노원IT학원-코리아IT아카데미
사설 교육 | 자바 백엔드
2022.06. ~ 2022.12. | 졸업
외국어
일본어
비즈니스 회화 가능
영어
일상 회화 가능
자격증
정보처리기사
기사 | 한국산업인력공단
2022.11.
SQLD
한국데이터베이스진흥센터
2022.06.