채용공고 올리기

김종근님을 응원해보세요!

이직/구직 중이에요
창의적
책임감
협업 지향
목표 지향적
고객 중심

미리보기

직업
Backend Developer
이름
김종근
간단소개
IT 기술로 더 나은 세상을 만드는 개발자의 사회적 역할에 매료되어 개발자의 길을 걷게 되었습니다. 단순히 주어진 기능을 구현하는 것을 넘어, 내가 만드는 서비스가 사용자에게 어떤 가치를 제공할 수 있을지를 깊이 고민하며, 이러한 가치를 더 효과적으로 전달하기 위해 유연하고 확장 가능한 아키텍처와 설계를 고민하는 것을 좋아합니다. 또한, 협업의 가치를 중요하게 생각하며, 코드를 작성할 때 다른 개발자가 제 의도를 명확히 이해할 수 있도록 세심하게 신경 씁니다. 이를 통해 서비스 품질을 높이고 팀의 생산성을 향상시키기 위해 노력하고 있습니다. ‘개발자의 또 다른 고객은 동료 개발자’라는 생각을 바탕으로, 협업 과정에서 발생하는 문제를 적극적으로 해결하며 커뮤니케이션과 시스템을 개선하려고 합니다. 함께 일하고 싶은 동료로 인정받기 위해 지속적으로 성장하고자 합니다.

자기소개

자기소개
[문제를 적극적으로 해결하는 개발자가 되고자 합니다]

경영학을 복수전공하며 비즈니스 문제를 인식하고 해결책을 제시하는 조별 과제를 진행하면서, 구체적인 실행보다는 막연한 방향성만을 제시해야 하는 데 아쉬움을 느꼈습니다. 데이터 분석을 공부하던 중 개발자라는 직무를 알게 되었고, 생각한 문제를 직접 서비스로 구현하는 역할에 매료되었습니다. 경영학이 문제를 인식하는 데 초점을 둔다면, 개발은 인식된 문제를 기술로 해결하는 분야라고 생각합니다. 저는 경영학적 소양을 바탕으로 문제를 인식하고, 이를 소프트웨어 개발 기술로 적극적으로 해결하는 개발자가 되고 싶습니다.


[공유를 통해 함께 성장하는 문화를 지향합니다]

요즘 세상은 좋은 정보를 숨기고 혼자만 알자는 분위기가 있지만, 개발자들은 오픈소스, 테크 블로그, 컨퍼런스 등 공유에 앞장서는 독특한 문화를 가지고 있습니다. 이러한 공유 문화가 결국 자신을 성장시키고, 건강한 개발자 생태계를 만든다고 믿으며, 저도 이런 문화를 만들어나가기 위해 노력하고 있습니다.

동아리에서 CS 스터디를 할 때, 우아한형제들의 부트캠프인 우아한테크코스의 시스템을 벤치마킹하여 학습한 내용을 정리하고 발표하는 자리를 마련했습니다. 다른 사람에게 설명하기 위해 스스로 완전히 이해하고 납득될 때까지 공부했고, 잘 전달하기 위해 발표를 정성껏 준비했습니다. 시간이 오래 걸렸지만 이렇게 습득한 지식을 제 것으로 만들기에 효과적이었고, 공유를 통해 동아리원들이 함께 빠르게 성장할 수 있음을 경험했습니다.

이러한 경험을 바탕으로 사내에서 <SQL 안티패턴>, <헤드 퍼스트 디자인 패턴> 관련 스터디를 제안하여 구성원들과 함께 성장하는 문화를 만들어가고 있습니다.

기술 스택

기술 스택
Java
Spring Boot
MySQL
Redis
GitHub
Git
Docker
docker-compose

경력

회사명
티맥스 핀테크(Tmax Fintech)
직책 • 부서
Backend 연구원 • 연구본부
근무 기간 (근무 형태)
2023.07. - 재직 중
(1년 6개월 | 정규직)
담당 업무

배달 업계 디지털 공제보험 플랫폼 개발 - 상품 팩토리 & 보험료 계산 파트

  • 문제 정의:

    • 개발 인력의 도움 없이도 공제보험 상품을 설계하고 출시할 수 있는 시스템 필요

    • 공제회 직원들이 익숙한 Excel 수식과 유사한 방식으로 공제보험료를 계산하고 상품을 관리할 수 있는 기능 개발 필요

  • 주요 기여 및 문제 해결:

    • 요구사항 분석, 데이터 모델링, 시스템 설계 및 API 개발을 주도하여 상품 팩토리 구축

    • 직원들이 친숙한 환경에서 수식을 입력할 수 있도록 Excel 유사 수식 입력 기능 설계 및 구현

    • 공제보험료 계산 모듈 개발SOLID 원칙책임 연쇄 패턴을 적용하여 유지보수성과 확장성 향상

    • JSON 형태로 저장된 매트릭스 데이터를 Redis 캐싱키-값 구조로 변환하여 조회 성능 최적화

    • CI 프로세스에 정적 분석 도구(SonarQube) 도입하여 코드의 취약점 분석품질 개선

  • 사용 기술: Java 11, Spring Boot 2.9, Tibero, Redis, SonarQube


Flyway Tibero 오픈소스 개발

(상세 설명 링크)

  • 개요:

    • 공제보험 프로젝트에서 빈번한 기획 변경으로 인해 데이터베이스 스키마 변경이 자주 발생하고, 수작업으로 DB 형상 관리를 하면서 휴먼 에러와 개발 생산성 저하 문제 발생

  • 문제 해결 방향:

    • 오픈소스 데이터베이스 마이그레이션 툴인 Flyway를 도입하려 했으나, Flyway가 Tibero DB 를 공식 지원하지 않아 직접 지원 기능을 구현 결정

  • 주요 역할:

    • Flyway 코드 분석: DB 벤더별 모듈 구조를 파악하고 Tibero 지원을 위한 모듈 개발 방향 설정

    • 기능 구현: Tibero의 SQL 문법과 객체 타입을 고려하여 Flyway의 주요 명령어(migrate, baseline, info, repair, validate, clean)가 정상 동작하도록 기능 개발

    • 테스트 및 검증: 구현한 기능에 대한 단위 테스트와 통합 테스트를 통해 안정성 확인

    • 라이브러리 배포: JitPack과 GitHub Releases를 활용하여 라이브러리로 배포, 프로젝트에서 손쉽게 활용 가능하도록 환경 구축

    • CI/CD 자동화: GitHub Actions를 이용해 코드 변경 시 자동으로 빌드 및 배포가 이루어지도록 설정하여 운영 효율성 향상

  • 성과:

    • 데이터베이스 형상 관리 자동화를 통해 휴먼 에러 감소개발 생산성 향상

    • 개발, 검증, 운영 환경의 DB 스키마 분리가 가능해져 병렬 작업 및 QA 효율성 증대

  • 사용 기술: Java, Flyway, Tibero, GitHub Actions, JitPack, Gradle


Tibero Docker 환경 개선 및 최적화 프로젝트

(상세 설명 링크)

  • 개요:

    • 문제점:

      • 공식적인 Tibero Docker 이미지 부재로 내부에서 사용하는 비공식 이미지가 컨테이너 재기동 시 데이터베이스 연결 불가 등의 문제 발생, 컨테이너 삭제 및 재생성이 매번 필요하여 개발 생산성 저하

    • 필요성:

      • 안정적인 개발 환경 구축과 테스트 효율성 향상을 위해 Docker 환경 개선 필요

  • 주요 역할:

    • 문제 분석:

      • Tibero의 기동 단계(Shutdown → Nomount → Mount → Normal)를 이해하고, 컨테이너 재실행 시 발생하는 BOOT FAILED 오류의 원인 파악

      • 로그 분석을 통해 이전 종료 시 남은 프로세스나 파일이 재기동에 영향을 준다는 것 확인

    • 해결 방안 적용:

      • Tibero 재기동 시 자동으로 클린업 이루어지도록 설정

      • 쉘 스크립트에 Tibero 프로세스의 실행 여부를 확인하고 적절히 기동하는 로직 추가하여 재실행 시 안정성 확보

    • 환경 최적화:

      • 초기 설정 스크립트를 수정하여 컨테이너 최초 실행 시에만 동작하도록 최적화하여 기동 시간 단축

      • zstd 로 압축하여 Docker 이미지의 크기를 1.5GB에서 401MB로 감소시켜 빌드 및 배포 효율 향상

  • 성과 및 결과:

    • 개발 생산성 향상: 안정적인 Docker 환경을 구축하여 개발 및 테스트 과정의 효율성 높임

    • 인프라 효율 개선: Docker 이미지 최적화로 저장 공간 절약하고 빌드 및 배포 시간 단축

    • 프로젝트 기여: Flyway의 Tibero 지원 기능 개발 시 테스트 환경의 안정성 확보하여 전체 프로젝트의 개발 속도와 품질 향상

  • 사용 기술: Tibero 7, Docker, Shell Script, Linux

회사명
네이버 웍스(Naver Works)
직책 • 부서
안드로이드 개발 인턴 • Mobile Dev
근무 기간 (근무 형태)
2021.07. - 2021.08.
(2개월 | 인턴)
담당 업무
  • 개요:

    • Kotlin Multiplatform Mobile 을 이용하여 안드로이드와 iOS에서 이용 가능한 파일 업/다운로드 라이브러리 구현

    • 주요 요구사항:

      • 어떤 프로젝트에서도 적용할 수 있도록 확장성이 있어야함

      • Kotlin Multiplatform Mobile(kmm)을 사용해서 구현

      • 파일 일시정지, 이어받기(이어보내기), 취소 기능 구현

  • 주요 역할:

    • 파일 업/다운로드 앱 개발 시 수반되는 공통적인 비즈니스 로직을 KMM을 통해 모듈화 시킴으로써 개발 생산성 향상

    • HTTP의 multipart와 range request 스펙에 맞춰 파일 업/다운로드 기능을 구현함으로써 웹 호환성 및 유지보수성을 높임

    • Dagger Hilt(DI Framework)를 통해 프로젝트 내 의존성을 관리하여 클래스 간 느슨한 결합도를 유지함

  • 비고:

    • 백엔드 인턴이었으나 회사 내부 사정상 안드로이드 관련 일을 하게 됨

  • 사용기술 : Kotlin, Android Studio, KMM

프로젝트

프로젝트명
AI 기반 패션 스타일링 추천 서비스 프로젝트 - O't MZ
소속/기관명
SSAFY
프로젝트 기간
2024.02. - 2024.03.
(2개월)
프로젝트 설명

AI를 기반으로 유저의 패션 스타일을 진단하여 유사한 코디를 추천해주고, 디지털 옷장 기능을 통한 코디 기능을 제공하는 모바일 기반 웹 서비스

팀 구성: 프론트 3 / 백엔드 2 / AI 1

역할: 팀장, 백엔드 개발, 일부 프론트 개발

주요 업무 및 성과:

  • 추천 알고리즘 API 개발: 코사인 유사도 방식의 추천 알고리즘을 구현해, 사용자 별 맞춤형 추천 코디 랭킹 및 광고 배너 API 개발

  • 코디보드 화면 기능 개발: Konva-vue 라이브러리를 사용해, 디지털 옷장에 저장된 옷 이미지들을 조합해 코디를 완성시킬 수 있는 화면 기능 개발

  • 함께 코디하기 기능 개발: Openvidu를 이용하여 websocket 기반 실시간 음성 채팅 기능 및 코디보드 동기화 기능 개발

  • API 응답 속도 개선: 데이터 변경이 빈번하지 않는 조회성 API의 응답 속도를 개선하기 위해 Redis 기반 캐시 스토리지를 구축하여 API 응답 속도 개선 (60% 단축)

  • 팀장으로써 프로젝트 일정 관리 및 JIRA와 gitLab을 이용한 협업 프로세스 관리

사용 기술: Spring boot, Spring Security, OAuth 2.0, Spring Data Jpa, Redis, MariaDB, Docker, Nginx, Vue.js, OpenVidu, Websocket

프로젝트명
축제 부스 전용 스마트 오더 서비스 프로젝트 - fest'O
소속/기관명
SSAFFY
프로젝트 기간
2023.04. - 2023.05.
(2개월)
프로젝트 설명

축제 참여자들이 축제 부스 이용 및 구매를 줄을 서서 기다리지 않고도, 주문할 수 있는 스마트 오더 앱 개발 프로젝트

팀 구성: 모바일 3 / 백엔드 2

역할: 팀장, 백엔드 개발

주요 업무 및 성과:

  • 상품, 주문, 알림 도메인에 관련된 핵심 비즈니스를 저수준의 외부 영역과 분리하기 위해 핵사고날 아키텍처를 따르는 설계를 고려하여, 변경과 확장에 유연한 개발을 경험

  • 팀장으로서 원활한 프로젝트를 위해 Jira를 이용한 스프린트 단위의 개발 일정을 관리했고, 3Ls 회고법(Liked, Learned, Lacked)을 따른 주차별 회고를 주도하는 협업을 경험

사용 기술: Spring boot, Spring Data JPA, MariaDB, AWS EC2, Jenkins, Docker, Nginx

프로젝트명
온라인 릴레이 합주 서비스 프로젝트 - Collusic
소속/기관명
개인
프로젝트 기간
2022.08. - 2022.12.
(5개월)
프로젝트 설명

TV 프로그램 <놀면 뭐하니?> ‘유플래시' 편에서 영감을 받은 서비스로, 녹음을 기반으로 한 온라인 릴레이 음악 합주 플랫폼 웹 서비스

팀 구성: 프론트 2 / 백엔드 2

역할: 백엔드 개발

주요 업무 및 성과

  • 소셜 로그인 기능: Spring Security를 이용해 OAuth2.0을 준수한 (네이버, 카카오, 구글) 로그인 기능 구현. Strategy Pattern을 고려한 설계를 통해 추후 소셜 서비스의 추가/제거에도 유연한 변경이 가능하도록 추상화하였음

  • JWT 기반 인증: Cookie-Session 방식이 서버의 Sacle out에 유리하지 못한 구조임을 해결하기 위해 JWT 기반 인증 방식의 인증/인가 기능을 개발하였고, 임의로 무효화시킬 수 없다는 JWT의 단점을 보완하기 위해 Redis를 이용해 토큰 블랙리스트 기능을 개발하였음

  • 프로필 이미지 업로드 기능: S3를 이용해 사용자 프로필 이미지 업로드 기능을 구현하였고, S3 버킷에 대한 부하와 비용 절감을 위해 CloudFront를 적용함. 불필요하게 큰 이미지들을 관리하기 위해 AWS Lambda를 통한 서버리스 방식으로 리사이징 프로세스를 구축함 (자세히)

  • 동시성 문제 해결: 프로젝트(project) 별로 10개의 트랙(Track)만 등록 가능하다는 비즈니스 요구사항과 달리 10개 이상의 트랙이 생성되는 문제를 발견. Optimistic Lock을 이용하여 엔티티에 대한 동시성 문제 해결함

사용 기술: Spring boot, Spring Security, OAuth2.0, Spring Data Jpa, Redis, MySQL, AWS S3, AWS Lambda, AWS CLoudFront, Docker, Nginx, Github Action

프로젝트명
나이키 신상 알림 프로젝트
소속/기관명
개인
프로젝트 기간
2022.01. - 2022.01.
(1개월)
프로젝트 설명

나이키 멤버스 데이 기간 동안 나이키 공식 사이트에서 불시에 업로드 되는 신상품 정보 감지해 슬랙 알림을 받아 볼 수 있는 서비스

  • Flow: 나이키 공식 홈페이지에서 상품 정보를 크롤링 -> 크롤링된 상품 정보와 DB에 저장된 상품 정보를 비교하여 신상품을 필터링 -> 신상품으로 분류된 데이터에 대해 Slack으로 알림 전송

팀 구성: 1인

주요 역할 및 성과

  • Spring Batch 사용 경험를 이용하여 (크롤링 - 파싱 - db 데이터 비교 - 저장) 흐름을 갖는 배치 애플리케이션 개발을 경험함

  • 병렬 처리가 가능한 크롤링 작업을 개선하기 위해 CountDownLatch를 이용하여 상품 목록을 페이지 단위로 병렬로 크롤링 처리하여 작업 시간을 75% 단축 (40초 → 10초)

사용 기술: Spring batch, MySQL, crontab, Slack Webhook

프로젝트명
개발자 미라클 모닝 웹 프로젝트 - 으쌰으쌰
소속/기관명
개인
프로젝트 기간
2020.03. - 2020.08.
(6개월)
프로젝트 설명

이른 새벽 시간을 활용하여 학습 및 자기 개발을 하려는 개발자들을 위한 동기부여 웹 서비스

팀 구성: 프론트 1 / 백엔드 1

역할: 백엔드 개발

주요 업무 및 성과

  • RESTful 원칙을 준수한 API 명세 작업 및 개발을 주도했으며, 원활한 협업을 위해 Swagger를 도입하여 문서 자동화 작업을 경험함.

  • CORS 이슈를 처음 마주해, 이를 이해하기 위해 웹 보안 정책인 SOP에 대해 이해하고 CORS 이슈를 해결함

  • API마다 로그인된 사용자를 식별하는 로직이 중복해서 나타남을 발견하고, Spring AOP를 이용하여 횡단 관심사 로직과 비즈니스 로직을 분리하여 코드를 개선함

  • 실시간 채팅 기능 구현을 위해 Stomp 기반 Websocket 채팅 서버를 개발하였음. 다수의 websocket 서버 간의 통신을 고려해 Redis Pub/Sub 기능을 이용하여 메시지 브로커 구현

사용 기술: Spring boot, Spring OAuth2.0, Spring boot websocket, Spring data JPA, H2, Redis

포트폴리오

타입
URL

교육

소속/기관
SSAFY(삼성 청년 SW 아카데미)
종류 | 전공명/전공계열
사설 교육
재학 기간 (재학 상태)
2022.07. - 2023.06.
소속/기관
전남대학교
종류 | 전공명/전공계열
대학교(학사) | 주: 자율전공 / 복: 경영학 / 부: 소프트웨어공학
재학 기간 (재학 상태)
2014.03. - 2021.02. (졸업)
소속/기관
조선대학교부속고등학교
종류 | 전공명/전공계열
고등학교 | 인문계(문과 계열)
재학 기간 (재학 상태)
2011.03. - 2014.02. (졸업)

대외활동

활동명
Kakao x goorm 구름톤(9oormthon) 4기
소속/기관
Kakao & goorm
활동 연도
2022
활동 상세 설명

소 개 : Kakako와 goorm에서 주최하는 해커톤인 구름톤(https://9oormthon.goorm.io/)에 참여하여 <제주도 잉여 여행용품 나눔 플랫폼 - 제주고올래> 개발

기 간 : 2022.12.13~16 (4일)

팀 원 : 5명 (기획 1, 디자이너 1, 프론트 개발 2, 백엔드 개발 1)

개발환경 : Java, Spring boot, MySQL, Docker, Spring Data JPA, AWS EC2, AWS S3Next.js

담당역할 : 백엔드 개발 및 배포 담당

활동명
부스트 코스 서포터즈 BOOSTER 2기
소속/기관
커넥트재단
활동 연도
2020
활동 상세 설명

소 개 : 네이버 커넥트 재단의 부스트 코스 웹 과정 서포터즈 활동 및 강의 수강

기 간 : 2020.02 ~ 2020.04 (2개월)

주요 활동 내용

  1. 부스트 코스 웹 프로그래밍 과정 강의 수강

  2. 부스트 코스 프로젝트 제출 및 리뷰 반영

  3. 학습한 내용 및 후기 블로그 & SNS 업로드

활동명
KISA&국민은행 핀테크 해커톤
소속/기관
KISA & 국민은행
활동 연도
2019
활동 상세 설명

소 개 : KISA&국민은행 핀테크 해커톤에 참여하여 <통장 쪼개기 웹 서비스 “In&OUT”> 개발

기 간 : 2019.06 (2박3일)

팀 원 : 5명 (기획 1, 프론트 개발 2, 백엔드 개발 2)

개발환경 : Java, Spring boot, h2 DB, React, Spring data JPA, AWS EC2

주요 구현 내용

  1. 회원 가입 및 로그인 기능 구현

  2. 가상 통장(용도, 거래내역, 잔액 등)에 대한 REST API 개발

활동명
교내 IT 개발 동아리 활동
소속/기관
ECONOVATION
활동 연도
2019
활동 상세 설명

개발 프로젝트

  • 동아리 활동으로 두 차례의 안드로이드 어플 개발 프로젝트를 경험함

  • 안드로이드 개발 멘토로써 신입 회원들의 프로젝트 진행에 기여함

동아리 운영

2019년 동아리 총무로 임명받아 1년간 회장단으로써 동아리를 운영함

해커톤 주최

소프트웨어 개발에 대한 관심과 열정에 비해 관련 행사 및 대회 부재 등 지방 대학생 개발 문화를 활성화하기 위해 학교 및 KT, 지역 기업들과 협약을 통해 해커톤을 주최하였음 (https://github.com/econovationhackathon/hackathon)

  • 8명의 동아리 구성원들과 해커톤 TF팀(운영팀, 기획 및 디자인팀, 홍보팀)을 결성

  • Slack과 Trello 등 협업 툴을 적극 활용하여 해커톤 운영을 위한 일정 관리 및 업무를 공유함

  • 운영팀에 소속되어 해커톤 참가자 관리에 대한 운영을 전담하며 참가자들이 해커톤을 원활하게 참여할 수 있도록 도왔음

  • 운영팀으로서 학교 및 기업 담당자와 주기적인 미팅에 참석하여 해커톤 전반에 걸쳐 필요한 일정 계획 및 장소 등에 대한 의사결정에 참여하였음

자격증

자격증명
SQLD
점수/급 | 발급 기관
합격 | 한국데이터산업진흥원
취득월
2022.12
댓글