설진우
이메일: jerrydevengineer@gmail.com 연락처: 010-3385-2384
안녕하세요, 불편한 점을 개선하고 새로운 해결책을 찾는 것을 좋아하는 개발자 설진우입니다. 작은 문제라도 효율적으로 해결하기 위해서 버전 설정을 최적화하며, 다양한 환경에서 개발을 경험하며 각 환경의 사소한 차이가 오류를 발생시킬 수 있다는 것을 깨달았습니다. 이러한 오류를 방지하기 위해 사전에 테스트하고 기록하는 습관을 갖추게 되었습니다.
경력
대출 SaaS 솔루션
개발팀 (2023.06 - 2025.01)
서비스 개발 및 운영(2024.09 - 2025.01)
- 신정원 통신 및 데이터 추출 모듈 개발
- DB 데이터 기반 설정값으로 데이터 요청 API 스크립트 개발
- 응답 데이터 변환 후 엑셀 추출 프로그램 개발
- Laravel Logger 및 excel 클래스 재작성 후 솔루션 적용
- 신규 신용정보 추출 배치 프로그램 개발
- 신규 전문 API 스크립트 및 php 개발
- 기존 운영 서버 차세대 개발 서버로 전환
- 구세대 운영 서버 데이터 백업 및 초기화
- 운영 서버 데이터 덤프 및 서버 구축
- gitea 서버 및 jenkins 구축
- CI/CD 설정 및 스크립트 작성
- 주요 성과
- 다수의 업체가 사용하는 전용선의 점유시간을 줄이기 위해 통신 프로그램을 업체에 데이터 추출 기준 기반으로 나누고 업체에서 자체적으로 데이터 추출을 할 수 있게 만들었습니다. 이때 전용선 관련 통신 프로그램의 주의점을 배울 수 있었습니다.
- Skill
- Script / PHP / Laravel / PostgreSQL / Docker / gitea / jenkins / javascript
사내 솔루션 고도화 및 차세대 프로젝트 진행(2023.12 - 2024.08)
- 은행 모듈 이중화
- 기존 사용하던 은행 모듈 타사 모듈로 이전 작업 및 신규 API 개발
- 통신 서버 재구축
- 기존 순수 php 통신 서버 Laravel 기반 서버로 재구축
- 기존 3개의 물리 서버 하나로 통합 및 reverse proxy 구축
- 재구축 된 서버 컨테이너화 및 NCP 배포 및 운영
- 차세대 대비 기존 DB 서버 백업 및 차세대 개발 서버 생성
- 기존 통신 서버 백업 및 차세대 개발 서버로 Laravel/Postgresql/Docker로 세팅
- 기존 Oracle 서버 데이터 백업 및 신규 PostgreSQL 서버로 데이터 이관
- gitea / Jenkins 구축 후 형상 관리 및 CI/CD 적용
- 차세대 프로젝트 기반 데모 서버 구축
- 기존 순수 php 운영 서버 laravel 프레임워크로 재구축
- 데모 및 예비 운영 용 서버 구축 및 NCP 배포
- 주요 성과
- 개발 서버의 지속적인 관리와 데이터 최신화의 중요성을 인식하고, 서버 리소스 사용량을 모니터링하는 시스템을 구축했습니다. 이를 통해 서버 용량을 30% 이상 축소하고 테스트 데이터를 최신화하여 검수 시간을 단축했습니다. 이 과정에서 서버 이전 과정에서 발생할 수 있는 데이터 손실 문제를 방지하기 위한 백업 및 복구 전략을 수립했습니다.
- 신규 개발 서버를 구축하면서 reverse proxy 서버 구축, gitea 서버 구축, jenkins를 활용한 자동 배포 기술 적용 등을 경험하면서 CI/CD 관련 학습을 진행하고 사용해 봄으로써 쉘 스크립트 및 자동 배포, 복구에 관한 경험을 할 수 있었습니다.
- Skill
- Script / PostgreSQL / Oracle / Docker / NCP / nginx / gitea / jenkins / java / PHP / Laravel / javascript
서버 보안 강화 작업 및 모니터링(2023.08 - 2023.12)
- 통신서버 쿼리바인딩
- 개인정보 있는 데이터베이스에 외부 사용자가 날릴 것으로 추정되는 쿼리로그 확인
- 개인정보 있는 테이블 및 미사용 테이블 전수조사 스크립트 작성
- 2개월간 통신서버에 있는 모든 쿼리 쿼리바인딩
- 발견된 외부 사용자 쿼리 실행로그 쿼리바인딩 작업 후 미발견
- 보안 개선
- 통신서버의 쿼리 로그를 분석하여 SQL 인젝션 취약점을 발견했습니다. 모든 쿼리에 대해 파라미터화된 쿼리(쿼리바인딩)를 적용하여 보안을 강화했습니다. 이 과정에서 정해진 내용만 보여줄 뿐 쿼리 사용을 자제하고, 통신서버의 경우 쿼리바인딩으로 쿼리 인젝션을 예방해야 한다는 점을 배웠습니다.
- Skill
- Script / PostgreSQL / PHP / Laravel / Linux
대부업 전산 페이지 유지보수 (2023.07 - )
- 대부업 내부 전산 스크립트 유지보수 업무
- 주로 기술적 오류나 금액 계산 과정에서 있는 로직 오류 분석 및 수정
- 추가 기능(전문 개발, 외부 통신) 등 신규 개발 작업
- 서버 상태 관리 및 외부 모듈 관리
- 성능 최적화: PL로서 담당자 문의 대응 및 유지보수 요청 요건 조절 및 미팅 간단해 보이는 기능들이 얼마나 많은 노력으로 이루어져 있고 오랜 기간 유지되어 있는 스크립트를 다시 고치는 것도 쉽지 않다는 것을 알게 됐습니다. 이 경험을 통해 레거시 코드를 효율적으로 분석하고 수정하는 방법을 배웠으며, 기존 시스템을 이해하고 개선하는 능력을 키웠습니다.
Projects
POOM(2022.12 - 2023.06)
친환경 매장을 유저 평가 기반으로 분류하고 쉽게 검색하고 원하는 매장을 찾아주는 지도 어플리케이션
백엔드 구성 및 개발 (2023.02 - 2023.06)
- 헥사고날 아키텍처 기반으로 비즈니스 도메인 분리 및 설계
- 유연한 확장과 변경을 위한 인터페이스 중심 개발
- AWS S3를 활용한 파일 업로드/관리 기능 구현
- 샵, 마이페이지, 리뷰, 북마크 등 REST API 설계 및 개발
- 쿠버네티스 및 Argo CD를 활용한 배포
프로젝트 기획 및 개발 디자인 설정 (2022.12 - 2023.01)
- 지인 개발자 2명과 프로젝트 기획 후 커뮤니티를 통해 인원 모집
- 프로젝트 주제와 진행 방식에 대한 토의 및 결정
- 각 담당 분배 및 담당별 일정 토의, 프로젝트 관련 아이디어 및 인프라 회의
- 협업 경험: 프로젝트를 할 때 단순 코딩만 하는 것이 중요한 게 아닌 기획 및 업무 분배, 프로젝트 구성이 생각보다 오래 걸리고 중요하다는 것을 배웠습니다. 이 경험을 통해 팀 프로젝트에서의 효율적인 의사소통과 작업 분배의 중요성을 깨달았으며, 프로젝트 계획 및 관리 능력을 향상시켰습니다. Skill
- Java / SpringBoot / JPA / Eureka / Feign Client / PostgreSQL / Docker / Kubernetes
학력
한국방송통신대학교 컴퓨터과학과 학사 (2022.09 - 현재 재학 중)
Technische Universität Berlin elektrotechnik(자퇴) (2016.10 - 2020.03)
기술 스택
Java, Git, Spring Boot, JPA, Linux, Docker, Jenkins, SQL, PHP, Laravel, MySQL, PostgreSQL, Oracle, JavaScript
자격증 및 기타
SQLD 자격증 2023.04.14
글로벌 아이티 인재교육원 2022.07 - 2023.01 HTML, CSS, JAVASCRIPT를 사용한 웹페이지 구현및 JAVA와 SPRING을 사용한 백엔드 서버 구현, MySQL을 사용한 DB 구현 등을 배웠습니다
외국어
독일어 일상 회화
영어 일상 회화
문제 해결 사례 상세
서버 용량 최적화 및 성능 개선 프로젝트 문제 정의: 동일 계열사 차세대 작업 진행 전 디비 서버 단일화 시 용량 부족 및 디비 유지보수 업체가 컨테이너화 진행 불가능 문제 해결 과정:
- oracle 19c 버전 디비 서버에 여유 용량이 있어서 12c 버전 데이터 이관 계획이었지만 버전 호환 에러 발생 및 해당 문제 지원 문의 시 지원 어려움 답변 수신 후 하위 버전 디비 서버 병목 현상 해결 겸 DB 서버 리소스 축소 후 진행하기로 판단
- 먼저 디비 내 마지막 업데이트 3년 이상인 테이블 검색 스크립트 및 해당 테이블 소스 내 위치 파악 스크립트 작성
- 불필요한 로그 파일과 사용되지 않는 테이블 및 데이터를 나스 백업 후 정리하고 개발계 DB 서버 단일화
- 테스트 데이터를 최신화하기 위한 python 자동화 스크립트를 개발하여 주기적으로 운영계 데이터를 개발계로 마이그레이션하는 프로세스를 구축
- 운영 중인 DB 데이터 차세대 DB서버에(oracle -> postgreSQL) 마이그레이션하는 스크립트 프로그램 작성 및 데이터 검증 스크립트 작성
- 프로시저 및 트리거 수동 변환 작업 결과:
- 서버 용량을 30% 이상 축소하여 비용 절감 및 성능 향상을 달성했습니다.
- 테스트 데이터 최신화로 검수 시간이 평균 40% 단축되었습니다.
- 컨테이너화를 통해 서버 환경의 일관성을 확보하고 배포 프로세스를 간소화했습니다. 배운 점: 이 프로젝트를 통해 서버 리소스 관리의 중요성과 컨테이너 기술의 실제 적용 방법을 배웠습니다. 또한, 데이터 마이그레이션 과정에서 발생할 수 있는 문제점들을 예측하고 대비하는 능력을 키울 수 있었습니다. 이러한 경험은 대규모 시스템에서의 리소스 최적화와 성능 개선에 큰 도움이 될 것입니다.
성장 계획
저는 백엔드 개발자로서 다음과 같은 성장을 계획하고 있습니다: 1. 기술적 깊이 강화: Spring과 Java 및 Kotlin에 대한 전문성을 높이고, 특히 트랜잭션 관리와 같은 핵심 개념에 대한 이해를 깊게 하고자 합니다. 현재 개인 프로젝트를 통해 Spring Boot와 Java를 함께 사용하는 연습을 하고 있으며, 매주 관련 기술 서적을 읽고 있습니다. 2. 분산 시스템 이해: Redis와 Kafka와 같은 기술을 학습하여 대규모 트래픽을 효율적으로 처리할 수 있는 시스템 설계 능력을 키우고자 합니다. 현재 Redis를 활용한 캐싱 시스템 구현 프로젝트를 진행 중이며, Kafka를 통한 이벤트 기반 아키텍처를 프로젝트에 적용하기 위해 대규모 데이터 생성 프로세스를 생성 중입니다. 3. 데이터베이스 설계 역량 강화: 복잡한 비즈니스 요구사항을 효율적으로 지원할 수 있는 데이터베이스 설계 능력을 향상시키고자 합니다. 이를 위해 정규화, 인덱싱, 쿼리 최적화 등에 대한 심층적인 학습을 진행하고 있으며, SQLD 자격증 취득 이후 실제 프로젝트에 적용하는 경험을 쌓고 있습니다. 4. 지속적인 학습과 공유: 기술 블로그를 운영하며 배운 내용을 정리하고 공유함으로써 지식을 체계화하고 있습니다. 또한 오픈소스 프로젝트에 기여하는 것을 목표로 GitHub에서 기여할 수 있는 이슈들을 찾고 있습니다. 이러한 노력을 통해 단순히 기능을 구현하는 개발자가 아닌, 시스템 전반을 이해하고 최적의 솔루션을 제시할 수 있는 백엔드 전문가로 성장하고자 합니다.