미리보기
기본 정보

안녕하세요, 성실함으로 하루 하루 성장하는 개발자 차현철입니다. 제가 지향하는 개발자의 모습은 끊임없이 배우고 성장하며 팀과 함께 목표를 이루는 신뢰받는 동료입니다. 다양한 프로젝트 경험을 통해 여러 기술을 활용하여 문제를 해결하는 경험을 쌓아나가고 있습니다.
기술 스택
Java, Python, Spring Boot, Django, MySQL, Oracle, mybatis, JPA, AWS, Vue.js, React, HTML/CSS, JavaScript, Git, JIRA
자격증
정보처리기사
한국산업인력공단
2024.12.
프로젝트
삼성SDS 기업 연계 프로젝트 - Jigsee
삼성청년SW아카데미_기업연계_프로젝트
2024.04. ~ 2024.05.
프로젝트 요약
제조 장비(Jig) 관리 시스템의 API Gateway 서버를 담당하여 마이크로서비스 아키텍처 기반의 서비스 통합과 보안 인증 체계를 구축했습니다. MTBF(Mean Time Between Failures) 알고리즘을 활용한 장비 점검주기 및 생명주기 예측 API를 개발하여 예측적 유지보수 시스템의 핵심 기능을 구현했습니다.
핵심 성과
FeignClient 기반 API Gateway를 통해 다중 서비스 간 통신 효율성 향상
JWT 기반 인증/인가 시스템으로 보안 취약점 감소 및 사용자 권한 관리 개선
통합 테스트 코드 작성으로 API 신뢰성 확보
CI/CD 파이프라인 구축으로 배포 시간 단축
주요 역할 및 기술적 접근
MSA 환경의 API Gateway 구현
FeignClient를 활용한 서비스 간 통신 설계
요청 로깅 및 모니터링 시스템 구축
보안 인증 및 인가 시스템 구축
JWT 토큰 기반 인증 시스템 설계 및 구현
Spring Security와 연동한 역할 기반 접근 제어(RBAC) 적용
Redis를 활용한 토큰 관리 및 Blacklist 처리
장비 생명주기 예측 알고리즘 개발
MTBF(Mean Time Between Failures) 산출 로직 구현
과거 장애 데이터 분석을 통한 예측 모델 적용
MongoDB를 활용한 시계열 장애 데이터 저장 및 분석
테스트 자동화 및 CI/CD 구축
MockMvc를 활용한 통합 테스트 시나리오 작성
Jenkins, Docker를 활용한 자동화된 빌드 및 배포 파이프라인 구축
AWS EC2 환경에서의 컨테이너 기반 서비스 운영
트러블 슈팅
MSA 환경에서의 에러 처리 표준화
문제 상황: FeignClient를 통한 마이크로서비스 간 통신에서 401 인증 오류 발생 시 응답 본문이 Null로 반환되어 클라이언트에 적절한 오류 메시지 전달이 불가능했습니다.
원인 분석: 역순 디버깅을 통해 HTTP Status Code 401과 404의 응답 처리 방식 차이를 발견했습니다. 특히 401 오류의 경우 Spring Security 필터에서 응답 본문 없이 상태 코드만 반환하는 특성이 있었습니다.
해결 방안:
ErrorDecoder를 구현하여 FeignClient의 에러 응답을 커스텀 예외로 변환
401 인증 오류 발생 시 403 Forbidden으로 대체하여 응답 본문 포함되도록 처리
전역 예외 처리기(GlobalExceptionHandler)를 통해 일관된 에러 응답 형식 제공
결과 및 학습: HTTP 프로토콜의 상태 코드별 특성과 Spring Security의 인증 처리 메커니즘에 대한 이해도를 높였으며, MSA 환경에서 일관된 에러 처리 패턴의 중요성을 깨달았습니다.
사용 기술
Backend: Java, Spring Boot, JPA/Hibernate, Spring Cloud
Database: MySQL, Redis, MongoDB
DevOps: AWS EC2, Docker, Jenkins, Nginx
협업 도구: Git, Gitlab, Jira, Mattermost, Notion
On-care
병원 예약 및 사용자 건강 검진 내역 관리 서비스_팀프로젝트
2025.02. ~ 2025.03.
프로젝트 요약
의료 서비스 접근성을 높이기 위한 병원 예약 및 건강 검진 내역 관리 플랫폼을 개발했습니다. 다양한 인증 방식과 실시간 알림 시스템을 구현하고, 이미지 최적화 및 클라우드 인프라 구축을 담당하여 사용자 경험과 운영 효율성을 크게 개선했습니다.
핵심 성과
WebAuthn 기술을 활용한 패스키 인증으로 보안성 강화 및 사용자 편의성 향상
이미지 최적화를 통해 S3 스토리지 비용 93% 절감 및 로딩 속도 개선
추상화된 알림 시스템 설계로 코드 중복 감소 및 유지보수성 향상
저비용 클라우드 인프라 구성으로 월 운영 비용 절감
주요 역할 및 기술적 접근
다중 인증 시스템 설계 및 구현
OAuth2.0 기반 카카오 소셜 로그인 연동
JWT 토큰 기반 인증 및 권한 관리 시스템 구축
WebAuthn4j 라이브러리를 활용한 비밀번호 없는 인증(패스키) 구현
실시간 알림 시스템 개발
Server-Sent Events(SSE) 기술을 활용한 실시간 단방향 통신 구현
다형성을 활용한 NotificationReceiver 인터페이스 설계
사용자 타입별 알림 전송 로직 통합 관리
이미지 처리 및 최적화 시스템
AWS S3를 활용한 이미지 저장소 구축
WebP 포맷 변환 및 해상도 최적화 파이프라인 구현
이미지 메타데이터 처리 및 보안 강화
클라우드 인프라 설계 및 운영
GitHub Actions를 활용한 경량화된 CI/CD 파이프라인 구축
비용 효율적인 SSL 인증 및 도메인 관리 방안 적용
트러블 슈팅
1. 이미지 스토리지 최적화
문제 상황: 사용자 및 병원 프로필 이미지를 AWS S3에 원본 그대로 저장할 경우 용량이 크고 스토리지 비용 부담이 급증했습니다.
접근 방법:
다양한 이미지 포맷의 압축률 비교 분석
해결 방안:
WebP 포맷 변환으로 JPEG/PNG 대비 30~50% 추가 압축
이미지 크기 최적화
결과: 이미지 크기를 원본 대비 평균 93% 축소하여 S3 스토리지 비용을 대폭 절감하고, 이미지 로딩 속도 향상으로 사용자 경험 개선
2. 알림 시스템 설계 개선
문제 상황: 회원과 병원 두 사용자 타입에 대한 알림 기능 구현 시 데이터 구조 차이로 인해 중복 코드가 발생하고 유지보수성이 저하될 위험이 있었습니다.
접근 방법:
두 사용자 타입의 알림 요구사항 및 공통점/차이점 분석
객체지향 설계 원칙 적용 가능성 검토
기존 코드의 중복 패턴 식별
해결 방안:
NotificationReceiver 인터페이스 설계로 다형성 활용
Member와 Hospital 클래스가 공통 인터페이스 구현
SSE 등록, 알림 DB 저장, 실시간 푸시 등 공통 로직 추상화
결과: 코드 중복 감소, 새로운 알림 유형 추가 시 확장성 향상, 코드 가독성 및 유지보수성 개선
3. 저비용 클라우드 인프라 구성
문제 상황: 프로젝트 지원 종료 후 AWS 서비스(EC2, ACM, Route53) 비용 부담 증가 및 t2.micro 인스턴스에서 Jenkins 구동 시 리소스 부족으로 CI/CD 구축 실패
접근 방법:
각 AWS 서비스의 대체 가능한 저비용 대안 조사
리소스 사용량이 적은 CI/CD 도구 비교 분석
SSL 인증 및 도메인 관리 대안 탐색
해결 방안:
Jenkins에서 GitHub Actions로 CI/CD 파이프라인 전환
ACM 대신 Nginx와 Let's Encrypt(CertBot) 활용 무료 SSL 인증서 적용
Route53 대신 도메인 구매처(Gabia)의 DNS 레코드 설정 활용
결과: 월 인프라 운영 비용 절감, 서비스 품질 유지, 자원 효율적인 CI/CD 파이프라인 구축
사용 기술
Frontend: React, React Router, Axios, Tailwind CSS
Backend: Java, Spring Boot, JPA/Hibernate, WebAuthn4j
인프라: AWS EC2, S3, RDS, ALB, Nginx, GitHub Actions, CertBot
협업 도구: Git, GitHub, Notion
포트폴리오
교육
삼성청년SW아카데미
사설 교육 | 파이썬과 Vue.js를 활용한 풀스택 웹 개발 과정
2023.07. ~ 2024.06. | 수료
Google IT 지원 수료증 이수 과정
사설 교육 | 네트워크, 운영체제, 시스템 관리, 보안
2024.02. ~ 2024.06. | 수료
서울경제진흥원(SBA)
사설 교육 | MSA기반 자바 Full Stack 개발 전문가 양성 과정
2024.09. ~ 2025.03. | 수료
배재대학교
대학교(학사) | 심리상담학과
2016.03. ~ 2023.08. | 졸업
자기소개
1. 개발자로서의 경험
부트캠프 교육과 기업 연계 프로젝트를 통해 실무 환경과 유사한 개발 경험을 쌓아왔습니다. 삼성 SDS 기업 연계 프로젝트 'Jigsee'에서는 API Gateway 서버와 JWT 인증 시스템을 담당하며 서비스 아키텍처의 전체적인 흐름을 이해하는 기회를 가졌습니다. FeignClient를 활용한 MSA 환경에서의 서비스 간 통신과 에러 처리를 경험하며 분산 시스템의 복잡성을 다루는 능력을 키웠습니다.
'On-care' 프로젝트에서는 보안과 인프라 구축에 초점을 맞추어 AWS 클라우드 환경에서의 CI/CD 파이프라인을 구축했습니다. OAuth2, JWT, 그리고 WebAuthn4j 라이브러리를 활용한 패스키 인증 시스템을 구현하여 사용자 인증의 다양한 방식을 경험했습니다. 또한 SSE를 활용한 실시간 알림 시스템과 S3 이미지 업로드 및 최적화 기능을 성공적으로 구현했습니다.
두 프로젝트에서 공통적으로 통합 테스트 코드 작성, CI/CD 구축, 그리고 인증 및 인가 시스템 개발 경험을 쌓아 백엔드 개발의 핵심 영역에 대한 이해도를 높였습니다.
2. 개발자로서의 강점 및 업무 방식
문제 해결 중심적 접근
프로젝트에서 발생한 기술적 문제를 체계적으로 분석하고 효과적인 해결책을 찾아내는 능력이 저의 가장 큰 강점입니다. FeignClient의 응답이 Null로 반환되는 문제를 역순으로 디버깅하여 HTTP 에러코드의 특성을 파악하고 해결했던 경험은 문제의 근본 원인을 찾아내는 접근 방식을 보여줍니다. 표면적인 증상이 아닌 근본 원인을 파악하고 해결하는 데 집중합니다.
비용 효율성과 최적화 지향
AWS S3 이미지 저장 시 용량 최적화를 통해 93%의 용량 감소를 달성하고, 프로젝트 지원 종료 후에도 최소한의 비용으로 서비스를 유지할 수 있는 대안을 모색한 경험은 비용 효율성을 고려한 개발 방식을 보여줍니다. 기술적 완성도뿐만 아니라 운영 비용과 효율성을 항상 고려합니다.
코드 추상화와 설계 능력
알림 기능 구현 과정에서 NotificationReceiver 인터페이스를 통해 공통 로직을 추상화한 사례는 코드 중복을 줄이고 유지보수성을 높이는 설계 능력을 보여줍니다. 단기적인 기능 구현에 그치지 않고 장기적인 코드 품질과 확장성을 고려한 설계를 지향합니다.
다양한 기술 스택 적응력
Java/Spring Boot 기반의 백엔드 개발뿐만 아니라 AWS 클라우드 서비스, Docker, Jenkins, GitHub Actions 등 DevOps 영역의 도구들을 적극적으로 활용하는 모습은 새로운 기술에 대한 빠른 적응력과 학습 능력을 보여줍니다. 변화하는 기술 환경에 유연하게 대응하며 지속적으로 학습합니다.
3. 개발자로서의 성장계획
지금까지의 경험을 바탕으로 다음과 같은 방향으로 성장해 나가고자 합니다:
백엔드 전문성 심화
Spring과 JPA를 넘어 Spring WebFlux와 같은 리액티브 프로그래밍 모델을 학습하여 비동기 처리와 고성능 애플리케이션 개발 역량을 강화하고자 합니다. 또한 JVM 튜닝과 같은 저수준 최적화 기법을 학습하여 서비스 성능을 극대화하는 능력을 키우고자 합니다.
클라우드 네이티브 아키텍처 역량 강화
AWS와의 경험을 바탕으로 Kubernetes 기반의 컨테이너 오케스트레이션과 서버리스 아키텍처에 대한 이해를 높이고자 합니다. Infrastructure as Code(IaC)를 통한 인프라 자동화와 모니터링 시스템 구축 능력을 키워 안정적인 시스템을 설계하고 운영할 수 있는 개발자가 되겠습니다.
소프트웨어 설계 역량 향상
알림 시스템 추상화 경험을 확장하여 디자인 패턴과 객체지향 설계 원칙에 대한 이해를 깊이 있게 발전시키고자 합니다. Clean Architecture와 Domain-Driven Design을 실무에 적용하여 유지보수하기 쉽고 비즈니스 요구사항의 변화에 유연하게 대응할 수 있는 시스템을 설계하는 능력을 키우겠습니다.
두 프로젝트에서 경험한 문제 해결 과정과 기술적 도전을 통해 얻은 인사이트를 바탕으로, 단순한 기능 구현을 넘어 최적화된 설계와 비용 효율적인 시스템을 구축할 수 있는 백엔드 개발자로 성장해 나가겠습니다.