채용공고 올리기

강세필님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
강세필
직업
백엔드 개발자
이메일
rkdtpvlf456@naver.com
간단 소개

소상공인 70명과의 인터뷰를 기반으로 비즈니스 플랫폼을 기획·개 발한 경험이 있으며, 기술 선택의 이유를 깊이 고민하며 설계 단계 에서 신뢰성 있는 결정을 내리고, 스터디와 문서화를 통해 팀원들과 지식을 공유하며 함께 성장하는 것을 중요하게 생각합니다.

교육

소속/기관명

우리 FIS 아카데미

종류 | 전공

사설 교육 | 클라우드 서비스 개발

재학 기간 | 재학 상태

2024.07. ~ 2024.12. | 수료

소속/기관명

협성대학교

종류 | 전공

대학교(학사) | 소프트웨어공학과

재학 기간 | 재학 상태

2018.03. ~ 2024.08. | 졸업

기술 스택

기술 스택

Java, Spring, JPA, mybatis, MySQL, Git, AWS, Linux

자격증

자격증명

정보처리기사(필기)

점수 | 발급기관

한국산업인력공단

취득연월

2024.03.

자격증명

SQLD

점수 | 발급기관

1급 | 한국데이터산업진흥원

취득연월

2024.04.

자기소개

자기소개

물음표를 통한 성장

저는 배움의 과정에서 스스로에게 끊임없이 질문을 던지며 발전하려고 노력합니다. 학부 시절, 개발에 대한 열정으로 팀 프로젝트를 진행하며 수업에서 배운 지식을 실전에 적용해 보았습니다. 많은 시간과 노력을 들여 어느 정도 만족할 만한 결과물을 만들었지만, 실력 향상을 체감하지 못했습니다. 그 이유를 고민한 끝에, 저는 ‘눈에 보이는 결과물’에만 집중했을 뿐, 코드의 본질을 깊이 탐구하지 않았다는 사실을 깨달았습니다.
이후, 개발 방식에 대한 근본적인 변화를 시도했습니다. 우리 FIS 아카데미 핀테크 교육을 통해 언어의 기초부터 다시 학습하며 동작 과정과 원리를 꼼꼼히 익혔고, 기존에 사용했던 코드들을 분석하며 "이 코드는 왜 작성했을까?", "더 나은 방법은 없을까?" 스스로에게 질문하기 시작했습니다. 이러한 태도 변화 덕분에 프로젝트를 진행할 때 기술 선택의 이유를 고민하고, 더 효율적이고 안정적인 로직을 구현할 수 있었습니다. 그 결과, 이전과 달리 성장에서 오는 성취감을 느낄 수 있었으며, 더욱 열정적으로 학습에 임할 수 있는 계기가 되었습니다.

빠름보다 바름, 신뢰할 수 있는 코드

저는 개발을 함에 있어 빠르게 개발하는 것도 중요하지만 완성도를 위해서는 정확한 구현이 중요하다고 생각합니다. 동작만 하는 어플리케이션은 누구나 만들 수 있지만 신중하지 못한 코드는 예상하지 못한 오류가 발생할 가능성이 높으며, 이는 실제 비즈니스 수준에서 서비스에 심각한 피해를 입힐 수 있습니다. 따라서 프로젝트를 진행할 때 확장성과 유지보수를 고려하며 개발하려고 노력합니다.

이러한 개발 방식은 속도 면에서 남들보다 느릴 수 있지만, 탄탄한 설계를 바탕으로 한 코드가 결국 유지보수성을 높이고, 장기적으로는 더 효율적인 개발을 가능하게 한다는 것을 경험했습니다. 실제로, 이전 프로젝트에서 코드의 확장성을 고려하지 않고 개발했을 때, 기능 추가가 필요할 때마다 수정 범위가 예상보다 커지는 문제를 겪었습니다. 이를 계기로, 처음부터 구조를 고민하며 개발하는 것이 중요함을 깨달았고, 이후 프로젝트에서는 코드의 재사용성과 가독성을 높이는 데 집중했습니다.

앞으로도 단순히 동작하는 코드를 넘어, 비즈니스적으로 신뢰할 수 있는, 확장 가능하고 견고한 서비스를 개발하는 것을 목표로 삼고 있습니다.

개발은 혼자 할 수 없다

혼자 개발하는 개발자도 존재하지만, 대부분의 개발자는 여러 사람과 협업하며 결과물을 만들어 갑니다. 특히, 개발은 단순한 코드 작성이 아니라 기획자, 디자이너, 백엔드·프론트엔드 개발자 등 다양한 직군과 소통하며 하나의 서비스를 완성하는 과정이라고 생각합니다.

과거 프로젝트에서 요구사항이 명확하게 정리되지 않아 개발 중 수정이 반복되는 문제를 겪었습니다. 이를 해결하기 위해 팀원들과 적극적으로 의견을 주고받으며 기획 단계부터 기능을 명확히 정의하는 데 집중했습니다. 또한, 백엔드와 프론트엔드 간 API 명세를 문서화하고 정기적으로 공유하며 불필요한 시행착오를 줄일 수 있었습니다.

이 경험을 통해, 원활한 커뮤니케이션이 개발 속도를 높이고, 최종적인 서비스의 완성도를 높이는 핵심 요소임을 깨달았습니다. 앞으로도 단순한 정보 전달을 넘어, 서로의 관점을 이해하고 조율하며 효과적으로 협업할 수 있는 개발자가 되고자 합니다.

프로젝트

프로젝트명

비즈니스 통합 MSA 플랫폼 '집계사장'

소속/기관명

기타

프로젝트 기간

2024.10. ~ 2024.12.

프로젝트 내용

#Java #Spring #Spring Data JPA #MySQL #AWS #Kafka

개요

소상공인 70여명을 대상으로 구글 폼 설문지와 인터뷰를 통해 어려움을 파악했습니다.

소상공인/자영업자는 직원 출퇴근 관리, 급여 관리 및 급여 명세서 발송, 매/지출 관리 및 문서 작성에 대한 어려움을 파악했습니다. 이러한 불편함을 해소하고 쉽고 빠른 비즈니스 관리를 돕기 위해 개발되었습니다.

소상공인/자영업자 분들의 불편함을 해결하며, 상생 금융의 가치를 실천하고자 개발된 BaaS 기반 금융 서비스 플랫폼 입니다.

안전하고 확장이 가능한 설계

프로젝트를 설계함에 있어 금융 서비스는 안정성과 새로운 기능 추가에 대한 확장성이 필요하다는 고민을 하였습니다. 이를 해결하기 위해 기존 모놀리식 아키텍처에서 마이크로서비스 아키텍처(MSA)로 전환하였습니다.

기존의 모놀리식 아키텍처에서는 새로운 기능을 추가할 때 전체 시스템에 영향을 미치는 문제가 있었습니다. 또한, 트래픽 증가 시 특정 모듈만 확장하기 어려웠고, 서비스 간 결합도가 높아 유지보수에도 불리한 점이 있었습니다. 이러한 문제를 해결하기 위해, 각 서비스를 독립적으로 설계하고 개발할 수 있는 MSA를 도입하였습니다.

MSA를 적용한 결과, 팀원들이 각자의 기능을 분리하여 개발할 수 있어 짧은 시간 내에 안정적인 서비스 구현이 가능했습니다. 또한, 서비스별 개별 배포 및 확장이 가능해져 특정 기능의 트래픽이 증가하더라도 해당 서비스만 확장하여 리소스를 효율적으로 활용할 수 있었습니다.

이러한 설계를 통해 안정성을 유지하면서도 빠르게 새로운 기능을 추가할 수 있는 확장성 있는 시스템을 구축할 수 있었습니다.

JPA 병목 이슈 해결 조회 속도 71% 개선

Core Banking 시스템에서 계좌 내역을 조회하는 과정에서 복잡한 연관 관계로 인해 예상보다 훨씬 많은 쿼리가 실행되면서 성능 저하가 발생하는 문제가 있었습니다. 이 문제는 계좌(Account)와 은행(Bank) 등의 여러 엔티티가 복잡하게 연관되어 있어, 하나의 계좌를 조회할 때마다 해당 계좌에 연관된 추가적인 N개의 쿼리가 실행되면서 발생했습니다.

기존 데이터 조회 방식은 계좌 데이터를 먼저 조회한 후, 각 계좌에 연관된 은행 정보를 별도로 조회하는 방식이었습니다. 이 과정에서, 예를 들어 100개의 계좌를 조회할 경우 1번의 계좌 조회 쿼리와 100번의 은행 조회 쿼리가 실행되는 구조였습니다. 따라서 예상보다 훨씬 많은 쿼리가 실행되면서 성능이 급격히 저하되는 문제가 발생했습니다.

이 문제를 해결하기 위해 Fetch Join을 사용하여 계좌와 연관된 은행 정보를 한 번의 쿼리로 가져오도록 최적화하였습니다.
이렇게 최적화한 결과, 평균 조회 시간이 2.8초에서 0.8초로 단축되었습니다.

서버 간 통신 성능 및 유지보수성 개선

MSA 구조에서는 여러 개의 서비스가 서로 통신해야 합니다. 기존에 적용한 WebClient 방식은 코드의 복잡성 증가, 성능 저하, 예외 처리의 어려움 등의 문제가 있었습니다. 또한, 서비스 URL을 직접 코드에서 관리해야 했기 때문에, 서비스 주소가 변경될 경우 코드 수정이 필요하고, 서비스 간 결합도가 높아지는 문제가 발생했습니다.

이 문제를 해결하기 위해, Spring Cloud OpenFeign을 도입하여 HTTP 요청을 선언적 방식으로 처리할 수 있도록 개선하였습니다. 또한, Eureka와 연동하여 서비스 디스커버리 및 동적 로드 밸런싱을 구현함으로써 서비스 간 결합도를 낮추고, 유지보수성을 향상시킬 수 있었습니다.

다양한 방식의 협업

'집계사장' 프로젝트는 저를 포함한 총 6명의 협업을 통해 진행되었습니다. 개발을 시작함에 앞서 코드의 통일성을 지키기 위해 회의를 진행하여 코드 컨벤션을 통해 코드 스타일을 통일하고, Jira를 통한 업무 분배, Notion을 활용해 개발 이슈를 공유하며 효과적인 협업 환경을 조성했습니다. 또한, Figma로 UI/UX를 통일하여 일관된 디자인을 유지했습니다.

매일 아침 회의를 통해 일정을 공유하고, 매주 금요일 회고를 진행하여 개선점을 도출하고, GitHub의 Pull Request를 통한 코드 리뷰로 미흡한 부분과 더 나은 방식의 코드를 통해 기존의 방식과 제시된 방식을 비교하여 더 나은 방식으로 리팩토링을 진행하였습니다.

포트폴리오

URL

link

자기소개서

노션
link

포트폴리오

노션
댓글