미리보기
기본 정보

안녕하세요, 3년 차 백엔드 개발자 김지연입니다. 저는 주로 뇌졸중 진단 보조 AI 서비스와 같은 의료 도메인의 핵심 프로젝트에 참여하여, 의료 데이터를 안정적이고 효율적으로 처리하는 백엔드 시스템을 구축한 경험이 있습니다. 데이터베이스 최적화에 관심이 많아, 조인이나 인덱스 처리 등을 통해 SQL 성능을 개선해본 경험이 있으며, 개발 생산성 향상에도 관심이 많아 프로젝트에 CI/CD 자동화 배포 시스템과 Testcontainers를 도입해 팀 전체의 개발 효율을 높였습니다. 저는 개발자는 기술뿐 아니라 ‘사고방식’ 또한 끊임없이 성장해야 한다고 생각합니다. 그래서 평소에 컨퍼런스나 기술 커뮤니티를 통해 다양한 개발자들의 문제 해결 방식을 접하고, 제 방식과 비교해보며 시야를 넓히고 있습니다. 이러한 컨퍼런스를 통해 얻은 인사이트는 블로그에 정리해두고, 실제 프로젝트에 적용해보며 제 것으로 만들기 위해 노력하고 있습니다.
기술 스택
Spring Boot, Java, MySQL, Docker, Jenkins, Git, JPA, mybatis, Linux, Redis, JUnit
경력
휴런
연구원 | 개발팀
2022.09. ~ 2025.02. (2년 6개월)
: 뇌 질환 진단 보조 AI 서비스 기업
-뇌졸중 및 파키슨병 관련 제품 핵심 프로젝트에 참여
-CI/CD 자동화 배포 구축
(주)위즈브레인
사원 | 정보팀
2021.07. ~ 2021.12. (6개월)
: 국방 정보화 프로그램 개발을 위한 SI기업
사용기술: 전자정부프레임워크, Oracle, XPLATFORM, Jenkins
주요 업무:
xplatform을 이용한 정보 파트 화면 개발
Oracle을 이용한 정보 파트 쿼리문 작성 및 튜닝
프로젝트
뇌졸중 및 파킨슨 진단 보조 AI 서비스(SCS, PD) challenge 개발
휴런
2024.06. ~ 2025.01.
프로젝트 개요: 뇌졸중 및 파킨슨 진단을 지원하는 리포트 사용성 테스트를 위한 도구로, 의사들이 뇌졸중 진단을 위한 AI 기반 리포트를 사용했을 때의 성능을 측정할 수 있는 도구.
구현한 기능:
데이터베이스 설계
: 추후 타 제품군과 다양한 국가 학회로의 확장을 고려하여 ERD를 설계하고, 데이터 정규화를 통해 중복 없이 확장 가능한 테이블 구조를 주도적으로 설계함. MariaDB 기반의 안정적인 저장 구조로 구현함.
Docker 기반 배포
: 클라우드 서버 사용이 불가한 오프라인 학회 환경과 여러 대의 노트북에서 동일한 환경으로 빠르게 배포해야 하는 요구사항을 충족하기 위해 Dockerfile 및 Docker Compose로 컨테이너 환경을 구축. SQL 스크립트 자동 실행을 포함해 초기 데이터 설정을 자동화하고, 내부 서버 배포 이후 피드백을 반영하여 반복 배포를 효율화함.
Excel 다운로드 API 개발
: 마케팅팀의 요청으로 의사 퀴즈 데이터를 분석 가능하도록 Apache POI 기반 Excel 다운로드 API를 신규 개발. 한글 파일명 인코딩 오류를 해결하여 사용자 경험을 개선하고, 의료 데이터를 기반으로 한 마케팅 인사이트 제공을 지원함.
성과/기술적 경험/트러블슈팅:
JPA 전환을 통한 생산성 향상
: 기본적인 CRUD 구현에 반복적인 SQL 작성이 필요한 MyBatis의 한계를 개선하고자 JPA로 전환. Repository 중심의 구조로 코드량을 줄이고, 비즈니스 로직 구현의 효율성을 높였으며, 추후 제품군 확장 시 유지보수성을 고려한 설계로 이어짐.
뉴로멜라닌 측정 도구(NM) 개발
휴런
2024.04. ~ 2024.07.
프로젝트 개요: 파킨슨병 진단 보조용 뉴로멜라닌 측정 도구 개발. DICOM API를 활용하여 MRI, CT 영상 조회 및 다운로드 기능을 구현.
구현한 기능:
MRI 및 CT 영상(DICOM) 조회 및 다운로드 API
의사들이 환자의 MRI 및 CT 영상 데이터를 뷰어로 확인하고, AI 분석 결과를 영상 위에 시각화할 수 있도록 DICOM 포맷으로 변환 및 다운로드 기능을 구현.
파일 전송기기(PACS) 연동을 위한 DICOM 전송 포맷 규격을 고려했으며,
dcm4che
라이브러리를 활용해 안정적인 변환 처리를 설계함.AI 분석 리포트 조회 및 다운로드 API
AI가 분석한 뇌 영상 기반 리포트를 사용자들이 손쉽게 확인하고 다운로드할 수 있도록 API를 설계 및 구현.
의료진이 빠르게 판단할 수 있도록, 리포트 형태 및 응답 형식을 간결하고 직관적으로 구성하여 사용자 편의성을 향상시킴.
성과/기술적 경험/트러블슈팅:
SQL 성능 최적화: 대용량 의료 영상 데이터를 효율적으로 조회하기 위해 실행 계획을 분석하고, 주요 조건에 사용되는 컬럼에 인덱스를 직접 설계해 SQL 성능을 개선함. 단순 인덱스뿐만 아니라, 조인 조건 컬럼과 응답 컬럼을 함께 고려하여 커버링 인덱스 구성 가능성, 불필요한 테이블 접근 최소화 등 쿼리 전체 구조를 주도적으로 최적화함.
프로젝트 유지보수 자동화: Git Tag Push 이벤트를 기반으로 Jenkins + Docker 환경에서 자동 빌드 및 배포 파이프라인을 구성하고, 내부 GitOps에 통합하여 개발자들이 신속하게 배포할 수 있도록 자동화.
프론트/백엔드 공통 배포 흐름을 정리하고 문서화해 팀 전체의 유지보수 효율성을 개선함.
Swagger 버전 업데이트 대응: Swagger 버전 업데이트 대응: Swagger 버전 변경으로 발생한 파일 업로드 API 테스트 이슈를 프론트엔드 피드백을 통해 조기에 인지하고, 원인 분석 및 애노테이션 조정을 통해 테스트 환경의 호환성을 보장함
뇌졸중 진단 보조 AI 서비스(SCS) Mobile 사용을 위한 api 개발
휴런
2023.12. ~ 2024.03.
프로젝트 개요: 기존 뇌졸중 진단 보조 AI 도구의 모바일 버전 개발, 주요 기능으로 이중 전원 기능 및 알람 기능을 추가하여 상급 병원과의 데이터 전송을 최적화.
구현한 기능:
병원 데이터 전송 API 개발
: 하급 병원에서 진단 불가한 환자의 영상 데이터(MRI, CT 등) 및 분석 정보를 상급 병원으로 전송하기 위한 API를 개발.
의료진 부재 상황에서도 진료 연계가 가능하도록 지원하며, 병원 간 전송 프로세스를 시스템화함.
전송 가능한 병원 리스트 제공 API
: 상급 병원 목록을 조회할 수 있는 API를 구현하여 전송 대상 병원의 가시성을 확보하고, 전송 기능과의 연계성을 강화함.
성과/기술적 경험/트러블슈팅:
성능 최적화
: 병원 시스템 간 영상 데이터 전송 API에서 동시 요청 시 성능 저하 이슈를 발견하고, 파일 저장 과정의 병목을 병렬 처리로 개선.
트랜잭션 격리 수준(Transaction Isolation Level)을 조정해 동시성 충돌을 방지하고, 응답 속도를 837ms → 61ms로 개선하여 안정적인 병원 간 전송 경험을 제공함. (https://all110.tistory.com/9)
뇌졸중 진단 보조 AI 서비스(SCS, CTA, CTP) 개발 및 유지보수
휴런
2022.09. ~ 2024.09.
프로젝트 개요: 뇌졸중 진단을 위한 AI 도구의 주요 기능 개발 및 운영, 신규 기능 추가와 기존 시스템 유지보수를 담당. 장애 대응 및 성능 개선 작업 수행.
구현한 기능:
AI 분석 오류 재분석 기능 및 테스트 코드 자동화
: 분석 도중 네트워크 또는 소켓 연결 문제로 발생하는 분석 실패 사례를 처리하기 위해 조건 기반 재분석 기능을 구현하고, RestAssured를 활용해 재시도 로직에 대한 테스트 코드를 작성하여 시스템 안정성을 강화함. 모든 제품군에 공통 적용되도록 기능을 확장하고, 분석 로직의 신뢰도를 확보함.
WebSocket 기반 실시간 워크리스트 시스템 개발
: 환자 워크리스트 상태 변경을 페이지 새로고침 없이 실시간으로 반영할 수 있도록 WebSocket 기반 구조를 구현하고, 서버 내 상태 변경을 감지하기 위해 Spring의 @EventListener 기반 이벤트 리스너를 연계하여 비즈니스 로직과 실시간 통신 구조를 분리 설계함.
이를 통해 의사 및 의료진의 실시간 대응을 가능하게 하여, 사용자 경험을 향상시킴.
Redis를 활용한 상태 관리 및 데이터 유효성 보장
: 로그인 대상자 정보와 워크리스트 상태 데이터를 Spring Redis Template을 사용해 저장하고, TTL(Time To Live)을 설정하여 일정 시간 동안 유효한 세션 데이터를 관리함.
주기적으로 갱신되거나 일시적으로 필요한 정보를 빠르게 조회할 수 있도록 캐싱 구조를 활용함.
통계 API 개발 (AI 엔진 라이선스 사용량 기반)
: AI 분석 엔진 실행 시 발생하는 라이선스 사용량을 날짜 기준으로 집계하여, 관리자 및 병원에서 사용 현황을 시각적으로 파악할 수 있는 통계 API를 개발.
횟수 차감형과 기간 무제한형 구독 모델 모두를 고려해 API 구조를 설계하여, 다양한 요금제와 라이선스 운영 정책을 지원함.
성과/기술적 경험/트러블슈팅:
테스트환경 구축: TestContainers를 활용하여 격리된 테스트 환경을 구축하고, 자동화된 통합 테스트를 통해 안정적인 테스트 환경을 제공.
RestAssured를 사용해 Retry API의 테스트 코드를 작성, 비즈니스 흐름에 따라 실패 시 재시도와 성공 시 처리를 구분하여 테스트 시나리오 구현.
MapStruct를 도입하여 객체 매핑 로직 자동화 : 반복적인 코드 작성 시간을 대폭 단축하고, 오류 가능성을 줄이며, 코드의 일관성과 유지보수성을 크게 개선
Flyway를 활용한 데이터베이스 스키마 변경 및 대규모 데이터 마이그레이션 수행: 새로운 컬럼 추가, DDL 스크립트 작성, 그리고 기존 테이블에서 필요 데이터를 추출하여 새 구조에 맞게 이관하는 프로세스 구현 및 최적화
ETC
휴런
신규 입사자 온보딩 효율성 향상 : 신규 입사자가 시스템 구조와 업무 흐름을 빠르게 파악할 수 있도록, 비즈니스 전반의 흐름도, 배포 프로세스, 인프라 구조, 핵심 API 및 로직별 시퀀스 다이어그램 등을 문서화하여 사내 위키에 정리함.
이를 통해 입사자의 시스템 이해도와 초기 적응 속도를 높이는 데 기여하였으며, 팀 내 온보딩 과정이 보다 체계화됨.
API 명세 문서화 및 협업 효율 개선
: 프론트엔드 개발자들이 요청/응답 형식을 직관적으로 파악하고 테스트할 수 있도록, API 엔드포인트, 파라미터, 응답 예시 등을 포함한 설계서를 위키에 정리하여 공유.
서버 세팅: QA 서버 및 병원 배포용 서버를 온프레미스 환경에서 구축 및 설정하여 안정적인 운영 환경을 제공하고, 서비스 배포 프로세스 지원.
Jenkins 기반 CI/CD 파이프라인 자동화
:GitLab Tag Push 이벤트를 통해 Jenkins 빌드를 자동 트리거하고, 도커 이미지 빌드 및 내부 레지스트리 푸시 후 ArgoCD 환경에 반영되는 CI/CD 파이프라인 구축.
내부 개발 서버에 배포가 필요한 상황에서 개발자와 프론트엔드가 빠르게 테스트할 수 있도록 배포 자동화를 설계하고, 도커 파일 및 컴포즈 파일을 관리하여 운영 효율성 향상에 기여함.
CAPTCHA API 개발
:로그인 시 자동화된 봇 접근을 방지하기 위해 CAPTCHA 기반 인증 API를 개발하고, 사용자 인증의 보안성을 강화함
교육
방통대
대학교(학사) | 컴퓨터 과학
2023.08. ~ 현재 | 재학 중
한국소프트웨어 기술 진흥협회
사설 교육 | OT 방법론
2020.08. ~ 2021.01. | 졸업
경영기술개발원교육센터
사설 교육 | 웹개발자
2019.11. ~ 2020.06. | 졸업
한림대
대학교(학사) | 정치행정, 심리학
2015.03. ~ 2019.08. | 졸업
대외활동
글또
2024
2주에 한번씩 글을 작성하는 개발자 글쓰기 커뮤니티입니다.
다른 개발자 분들과 네트워킹 및 글또 내에서 디자인 패턴 스터디 진행했습니다.
J2KB 4, 5, 6기 객체지향 서브젝트 참여 (2021.04~2022.04
J2KB
2021
4기: Java 스터디 참여
5기: 알고리즘 스터디 참여
6기: 객체지향 관련 책 읽기 스터디 리딩 https://github.com/yeonjiyeon/readingstudy
자격증
정보처리기사
한국산업인력공단