미리보기
기본 정보
긍정적이고 밝은 에너지를 가진 백엔드 개발자, 박현민입니다.
자기소개
# 저를 소개합니다.
LG CNS에서 실시간 설비 데이터를 처리하기 위한 데이터 파이프 라인을 구축하고, 백엔드 서버를 구축하여 API를 개발한 경험이 있습니다. 많은 양의 데이터를 효율적으로 서빙하고 레이턴시를 줄이는 방법을 고민했습니다.
불편한 점이 있으면 해결 방법을 생각하고, 코드로 자동화하는 엔지니어입니다. 스스로 부족한 부분을 채우기 위해 매일 학습하고, 블로그를 통해 기록합니다. 다양한 요구사항에 대처할 수 있는 개발자가 되고자 합니다.
ㅤ
# 공백기에 대해
회사를 다니며 개인적으로 부족한 영역을 학습하고, 개인 프로젝트와 사설 멘토링을 진행했습니다. 자신을 돌이켜보는 시간과 깊이 있는 학습 기간이 필요하다고 판단하여 퇴사를 결정했습니다.
이 시간은 제 개발 역량을 한 단계 끌어올리고 자신감을 회복하는 귀중한 기간이었습니다. 이제 더욱 성숙한 개발자로서 새로운 도전에 임할 준비가 되었습니다.
이력서를 확인해주시고 기재된 포트폴리오를 꼭 한번 봐주시면 감사하겠습니다.
경력
(주)엘지씨엔에스
프리랜서 사원 • 스마트 팩토리 버츄얼 팩토리팀
LG 화학 석유 공장 설비 모니터링 프로젝트
2023.04 - 2023.10
[프로젝트 설명]
• LG 화학 공장의 석유를 정제하는 설비 데이터들에 대한 대시보드 제공
• 이상 수치 알람, 대시 보드, 설비의 이상 유무, 타 시스템들에 대한 통합적인 데이터 조회 플랫폼 제공
[담당 업무]
# 1분 간격으로 3,000개의 설비 데이터를 안정적으로 수신하는 데이터 파이프라인 구축
• Apache NIFI를 이용한 실시간 데이터 파이프라인 구축 (ERP, MES, WMS 시스템)
• NIFI의 멀티쓰레딩을 이용한 병렬 처리, 큐 시스템을 활용하여 데이터 흐름 안정성 확보
• 데이터 전처리 유지보수성 향상을 위해 Javascript를 채택 (Execute Script 프로세서 활용)
• 최종적으로 kafka 서버에 서빙
ㅤ
# Vue.js 기반 Web Builder 서비스 컴포넌트 개발 및 화면 구현
• 신규 개발할 컴포넌트들을 정의하고, 공유 (MultiLine, Gauge 컴포넌트)
• HighChart 라이브러리를 커스텀하는 신규 컴포넌트를 개발 (Stacker, Donut 차트 등)
ㅤ- 높낮이, 이동, 컬러, min, max, shape, plotLine, Data Mapping 등
• 버전 마이그레이션 코드 개발 참여
ㅤ- mounted 훅을 사용하여 변경된 DOM을 수정하는 자동화 코드 작성
• 테스트 케이스, 통합, 회귀 테스트 시나리오 작성 및 진행
• 튜토리얼, 컴포넌트 별 가이드라인, Practice 과제 등을 wiki에 작성 후 공유
LG 화학 물류 상황 가시화 프로젝트
2022.11 - 2023.04
[프로젝트 설명]
• LG 화학 물류 창고 모니터링 시스템을 구축
• WebGL 기반 3D 시각화로 스태커 크레인과 랙의 물류 상태를 실시간 표현, 과거 데이터 조회 기능을 제공, 물류 관리의 효율성 개선
[담당 업무]
# 30만 건의 집계 데이터 조회 API 성능 최적화
• 단일 쿼리를 통해 집계 데이터를 조회, 10초의 레이턴시 발생 (포스트맨 기준, 서브 쿼리 및 CASE WHEN절에서 오버헤드 발생)
• 조건문에 사용되는 컬럼에 복합 인덱스 설정 및 JOIN문에 커버링 인덱스 적용하여 List를 코드 레벨로 가져온 후, Java Stream API의 Parallel Stream을 사용하여 개선
• API 레이턴시 10초 > 1초 개선
ㅤ
# 데이터 배치 시스템 개선
• RDB의 설비 데이터들을 조회하여 1분마다 새로운 테이블에 저장하는 요구사항
• 초기 집계 함수 API를 제공하는 서버에 @Scheduled를 사용하여 배치 프로세스 적용
• 서버 확장성 고려 및 리소스 개선을 위해 Apache NIFI로 배치 프로세스를 전환
• 서버 부하 50% 감소
(1년 | 프리랜서)
주식회사큐브에이
선임 • 개발팀
KIET 산업연구원 홈페이지 리뉴얼 프로젝트
2022.02 - 2022.08
[프로젝트 설명]
• 레거시 시스템을 Spring 으로 전환
• Oracle DB에서 MariaDB로 데이터를 마이그레이션
ㅤ
[담당 업무]
# DAO가 JAR로 구성된 레거시 서비스 MyBatis로 전환
• JAR 파일을 Decompile 하여 서비스 DAO 계층에 대한 이해
• 기존 테이블들을 정규화, 데이터 성질에 맞는 테이블을 새롭게 설계
• 테이블 구조 일관화, 공통 DAO 설계를 통한 MyBatis 쿼리 작성 용이성 향상
ㅤ
# Oracle DB에서 MariaDB로의 100만 건의 데이터 마이그레이션
• Oracle Client와 DBeaver를 활용한 CSV 기반 데이터 추출 및 Import
• Spring 기반의 마이그레이션 로직 개발, Linux crontab을 활용한 일일 배치 시스템 구축
ㅤ
# 인사정보 시스템, 관련 기사 API 데이터화 배치 로직 개발
• 매일 1번 업데이트 되는 인사정보 시스템을 update할 수 있는 배치 로직 개발
• 타 시스템의 API 조회를 통해 운영되던 페이지, pageSize가 정상 작동하지 않았음
ㅤ- API를 배치로 update되는 데이터들을 새롭게 설계한 테이블에 저장
ㅤ
# 조회 쿼리 성능 개선
• 10개의 테이블 데이터를 단일 페이지에서 조회하는 요구사항
• 테이블들을 1개의 View 테이블로 만들어서 조회, 5초의 응답시간 발생
ㅤ- 실행 계획 결과, 테이블들이 파일 테이블과 조인, 조건문 실행 시 풀 스캔 조인 발생
ㅤ- 조건문에 대한 인덱스 설정, 커버링 인덱스 적용, 서브 쿼리 삭제
• 응답시간 5초 > 1초
ㅤ
르노삼성 쿠폰 발급 시스템 고도화 및 운영
2021.10 - 2022.08
[프로젝트 설명]
르노삼성 서비스 센터 정비 쿠폰 관리 시스템 개발 및 운영
[담당 업무]
# 10만건 쿠폰 일괄 발급 프로세스 개선
• 기존 단일 1,000건 발급되던 쿠폰을 이벤트를 위한 10만 건 발급 필요
• 쿠폰 대상 차량 조회 쿼리 개선
ㅤ- 대량 데이터 조회를 위한 쿼리 최적화 및 인덱스 재구성
ㅤ- 차량 상태 및 등록일자에 대한 복합 인덱스 추가로 조회 성능 향상
• 발급 로직 개선
ㅤ- 단일 INSERT 쿼리를 MyBatis foreach 구문을 사용하여 bulk INSERT로 변경
ㅤ- 배치 크기를 5,000건으로 설정
• 예외 상황 처리 및 롤백 메커니즘 구현으로 데이터 정합성 확보
ㅤ- 각 배치 단위로 트랜잭션 관리
ㅤ- SQLException 발생 시 해당 배치만 롤백하고 로그 기록
• 발급 프로세스 5분 > 1분 개선
ㅤ
# APM 도구(Scouter) 도입 및 활용
• 실시간 성능 모니터링 체계 구축
• 쿠폰 발급 프로세스의 각 단계별 성능 추적 및 분석
르노삼성, 르노 도메인 운영
2020.06 - 2022.01
[프로젝트 설명]
르노삼성 자동차 홈페이지 운영, 이벤트 설계 및 개발, 백오피스 개발
[담당 업무]
# 매 달 진행되는 시승 이벤트 코드 리팩토링
• 공통으로 관리할 수 있는 java, javascript, html 코드를 공통화하여 유지보수성 향상
ㅤ
# 핵심 서비스 운영 및 유지보수
• 시승 신청, 내 차 만들기, 메인 페이지 배너 관리 등 핵심 기능 개발 및 개선
• 정기 배포 및 시스템 안정성 확보
ㅤ- 월간 정기 배포 진행 (dump를 이용한 DB 백업 및 변경사항 적용)
ㅤ- Scouter를 통한 서비스 모니터링 및 장애대응
ㅤ
# 새로운 이벤트 설계 및 개발
• 화면 정의에 맞는 이벤트 로직 설계 및 재참여 방지 방어로직 구현
• 외부 시스템(차량 연동 데이터)를 이용한 개발
• 이벤트 방어로직 개발(재참여 방지, 횟수 제한, 날짜별 오픈)
ㅤ
[개발 이벤트]
# 맛집 추천 이벤트
• 추천 맛집 등록, 수정, 좋아요 기능, SNS 공유, 백오피스 개발
• 참여자 약 500명, PV 약 6,600건
ㅤ
# 차량 앱 내 결제 횟수에 따른 경품 이벤트
• 앱 회원, 결제 내역, 쿠폰 정상 발급 여부, 쿠폰 사용 여부 수신 API를 개발, 적재
• 매일 01시 배치 작업을 통해 쿠폰 대상자 전달
• 참여자 약 800명, PV 약 16,000건
ㅤ
# 오프라인 행사 참여 신청 이벤트
• 시간, 날짜별로 동적으로 장소, 이벤트 내용을 변경하는 로직 구현
• 참여자 약 500명, PV 약 11,000건
ㅤ
# 차량 앱 제어 미션 이벤트
• 차량 앱 제어시 발생하는 데이터를 수신하는 API 개발
ㅤ- 해당 데이터로 스탬프 발급 및 미션 참여 관련 로직 구현
• 이미지 업로드, 다운로드, 엑셀 업로드, 다운로드 등 기능 개발
ㅤ- 미션 성공 시간 및 참여 횟수에 따른 우수 TOP 9 참여자 노출 로직 개발
• 참여자 약 6,400명, PV 약 90,000건
ㅤ
# 카카오 비즈니스 폼 연동 및 관리 페이지 개발
• 카카오 비즈니스폼 시승 신청자, 백오피스 관리
• 카카오 API를 이용하여 API Key를 등록하여 관련 데이터 배치, 수동 데이터 수신
• 비즈니스폼 약 800건, 신청자 약 34,000명
(2년 3개월 | 정규직)
교육
인하공업전문대학교
대학교(전문학사) | 정보통신학과
2015.03. ~ 2020.02.
졸업
서울 양정고등학교
고등학교 | 이과
2012.03. ~ 2015.02.
졸업
F-lab
사설 교육 | 자바 백엔드 딥다이브
2024.02. ~ 2024.06.
졸업
인천 ICIA 교육원
사설 교육 | Java, Spring, Mybatis를 활용한 웹 서비스 구축 및 개발
2019.06. ~ 2020.02.
졸업
자격증
정보처리기사
합격 | 한국산업인력공단
2024.06.
SQLD
합격 | 한국데이터산업진흥원
2022.03.