미리보기
기본 정보

1. 개발 경험 & 스킬 - 다양한 산업 분야의 서비스 개발 경험 보유 (CDN, 제조, 게임 공통 플랫폼) - 현재 커뮤니티 플랫폼 담당 (150+ API, Service-mesh, gRPC 기반 아키텍처) - Clean Code 와 신기술 기반 레거시 서비스 리팩토링에 깊은 관심과 경험 2. 개발 문화 & 프로세스 - 코드 리뷰, 정적/통합 테스트 자동화 환경 구축, 개선 가능 - 애자일 방법론 기반 개발 프로세스 운영 및 팀 빌딩 경험 - 지속적인 프로세스 개선 제안 3. 개발 철학 & 성향 - Deep Dive 분석을 즐기며 새로운 기술 습득에 적극적 - 같은 질문을 100번 받아도 100번 친절하게 대답하는 커뮤니케이션 스타일 - 팀의 성장과 개선을 위한 적극적인 제안과 실행
기술 스택
Java, Spring, Kubernetes, MongoDB, istio, Tensorflow, Keras, Docker
경력
엔씨아이디에스
팀원 | UA서비스개발팀 | 재직 중
2024.10. ~ 재직 중 (5개월)
커뮤니티 백엔드 개발
엔씨소프트(주)
팀원 | UG플랫폼개발팀
2020.07. ~ 2024.09. (4년 3개월)
커뮤니티 백엔드 개발
GraphQL 도입을 통한 커뮤니티 운영툴 개선
MongoDB Mulit-Region Replica set tag set (Atals PoC)
MonoRepo + helm 적용
Service mesh + gRPC 적용
이벤트 저장소 Cassandra → MongoDB 전환/마이그레이션
인증 백엔드 개발
DDD 기반 로그인 WebAPI 리팩토링
line, vk, 지사 인증 구현
간편 로그인 기능 구현(QR 로그인)
로그인 이력 정보 고도화 기능 구현
백업인증 고도화 / VM → K8S 전환
효성ITX (주)
팀원 | 솔루션개발팀
2016.09. ~ 2020.06. (3년 10개월)
SmartFactory 백엔드 개발
- 섬유 원사 단면 이미지 판독 솔루션 개발
- 영업 지원 플랫폼 개발
CDN 서비스 개발
- 파일 동기화 솔루션 개발
- 로그 분석 솔루션 구축 및 개발 운영
- 비디오 분산 트랜스코더 개발
- 서비스 장애 모니터링 시스템 개발
프로젝트
GraphQL 도입을 통한 커뮤니티 운영툴 개선
엔씨소프트
2024.05. ~ 2024.12.
기술 스택
Java
,Spring
,GraphQL
,Vue
내용 / 목적
운영툴은 Frontend 와 Backend 모두 하나의 서버로 구동 되고 있었으나, 서비스와 사용자가 늘어남에 따라 다양한 요구사항들이 생겨남에 따라 UI/UX 개선이 불가피
Front 모듈은 FE 담당 부서에서 담당하고, Backend 모듈만 담당하여 개발하는 방식으로 결정
GraphQL Server/Client 도입으로 기존 REST 의 Overfetching & Underfetching 을 개선하고자 함
전체 구조
기존 운영툴 서버에서 GraphQL Endpoint 추가
기존 REST API 와 공존하는 방식으로 점진적 전환
신규 운영툴 BFF 서버 구성
역할
GraphQL 기반 Backend 아키텍처 설계 및 도입
GraphQL Server 구축 및 스키마 설계
기존 REST API 기반 데이터 모델을 GraphQL Schema 로 변환
API 명세 설계 (Query, Mutaion)
GraphQL 검증을 위한 테스트
GraphQL 통합 테스트 작성 (spring-graphql-test 활용)
결과 및 성과
GraphQL 도입을 통합 데이터 Overfetching / Underfetching 해결
기존 REST API 대비 최적화된 데이터 요청 가능, 클라이언트 부담 감소
Backend 개발 및 API 관리 효율성 증가
단일 Enpoint 에서 다양한 Query 처리 가능, API 수정의 유연성 증대
KEDA HTTP Request Based AutoScaling PoC
엔씨소프트
2024.05. ~ 2024.06.
기술 스택
Kubernetes
,KEDA
,Prometheus
내용 / 목적
각 팀에서 Kubernetes Cluster 운영이 가능한 환경으로 변화함에 따라, KEDA 를 활용한 Ingress Controller AutoScaling 가능 여부 테스트
기존 CPU/Mem 기반 HPA 조정은 가증했지만, Prometheus 에서 수집한 다양한 메트릭 기반으로도 AutoScaling 이 가능한지 검증
전체 흐름
트래픽이 Ingress 로 들어오면 Prometheus Server 가 Ingress Controller 메트릭 수집
KEDA 의 Scaler 가 Prometheus server 에 PromQL 쿼리로 메트릭 수집
수집된 메트릭 기반으로 Kubernetes API Server 에 등록
Scaling Trigger 가 되면서 Ingress Controller Pod 증가
역할
KEDA + Prometheus 기반 AutoScaling 아키텍처 설계 및 검증
PromQL 쿼리 최적화
요청수, 응답시간 기반 스케일링 조건 설정
AutoScaling 트리거 조건 최적화
트래픽, 응답 시간 기반으로 적절한 Threshold 값 설정
Ingress Controller AutoScaling 성능 테스트 수행
결과 및 성과
Prometheus 기반 AutoScaling 가능 여부 검증 완료
CPU/Mem 외에도 수집된 메트릭 기반으로 AutoScaling 가능함을 확인
CPU 기반으로 Scaling 보다 KEDA + Prometheus 실시간 데이터를 활용하여 더 빠르게 대응 가능
과부하 시 Ingress 안정성 향상 효과 기대
MongoDB Multi-Region Replica Set Tag Set (Atlas PoC)
엔씨소프트
2024.04. ~ 2024.06.
기술 스택
Java
,Spring
,MongoDB
,GCP
,Atlas
내용 / 목적
MongoDB Replica Set 을 Multi-Region 환경에서 운영하기 위한 구성 및 테스트
Multi-Region 데이터 가용성 (Failover 대응) 테스트
GCP 에 구성된 커뮤니티의 글로벌 몽고 클러스터의 대체 가능성 확인
전체 구성
Tag Set 을 사용하여 지역 기반 (Region-based) 읽기/쓰기 최적화
각 Region 의 클라이언트가 가장 가까운 Secondary 를 통해 데이터에 접근하도록 설정
Replica Set 2개(Shard 2) 를 사용하여 데이터 분산
Replica Set 1 (Zone: KR)
Primary A : KR Region 에서 Primary 역할
Secondary A : KR Region 에서 데이터 복제
US Region 에도 Secondary A (Priority 0) 을 배치하여 장애 복구 대비
Replica Set 2 (Zone: US)
Primary B : US Region 에서 Primary 역할
Secondary B : US Region 에서 데이터 복제
KR Region 에도 Secondary B (Priority 0) 을 배치하여 장애 복구 대비
Zone Tags 를 사용한 지역 기반 라우팅
KR 클라이언트 → Replica Set 1 (Zone kr)
US 클라이언트 → Replica Set 2 (Zone us)
Write Concern 조정 (W=1)
각 Region 에서 쓰기 요청을 빠르게 수행하기 위해 Write Concern = W1 조정
Primary 만 Write Acknowledgment 를 수행하도록 설정하여 쓰기 성능 최적화
역할
MongoDB Cluster 구성 및 최적화
성능 최적화 (Read / Write Concern 조정)
장애 복구 (Failover) 및 데이터 일관성 검증
결과 및 성과
Multi-Region 데이터 가용성 확보
Failover 발생 시 Primary 가 정상적으로 승격됨을 확인
Atlas 환경에서 자동 장애 복구 기능 정상 동작 확인
Write Concern = W1 을 설정하여 쓰기 최적화 성능 검증
Read Preference = Nearest 적용 후 클라이언트 응답 속도가 약 30% 개선됨
운영 효율성 개선 검증
MongoDB Atlas 의 Multi-Region 기능을 활용하여 운영 부담 최소화 가능성 확인
Failover 및 장애 대응 자동화가 가능하여 클러스터 운영 안정성 증가 확인
MonoRepo + Helm 적용
엔씨소프트
2024.02. ~ 2024.03.
기술 스택
Gradle
,Kubernetes
,Helm
,Jenkins
,Java
내용 / 목적
Gradle 기반 MonoRepo 를 사용함으로써 빌드 속도를 최적화 하고 중복 작업 최소화 목적
버전 관리 자동화
Helm Umbrella Pattern 을 적용하여 중복 설정 재사용 / 개별 서비스 배포 단순화 목적
전체 구성
Root Project 의 build.gradle 공통 빌드 설정
각 프로젝트의 gradle.properties 버전 관리
version.json 기반 빌드 트리거
Helm Umbrella Pattern 구성
역할
Gradle 이 Maven 보다 build Script 작성에 수월하여 전체 프로젝트 Maven → Gradle 로 변경
Gradle Version 관리 Plugin 개발
Git diff 하여 변경된 모듈 탐색
변경된 모듈 자동 버전 증가
선택된 모듈만 Gradle 빌드 수행
변경된 모듈이 영향을 미치는 서비스의 의존성 업데이트
artifactory 에 업로드
Helm Umbrella Pattern 구조로 구성
결과 및 성과
관리 측면
공통 외부 의존성 한 번에 관리 가능
공통 설정 재사용
서비스별 독립적 버전 관리 가능
배포 프로세스 단순화
개발 생산성 증가
Service mesh + gRPC 적용
엔씨소프트
2022.08. ~ 2023.10.
기술 스택
Java
,Spring
,Armeria
,MongoDB
,Kubernetes
,Envoy
내용
REST → gRPC 전환을 통한 성능 최적화 및 운영 비용 절감
Envoy Sidecar 기반 Service Mesh 구성 및 Client Side gRPC Load Balancing 문제 해결
외부 서버는 REST 로 요청하고 내부는 gRPC 로 통신하는 구조
Q. Armeria 를 사용한 이유?
하나의 PORT 로 REST/gRPC 동시에 서빙 가능하다는 장점
Spring 과 통합하기 수월
역할
Envoy Proxy 리서치 및 적용
gRPC-JSON Transcoder 성능 검증 → TPS 기준
1.5 배
향상REST vs gRPC vs gRPC-JSON Transcoder 비교시, Transcoder 사용으로
12.52ms
성능 패널티 확인 (vuser 32 기준)MongoProxy 지원 불가 (MongoDB 3.6+) 확인 (https://github.com/envoyproxy/envoy/issues/34365)
xDS 표준화 및 로드밸런싱 최적화 (STRICT, STRICT_DNS + ROUND_ROBIN,
connection_balance_config=exact_balance
)Sidecar 적용 시 성능 패널티 (약 2.5ms) 검증
Client Side 로드 밸런싱 테스트 (k8s headless service + envoy)
gRPC Conventions 및 가이드 작성
protobuf Coding Conventions 정립 및 best practices 리서치 및 적용 (https://protobuf.dev/best-practices/dos-donts/)
REST/gRPC 각 Endpoint 별 통합 테스트 Coverage 100% 달성
Armeria httpJsonTranscoder 적용 / 테스트
JSON 변환 시 Armeira 내부에서 직접 변환해서 JSON 전환 비용이 Envoy filter 보다 저렴함
json_name 미지원 확인 및 Contribute ( https://github.com/line/armeria/pull/5366 )
HTTP JSON to gRPC mapping Rules 정의
결과 및 성과
성능 향상 측면
내부통신 gRPC 로 변경 - 약 20~25 % 성능 향상 (TPS, 응답속도, 응답사이즈 모두 포함)
Armeria httpJsonTranscoder - 약 20% 성능 향상 (TPS, 응답속도, 응답사이즈 모두 포함)
비용 절감 측면
운영 Pod 50% 이상 감소 / 5 개의 Pod 로 10,000 TPS 커버 가능
서비스 안정성 측면
통합 테스트 Coverage 100% 달성
Armeria Contribute
이벤트 저장소 Cassandra → MongoDB(Time-Series Collection) 전환/마이그레이션
엔씨소프트
2022.10. ~ 2023.02.
기술 스택
Java
,Spring
,kafka
,cassandra
,MongoDB
,Kubernetes
내용
통계 데이터로 활용하는 이벤트 저장소를 Cassandra → MongoDB(Time-Series Collection) 으로 전환/마이그레이션
Q. Cassandra → MongoDB 전환 이유
Cassandra Keyspace 생성시 OOM 발생 및 동기화 지연 발생 문제
새로운 Keyspace 생성되면 Cassandra Client(Driver) 가 해당 변경 사항을 감지하고 Metadata 를 갱신하는 과정에서 OOM 발생하거나 메모리 사용량이 급증하는 문제
클러스터 크기가 커질 수록 메타데이터 동기화 지연이 발생
MongoDB Time-Series Collection 사용시 이점
Collection 을 동적으로 생성 가능
Schema-less 구조이므로, 새로운 필드 추가시 테이블을 다시 로드할 필요가 없음
Time-Series Collection 을 사용하면 스토리지 효율성이 향상되고, 메모리 사용량이 줄어듦
통계성 데이터이므로 Write 성능보다는 Read 성능이 더 중요하고, Time-Series Collection 은 내부적으로 데이터 압축 및 자동 샤딩 최적화 적용이 됨
전체 구조
Migration Master
MongoDB 의 Migration Collection 을 Polling 하여 마이그레이션 할 Task 가져옴
Kafka 를 통해 Migration Slaves 에게 작업을 Publish 하고 Status 상태 변경 (Trigger)
Slave 작업 완료시 Completion Event 감지하여 Status 업데이트
Kafka (Message Broker)
Migration Master 가 마이그레이션 Task 를 Publish
Migration Slaves 가 이를 Consume 하여 Cassandra 에서 데이터를 가져와서 MongoDB 로 저장
작업 완료시 Completion Event 를 Master 에 전달
Migration Slave (Worker Nodes)
Kafka 에서 마이그레이션 Task 를 Consume
Cassandra 에서 데이터를 Read 후 MongoDB 에 Write
역할
MongoDB 스키마 설계 및 최적화
Time-Series Collection 적용 및 Index 추가
Cassandra → MongoDB 마이그레이터 개발 및 마이그레이션
Kafka 기반 마이그레이션 시스템 구축
실시간 데이터 적재 아키텍서 설계
별도의 Consumer 를 통해 신규로 발행되는 이벤트들을 MongoDB 로 적재
마이그레이션 데이터는 운영 부하를 최소화하는 수준의 Task 를 생성하여 순차적으로 수행
데이터 정합성 검증
결과 및 성과
운영 안정성 향상
Cassandra 에서 발생했던 Keyspace Metadata 문제(OOM, 동기화 지연) 해결
동적으로 Collection 으로 생성할 수 있어서 운영 부담 감소
커뮤니티 Main DB 인 MongoDB 와 같은 기술 스택을 선택함으로써 운영 리스크 감소
DDD 기반 WebAPI 리팩토링
엔씨소프트
2022.02. ~ 2022.05.
기술 스택
Java
,Spring
,Kubernetes
,SonarQube
,Jenkins
내용
모놀리식 환경 내에서 DDD 리팩토링을 통한 지연 최소화 및 유지보수성 향상
디자인 패턴 적용으로 코드 재사용성 및 확장성 개선
SonarQube 도입 및 코드 품질 표준화
Spring Formatter 및 CheckStyle 적용으로 코드 스타일 일관성 유지
LoginLog 적재 구성 및 LoginType 별 로그인 성공/실패 시각화
역할
코드 리팩토링 및 DDD 구조 적용
로그인 WebAPI 의 도메인 중심 설계 적용
팩토리 메서드 패턴, AOP 기반 로깅, 퍼사드 패턴 등 디자인 패턴 적용
LoginType 기반으로 로그인 방식(Session, Token, QR 등) 도메인 분리
도메인 간 응집도 향상 및 중복 코드 제거
코드 품질 및 표준화
SonarQube 도입 및 품질 관리
SpringFormatter & CheckStyle 적용
서비스 안정성 및 성능 최적화
QoS Guaranteed 및 Graceful shutdown 적용
결과 및 성과
서비스 안정성 측면
SonarQube 분석 결과, Bad Smell 10% 이하 달성 및 잠재적 버그 개선
테스트 커버리지 0% → 60% 향상
코드 재사용성 및 유지보수성 개선
QoS 및 Graceful Shutdown 적용으로 서비스 안정성 향상
SpringFormatter 및 CheckStyle 적용을 통한 코드 스타일 통일
협업 방식 개선 및 장애 대응 속도 향상
LoginType 을 명확히 정의하여 의사소통 비용 절감
AOP 기반 로그인 성공/실패 로그 자동화 → CS 및 운영 대응 속도 향상
글로벌 회원 시스템 개편
엔씨소프트
2021.03. ~ 2021.10.
기술 스택
Java
,Spring
,Kubernetes
내용
비로그인 백업 인증 기능 추가
비로그인 상태에서도 비밀번호 찾기 가능하도록 기능 확대
실명 / 비실명 / 휴면 계정에 대한 백업 인증 적용
사내 L10N 정책에 맞춘 언어 반환 서버 개발
국가 코드 기반 언어 우선순위 로직 반영
글로벌 환경에서 사용자별 맞춤 언어 제공
Envoy Edge Case 적용을 통한 IDC / GCP 환경 통합
IDC와 GCP 간 점검 페이지 전환을 통일화
Envoy LuaFilter 기반 리다이렉트 처리 적용
역할
비로그인 백업 인증 기능 구현
실명 / 비실명 / 휴면 계정 케이스별 로직 정리 및 검증
백업 인증 번호가 등록된 경우 : 백업 인증 수행 후 비밀번호 변경 가능
백업 인증 번호가 등록되지 않은 경우 : 백업 인증 등록 후 비밀번호 변경 가능하도록 처리
다양한 테스트 케이스별 검증 자동화
실명 / 비실명 / 휴면 계정 상태별 테스트 시나리오 작성
백업 인증 번호 등록 유무에 따른 플로우 검증
글로벌 서비스 대상 Localization 대응 (Language Resolver Server 구현)
사내 L10N 정책 기반의 언어 우선 순위 적용
국가 코드 기반 기본 언어 코드 반환 기능 개발
글로벌 사용자 환경에 따라 맞춤 언어 지원
Envoy Edge Case 도입
IDC 와 GCP 환경에 따라 동일한 점검 페이지 제공
LuaFilter 적용하여 리다이렉트 처리
결과 및 성과
서비스 측면
글로벌 환경에서(비실명계정) 비밀번호 찾기 수단 확대
각 국가별 적절한 언어 제공 → 사용자 경험 향상
운영 관리 최적화
IDC / GCP 환경에서 점검 페이지 일관성 유지
환경별 운영 정책을 통일하여 유지보수 효율성 증대
3rdParty 로그인 기능 확대
엔씨소프트
2021.08. ~ 2021.09.
기술 스택
Java
,Spring
,Kubernetes
내용
VK, LINE, 지사 계정 로그인 기능 확대
VK, LINE, Tencent OAuth 서비스 분석
역할
VK, LINE OAuth 서비스 분석
Market 관리 기능 분석 및 (SDK, PM) Guide
지사 3rdParty Login Flow 표준화
VK, LINE, 지사 인증 페이지에서 AccessToken 획득 후, 내부 인증 요청 기능 추가
결과 및 성과
서비스 측면
글로벌 환경에서 로그인 수단 확대로 접근성 향성
간편 로그인 (QR 로그인)
엔씨소프트
2021.01. ~ 2021.02.
기술 스택
Java
,Spring
,Kubernetes
내용
모바일 기기에서 이미 로그인 된 세션으로 Launcher 로 로그인할 수 있는 기능
퍼플런처에서 로그인 가능
역할
QR Login Server / Web 개발
QR Code 생성, 인식, 인식 이후 Login Process 처리
QR Login Process Guide
결과 및 성과
보안 측면
계정 탈취 측면에서 안정성 제공
서비스 측면
개인 PC 나 Device 가 아닌 기기로 로그인 할 때 유저들의 편의성 제공
VM → k8s 전환 / 리팩토링
엔씨소프트
2020.07. ~ 2020.09.
기술 스택
Java
,Spring
,Docker
,Kubernetes
내용
BE / FE Product 분리
JSP 구조로 된 Product 를 Web Serving + REST API Server 로 분리
보안 웹 + API Server
백업인증 웹 + API Server
VM → kubenetes 전환
Docker image 최적화 적용
역할
코드 레벨 리팩토링
RESTful API 재설계
하위 호환성을 위해서 기존 Path Redirect 처리 후 100% 전환 이후 제거
BE / FE Product 분리
VM → Kubenetes 전환
JVM 튜닝
결과 및 성과
비용 절감 측면
Docker 이미지 최적화로 빌드시간, 네트워크 트래픽, 용량 절감
VM → Kubenetes 전환으로 비용 절감
기존 VM 장비 20EA → Total min pod 8 EA
서비스 안정성 측면
코드 재사용성 향상
관리 측면
BE / FE 분리로 인한 편의성 향상
Smart Factory 영업 지원 플랫폼
효성ITX
2020.01. ~ 2020.06.
기술 스택
Java
,Spring
,MySQL
,Airflow
,Python
,Flask
,Cloudera
내용
중공업 영업과 관련된 조달청 및 경쟁사 사이트에서 데이터 수집 및 분석 결과를 조회
역할
빅데이퍼 플랫폼 PoC 진행
Docker 기반 Cloudera 환경 구축 (HDFS, YARN, HBase)
Kafka 메시지 전달 → HBase 적재 테스트 수행
Airflow 기반 ETL 자동화
Airflow Docker 환경 구축 & API 기능 추가
기본 CLI/API 에서 제공하지 않는 기능 추가 구현 (DAG 실행, 강제 종료 기능)
Airflow Operator Template 개발
조달청 및 경쟁사 사이트에서 키워드 검색을 통한 데이터 수집 자동화
Web 연동 API 및 UI 개발
Airflow & Web 연동
웹에서 키워드 및 카데고리 선택 후 DAG 생성 가능
Velocity Template 기반으로 DAG 파일을 자동 생성
SFTP 로 Airflow DAGS 폴더에 전송 → Airflow Scheduler 가 자동 인식 및 스케줄링
영업 카테고리 분류 기능 개발
수집 이력 조회 및 대시보드 개발
결과 및 성과
빅데이터 환경에서 실시간 데이터 수집 및 적재 검증
Airflow 기반 데이터 파이프라인 자동화로 관리 효율성 증가 기대
웹 기반으로 키워드 & 카테고리 선택후 DAG 생성 가능으로 사용자 친화적 UI 제공
데이터 수집 이력 관리 및 대시보드 구축으로 분석 및 운영 편의성 향상
섬유 원사 단면 이미지 판독 솔루션
효성ITX
2019.03. ~ 2019.12.
기술 스택
Python
,Tensorflow
,OpenCV
,Java
,Spring
,Mask R-CNN
내용
섬유 절단면 이미지에서 단면 객체를 Detector 하고, 알고리즘을 통해 양/불 판정하는 솔루션
역할
이미지 전/후처리 및 양/불 판정 알고리즘 구현
Python + OpenCV 기반 전처리 알고리즘 개발
잡티 제거, 잘못 감지된 객체 필터링, 윤곽선 분석
이미지 병합 및 이형도, 단면비, 융착, 집속비 등 주요 판정 지표 계산 알고리즘 구현
객체의 형상을 정규화하여 일관된 품질 판정 모델 적용 가능하도록 설계
TensorFlow + Keras 기반 원사 단면 분석 모델 개발
Mask R-CNN 기반 Object Detection 모델 구현
Neural Architecture Search 적용
정확도 향상을 위해 다양한 Backbone 모델 테스트 (ResNet, EfficientNet 등)
공장별 데이터셋에 최적화된 HyperParmaeter Tuning 수행
실제 공장 이미지 데이터 기반 Fine-tuning 진행
학습 데이터 수집 웹 개발
VGG Image Annotator 연동하여 이미지 데이터 라벨링 자동화
기존 측정 데이터 재사용이 가능하도록 웹 기반 데이터셋 관리
결과 및 성과
AI 기반 섬유 원사 단면 판독 시스템 구축으로 수작업 대비 정확도 향상
데이터 수집 & 전처리 자동화로 공정 최적화
파일 동기화 솔루션
효성ITX
2018.01. ~ 2018.04.
기술 스택
Java
,Spring
,ZkFramework
,SyncSing
,Cubrid
,RabbitMQ
내용
고객사 사용자의 원격 시스템에서 파일 업로드/디렉토리 관리 시 해당 서비스 서버 그룹에 실시간 동기화 하는 솔루션 개발
Agent 기반 파일 감지 및 실시간 동기화
전체 구조
고객사 사용자의 원격 시스템에서 파일 업로드 & 관리
FTP/FTPS/SFTP 프로토콜을 이용하여 파일 업로드, 다운로드 및 디렉토리 관리
서비스 서버 그룹 내 동기화
Agent 가 파일 변경 사항 감지 후 이벤트 발생
소켓 통신을 이용하여 서비스 서버 그룹 내 실시간 파일 동기화 수행
Syncthing 을 이용하여 파일 시스템 변경 자동 반영
관리 서버에서 동기화 설정 및 모니터링
WAS 서버 → DB 를 통해 동기화 설정 및 현황 관리
Message Queue 를 통해 동기화 요청을 Agent 로 전달 후 파일 무결성 검증
역할
파일 동기화 감지 및 처리 기능 개발
Agent 기반 파일 업로드 / 디렉토리 변경 감지 기능 구현
Java NIO WatchService 를 활용하여 파일 시스템 변경 감지
소켓 통신을 통한 서비스 서버 그룹 간 실시간 파일 동기화 구현
TCP 소켓을 이용한 서버 간 파일 변경 정보 전달 및 적용
관리 서버에서 동기화 설정 및 모니터링 기능 개발
동기화 그룹 설정 기능 구현
FTP, SFTP 프로토콜 관리 기능 구현
파일 동기화 현황 모니터링 기능 개발
RabbitMQ 기반 파일 무결성 검증
관리자 페이지에서 입력한 동기화 요청을 MQ 로 전달
Agent 에서 메시지를 읽어 파일 변경 처리 → 동기화 완료 후 큐 상태 업데이트
결과 및 성과
고객사 시스템과 서비스 서버 그룹 간 파일 무결성 보장 및 파일 동기화 자동화
동기화 그룹 설정 및 모니터링 UI 제공으로 관리 편의성 향상
FTP, SFTP, FTPS 업로드 방식 제공으로 사용자 편의성 증대
로그 분석 솔루션
효성ITX
2018.01. ~ 2018.11.
기술 스택
Java
,Spring
,Elastic Stack
,React
,Angular V2
내용
Edge Server 의 트래픽, 로그 데이터 들을 안전하게 수집, 저장, 분석할 수 있는 모니터링 시스템
멀티 태넌시 환경을 지원하는 ElasticSearch & Kibana 커스텀 플러그인 개발
역할
ElasticSearch 멀티태넌시 Plugin 개발
계정 및 그룹별 접근 권한 관리 기능 구현
ElasticSearch 인덱스 권한 설정을 통한 멀티테넌트 지원
각 사용자 그룹마다 개별적인 로그 조회 및 검색 필터 적용 가능
Kibana Custom UI Plugin 개발
멀티태넌트 환경에서 사용자가 선택한 인덱스만 조회 가능하도록 커스텀 UI 개발
사용자 및 그룹별 대시보드 및 시각화 Plugin 개발
로그 데이터를 필터링 하여 특정 이벤트 발생시 자동 알림 기능 추가 (Slack 메시지 전송)
Filebeat Custom Module 개발
Edge 서버별 맞춤형 로그 파싱을 위한 filebeat 모듈 개발
결과 및 성과
Edge 서버 로그 수집 및 분석 자동화로 운영 효율성 향상
멀티태넌시 기반 접근제어를 통한 사용자 맞춤형 로그 분석 지원
알림 전송 기능추가로 장애 감지 및 대응 시간 단축
비디오 분산 트랜스 코더
효성ITX
2017.01. ~ 2017.11.
기술 스택
Java
,Spring
,Cubrid
,FFmpeg
,Redis
내용
분산 처리되는 트랜스 코딩 서버로 여러 개의 옵션을 동시에 처리하며 분산된 서버들로 즉시 동기화 되는 솔루션 개발
각 트랜스코딩 서버는 대기 상태를 감지하여 적절한 작업을 할당 받고, 변환 후 실시간 동기화 진행
RTMP 기반 스트리밍 서비스 및 고객사별 맞춤 트랜스코딩 옵션 제공
전체 구조
파일 업로드 서버
FTP/SFTP/HTTP 업로드된 파일을 트랜스코딩 서버로 전달
트랜스 코딩 서버에서 변환 작업 수행
요청된 트랜스코딩 설정(Metadata) 를 조회하여 변환 옵션 적용
대기 상태 중인 트랜스코더 서버를 자동 할당하여 분산 처리 진행
변환 완료된 파일을 서비스 서버로 자동 배포
메타데이터 및 변환 정보 관리
트랜스코딩 진행 정보를 Redis 에 임시 저장 후 RDBMS 에 영구 저장
스트리밍 서비스 및 웹 관리 기능 제공
Wowza 기반 RTMP 스트리밍 서비스 제공
미리보기 기능 제공
고객사별 트랜스 코딩 설정 및 파일 관리 기능 제공
역할
업로드 스토리지 서버 구축
FTP/SFTP/HTTP 업로드된 파일을 저장하는 임시 스토리지 서버 개발
업로드된 파일을 트랜스코딩 서버에 전달하는 기능 개발
트랜스코딩 서버 개발
트랜스코딩 요청시 메타데이터 조회 후 파일 옵션에 맞춰 변환 지행
fftmpeg 기반 변환 옵션 적용 (비디오 프로파일, bitrate, 썸네일 생성 등)
대기 중인 트랜스코더 서버를 찾아 자동 작업 분배 및 동시 처리 구현
변환된 파일을 서비스 서버로 자동 배포 및 동기화
트랜스코딩 관리 Backoffice 개발 (고객사용 / 운영자용)
디렉토리 및 콘텐츠 관리
트랜스코딩 옵션 및 서비스 서버 설정 기능 추가
RTMP 스트리밍 서비스 제공(미리보기)
결과 및 성과
서버 자동 할당으로 서버 활용도 증가 및 리소스 최적화
트랜스코딩 처리 속도 개선
트랜스코딩 완료후 자동 배포 및 실시간 동기화 기능 구축
서비스 장애 모니터링 시스템
효성ITX
2016.09. ~ 2016.12.
기술 스택
Java
,Spring
,Cubrid
,D3.js
내용
Ston 서비스를 이용하는 서버에 대한 5분 단위 데이터 수집 및 특정 임계치 상태 분석을 통한 장애 진단 모니터링 시스템
역할
5분 단위 통계 데이터 수집 Agent 개발
Ston Edge 서버에서 발생하는 데이터 수집
Ston Edge 서버의 비정상 감지 기능 구현
Origin, Client 서버의 Inbound, Outbound 트래픽 임계치 상태 분석 기능 구현
Service Id 별 수집 데이터 조회, 장애 이벤트 조회, 상태 조회 코드 차트, 응답 속도 차트 구현
결과 및 성과
고객사 안정성 제공
포트폴리오
교육
연세대학교
대학원(석사) | 컴퓨터공학
2017.09. ~ 2020.02. | 졸업
대전대학교
대학교(학사) | 정보통신공학과
2008.03. ~ 2012.02. | 졸업
자격증
정보처리기사
기사 | 한국산업인력공단
2015.07.
OCJP
Oracle
2015.05.
자기소개
Awards
쏘카 X 정보과학회 AI 분석경진대회 장려상, 정보과학회
Yolo V3 Darknet 으로 검출된 차량의 IoU 지수를 활용해 주차 공간 찾는 알고리즘 적용
주차 공간이 아니지만 주차 공간으로 인식하는 경우 예외 알고리즘 적용
현대 IHL 아이디어 공모전 우수상, 현대 IHL
GPS 로 현재 위치 기반 인근 실시간 신호 정보(디지털화 된 신호등 만 해당)를 국가교통정보센터에서 받아서 모바일로 신호등 변경 예상 시간을 받을 수 있는 기능 구현
Training
학습 테스트로 배우는 Spring 3기 / 2024.06 / NEXTSTEP
인프라공방 / 2022.07 ~ 2022.09 / NEXTSTEP
도커/쿠버네티스 온라인 부트 캠프 / 2021.08 ~ 2022.01 / 멋쟁이사자처럼
ATDD 클린 코드로 가는길 / 2020.02 ~ 2020.03 / NEXTSTEP
시큐어코딩 자바 양성 과정 / 2015.03 ~ 2015.08 / 폴리텍대학, 고용노동부
자바 양성 과정 / 2014.09 ~ 2014.12 / 롯데정보통신, 고용노동부