채용공고 올리기

강효진님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
강효진
직업
이메일
khj6354@naver.com
간단 소개

#어려움에 주저하지 않음 #주도적 고민과 도전 #더 나은 구조로의 개선 집착 고민을 즐기는 백엔드 개발자 강효진입니다. 어떤 게 좋은 코드일지, 어떤 방식으로 해결해야 할지, 개선점은 무엇일지 스스로 고민하는 것을 좋아합니다. 모든 사고의 과정을 기록하고, 팀원들과 공유합니다. 또한 7번의 팀 프로젝트를 하며 팀원들에게 공통적으로 들었던 저를 표현하는 한마디는 “포기 없는 불굴의 의지” 였습니다. 어려운 문제를 맞닥뜨려도 어떻게든 해결 방법을 찾아내고, 어려움을 해결해 나가는 과정을 좋아합니다.

기술 스택

기술 스택

Java, Spring, DBMS/RDBMS, HTML/CSS, JavaScript, Python, FastAPI, React, Thymeleaf, AI Agent, MCP, Docker, Jenkins, aws-ec2, Google Cloud Platform

프로젝트

프로젝트명

Finto

소속/기관명

우리FIS 아카데미 (우리FISA)

프로젝트 기간

2025.04. ~ 진행 중

프로젝트 내용

금융권 대직원 AI 에이전트 – 반복 업무 자동화 서비스

Spring Boot MCP Server Redis Docker Jenkins Python Typescript MySQL AWS EC2

역할

  • 전체 아키텍처 설계

  • Google Calendar, Word 등 5개 MCP Server 직접 구축 및 커스텀 tool 개발

  • 환율 데이터 → 자동 시각화 → Word 보고서 자동 생성 기능 개발

  • 회의실 예약 시스템 전반 설계: CRUD, 인증, 예외 대응, 통합 테스트

  • 브랜치, 폴더 단위 CI/CD, Nginx reverse proxy, Tailscale VPN 등 금융권 맞춤형 인프라 구성

challenge

  • 예약 처리 구조 리팩토링: 조회/예약 역할 분리 + Redis/DB 이중 정합성 검증

  • 병렬 처리 도입으로 회의실 조회 응답 시간 450ms → 120ms (73% 감소)

  • Redis TTL 기반 설계 전환 + 비정상 상태 자동 감지로 속도 30배 개선

  • 보안 중심 설계: VPN 기반 사설망, 인증서 자동 갱신, EC2 최적화로 비용 40% 절감

프로젝트명

백투백

소속/기관명

삼성 청년 소프트웨어 아카데미 (SSAFY)

프로젝트 기간

2023.04. ~ 2023.05.

프로젝트 내용

실시간 야구 경기 포토카드 자동 생성 서비스

Spring Boot Kafka MSA MariaDB Spring Data JPA

역할

  • Spring Kafka Client를 이용하여 각 경기마다 지정된 토픽에 쌓인 채팅 개수를 5초마다 수집

  • 채팅이 급증하는 것이 감지되면 하이라이트 시작 offset 추출

  • 경기가 종료되는 이벤트 발생 시 경기 결과 크롤링

  • 경기 목록 크롤링

challenge

  1. Kafka에서 매번 다른 3개의 topic을 listen 해야할 때 → 동적으로 Listener Container을 생성해서 해결

  2. 템플릿 메서드 패턴을 이용한 Selenium 사용 코드 리팩터링

프로젝트명

디몽

소속/기관명

삼성 청년 소프트웨어 아카데미 (SSAFY)

프로젝트 기간

2023.02. ~ 2023.04.

프로젝트 내용

아이와 부모님을 위한 ai 공룡 학습 어플리케이션

Spring Boot FastAPI MariaDB Spring Data JPA Docker Jenkins Hexagonal Architecture

역할

  • 전체 아키텍처 설계

  • Spring Boot를 사용한 전체 Back-end REST api 개발

    • Hexagonal Architecture 적용

  • Python + Fast API를 사용하여 AI 모델 서빙을 위한 REST api 개발

  • AWS EC2, Jenkins, Docker, Docker-compose를 사용한 배포 자동화

프로젝트명

Bundler

소속/기관명

삼성 청년 소프트웨어 아카데미 (SSAFY)

프로젝트 기간

2023.01. ~ 2023.02.

프로젝트 내용

개발자 취준생을 위한 SNS - 나만의 IT 카드 모음집 만들기

Spring Security OAuth 2.0 토큰 기반 인증 Spring Boot

역할

  • Spring Security를 사용한 stateless한 토큰 기반 인증/인가 + 회원가입

  • Spring Security를 사용한 Github 소셜 로그인 (OAuth2.0)

  • 글을 작성하면, 템플릿에 맞춰 Github에 자동으로 md파일 업로드

  • 팔로잉/팔로워 추가, 삭제

포트폴리오

URL

link

포트폴리오

URL 링크
link

Github

깃허브

교육

소속/기관명

우리FIS 아카데미 (우리FISA)

종류 | 전공

사설 교육 | AI 엔지니어링 과정

재학 기간 | 재학 상태

2024.12. ~ 현재 | 재학 중

소속/기관명

삼성 청년 소프트웨어 아카데미 (SSAFY)

종류 | 전공

사설 교육 | Java 트랙

재학 기간 | 재학 상태

2022.07. ~ 2023.06. | 수료

소속/기관명

동덕여자대학교

종류 | 전공

대학교(학사) | 컴퓨터학

재학 기간 | 재학 상태

2018.03. ~ 2022.08. | 졸업

소속/기관명

경기여자고등학교

종류 | 전공

고등학교

재학 기간 | 재학 상태

2014.03. ~ 2017.02. | 졸업

대외활동

활동명

한이음 ICT 멘토링

소속/기관명

한국정보산업연합회

연도

2021

내용
활동명

한이음 ICT 멘토링

소속/기관명

한국정보산업연합회

연도

2020

내용

자격증

자격증명

ADsP

점수 | 발급기관

한국데이터산업진흥원

취득연월

2025.03.

자격증명

SQLD

점수 | 발급기관

한국데이터산업진흥원

취득연월

2024.09.

자격증명

정보처리기사

점수 | 발급기관

한국산업인력공단

취득연월

2021.11.

외국어

외국어명

영어

점수

일상 회화 가능

자기소개

자기소개

1. 성장과정

[도전은 나의 연료, 문제 해결은 나의 무기]

어릴 때부터 호기심이 많고, 도전하는 것을 좋아했습니다. 특히 어려운 문제에 부딪혔을 때 더욱 흥미를 느끼고, 이를 해결하기 위해 다양한 방법을 끈기 있게 시도하는 것을 즐겼습니다. 학창 시절 수학 문제를 풀 때도 해설을 보기보다는 나만의 방식으로 접근하며 개념을 깊이 이해하려 했고, 그 재미에 빠졌습니다. 처음엔 짝꿍의 문제를 같이 고민했지만, 점차 친구들이 하나둘씩 제게 찾아와 문제를 같이 풀게 되었고, 반 전체가 함께 고민하는 독특한 문제 풀이 문화가 만들어졌습니다.

고등학교 때 정보 과목을 통해 코딩을 처음 접했을 때, 논리적으로 문제를 해결하는 과정이 수학과 닮아 있어 흥미로웠습니다. 그때부터 개발자가 되고 싶다는 꿈을 품었고, 이를 위해 컴퓨터공학과에 진학하게 되었습니다. 이후 쇼핑몰을 운영하는 친구가 랜덤으로 고객을 추첨해야 한다며 고민할 때, 수업에서 배운 Random 클래스를 떠올려 간단한 추첨 프로그램을 만들어주었던 경험은, 내가 배운 기술이 누군가에게 실질적으로 도움을 줄 수 있다는 점에서 큰 동기부여가 되었습니다.

대학 시절 프로젝트 중 마감 전날 예상치 못한 버그가 발생했을 때도, 저는 그 상황을 당황하기보다는 흥미롭게 받아들였습니다. 전체 코드 흐름을 차분히 복기하고, 의심되는 부분부터 한 줄 한 줄 꼼꼼하게 추적해 결국 문제를 해결했습니다. 그 경험은 기술적 성장뿐 아니라, 문제를 다양한 시각에서 바라보는 사고력을 키우는 계기가 되었습니다. 이후에는 기술적인 고민이 생기면 팀원들이 가장 먼저 저를 찾아오는 분위기도 자연스럽게 형성되었습니다.

어려운 문제일수록 더욱 끈기 있게 도전하고, 여러 방식으로 해결책을 찾아내는 저의 태도는 정보보안 분야에서도 중요한 역량이라고 생각합니다. 이러한 문제 해결 중심의 사고와 실행력을 바탕으로, 사이버다임의 ECM 솔루션과 시스템 개발에 기여하는 인재가 되겠습니다.

2. 역량 1) 사용자 중심 사고, 창의적인 해결법

[스스로 개선 사항을 생각하며 요구사항을 200% 만족시키는 개발자]

저는 요구사항에 충실한 것을 넘어 더 좋은 제안까지 할 수 있을 정도로 사용자 중심 사고를 가지고 있습니다. 또한 주도적으로 더 좋은 방법이 있을지 고민하며, 창의적인 방법으로 개선하는 것을 좋아합니다.

하루 한 개 미션 인증글 공유 프로젝트에서 새로운 아이디어를 통해 게시글 목록 조회 시간을 단축시킨 경험이 있습니다. JDBC를 사용해서 각각의 게시글에 무한 태그가 포함된 채로 게시글 목록을 조회해야 하는 상황이었습니다. 다른 팀원들은 N개의 게시글이 있으면 N번 모두 조회하여 리스트에 추가하는 방식으로 구현했습니다. 하지만 저는 N번을 1번으로 줄일 수 있을 것 같아 고민하기 시작했습니다. outer join을 사용해 한꺼번에 조회하고, 반환된 ResultSet을 돌면서 이전 Cursor의 ID와 다르면 게시글 객체를 생성하고, 같으면 해당 게시글에 태그를 리스트로 추가하면서 해결했습니다. 더 빨리 조회할 수 있는 방법을 창의적으로 고안해 내고, 그것을 팀원들에게 공유함으로써 프로젝트 전체 성능을 높일 수 있었습니다.

이처럼 어떻게 하면 더 좋은 결과물을 만들어낼지 스스로 고민하고 개선시키는 태도를 가지고 사이버다임의 많은 고객사들을 200% 만족시키는 개발자가 되겠습니다.

3. 역량 2) 변화에 대응하다

[새로운 프레임워크 도입을 주도하며 팀의 방향을 바꾸다]

개발자 취업준비생을 위한 SNS 프로젝트에서 회원 기능을 맡아 Spring Security를 활용해 토큰 기반 인증/인가와 OAuth2.0을 구현했습니다. 그런데 Spring Security 6.0 버전이 출시되면서 기존의 WebSecurityConfigurerAdapter 방식이 사라지고 함수형 설정 방식으로 바뀌었습니다. 팀원들은 기존 방식에 익숙했고, 참고할 자료도 부족했기에 새로운 방식을 도입하는 것에 부담을 느꼈습니다. 하지만 보안 특성상 코드 취약점이 금세 생기기 때문에 새 버전이 좋을 거라고 판단하여 팀에 제안했습니다.

우선 Spring Security의 원리를 학습한 후, 새로운 방식과 기존 방식의 차이를 분석하여 팀원들에게 문서로 정리해 공유했습니다. 또한 deprecated된 부분과 비교하며 코드 리뷰를 진행했습니다. Java 함수형 문법은 '모던 자바 인 액션'을 참고하여 학습하며 함수형 코드에 대한 이해도를 높였습니다.

그 결과, 기존보다 보안성이 강화된 인증/인가 시스템을 성공적으로 구축했습니다. 특히 Github 소셜 로그인을 통해 게시글 자동 커밋 기능까지 완성하며 프로젝트를 마무리할 수 있었습니다. 이 경험을 통해 변화에 단순히 적응하는 것을 넘어, 변화를 이끌어나가는 주도적인 자세와 문제 해결 능력을 키울 수 있었습니다. 앞으로도 변화 속에서도 주도적으로 해결책을 찾아 나가며 프로젝트를 성공적으로 수행하겠습니다.

4. 역량 3) 스스로 도전하다

[문제 해결 능력 - 꼬리를 무는 문제들을 해결하다]

개발자의 가장 중요한 역량 중 하나는 문제 해결 능력이라고 생각합니다.

야구 스트리밍 서비스 프로젝트에서 야구 경기 중 채팅이 급증하는 것을 감지하면, 실시간으로 하이라이트를 생성하는 기능을 개발했습니다. Kafka 토픽 3개에 쌓인 메세지를 5초마다 수집해야 했지만, 매 경기마다 토픽명이 변경되어야 했습니다. @KafkaListener를 사용하게 되면 3개의 토픽을 구독할 수는 있지만, 이미 만들어진 listener container이기 때문에 토픽을 변경할 수 없는 문제가 있었습니다.

이를 해결하기 위해 첫 번째로, 15개의 토픽을 각각 하나의 @KafkaListener로 매핑하는 방법을 고려했습니다. 내부 구현이 제공되기 때문에 편리했지만, 비슷한 코드가 반복되고, list 세 개의 카운팅을 안전하게 해줘야 하는 문제가 있었습니다. 그래서 두 번째 방법으로 커스텀 Listener Container를 동적으로 생성하는 방법을 사용했지만, 컨테이너를 stop해줘야 하는 문제가 발생했습니다. 해당 컨테이너를 Spring이 관리하는 Endpoint Registry에 수동으로 등록함으로써 최종적으로 문제를 해결했습니다.

우선 공식문서와 Spring Kafka의 jar 내부 코드를 따라가며 @KafkaLister가 어떤 방식으로 동작하는지 알게 되었습니다. 그 동작 방식을 참고한 후 커스텀할 부분만 고치며 해결할 수 있었습니다. 문제 해결 능력과 더불어 큰 규모의 프로젝트에서 상속과 구현, 수많은 의존 관계들을 파악하면서 성장할 수 있었습니다.

5. 역량 4) 소통 방식

[문제 해결의 공식 – WHY → HOW → WHO]

원활한 협업을 위해 저는 단순히 문제를 보고하는 것이 아니라, 원인을 분석하고 해결 방법을 찾은 뒤, 이를 팀원들과 효과적으로 공유하는 방식으로 접근합니다.

과거 AI 공룡 학습 애플리케이션 프로젝트를 진행할 때, 회원 인증 과정에서 로그인이 되지 않는 문제가 발생한 적이 있었습니다.

  • WHY: 로그를 분석하며 에러 메시지를 확인한 결과, 인증 과정에서 GCP의 Authentication에서 제공하는 ID와 백엔드에서 사용하는 ID 매칭이 제대로 이루어지지 않는 문제를 발견했습니다.

  • HOW: 같은 기능을 담당하던 모바일 팀원과 협의한 후, GCP의 Authentication에서 사용한 ID를 받아와 백엔드 서버에서 해당 ID의 존재 여부를 체크하는 방식으로 로직을 변경하여 문제를 해결했습니다.

  • WHO: 이러한 변경 사항을 백엔드뿐만 아니라 AI팀과 모바일 팀에도 공유하여, 이후 인증 관련 작업을 진행할 때 동일한 문제가 발생하지 않도록 대비했습니다.

이처럼 저는 단순한 문제 해결을 넘어, 팀원들과 문제 해결 과정을 공유하며 협업의 효율성을 높이는 방식을 중요하게 생각합니다. 이러한 접근법을 업무에서도 적용하여, 시스템 장애나 성능 이슈가 발생했을 때 원인을 빠르게 분석하고 해결 방안을 도출하며, 유관 부서와 긴밀히 협력해 신속히 대응하겠습니다.

댓글