채용공고 올리기

김훈기님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
김훈기
직업
백엔드 개발자
간단 소개

- 한계를 정해놓고 답을 구하지 않고 넓은 시야와 다양한 선택지에서 최선을 찾을 수 있는 개발자를 꿈꿉니다.

자기소개

자기소개
  • 예술(건축)을 전공하고 프랑스 유학까지 준비하였지만, 프로그래밍을 더 좋아하고 더 잘하여 이 길로 들어섰습니다.
  • 자바/스프링(AOP, PSA, DI/IoC)를 통해 객체지향 설계를 공부했습니다.
    • 서블릿에서부터 스프링MVC까지 올라가며 백엔드 웹서버에 대해 공부했습니다.
  • 테스트코드를 통해 견고하고 리팩토링에 자신감을 가질 수 있는 코드를 좋아합니다
  • 함수형프로그래밍과 프론트엔드(자바스크립트 생태계)에 관심이 있어 공부하고 있습니다.
  • 공부한걸 마크다운으로 정리하고 있습니다.
  • 혼자 공부하는 것보다 함께 공부합니다.
    • 아침에 일어나 하루를 계획하고 저녁에 하루를 회고하는 스터디를 운영중입니다.

기술 스택

기술 스택

Java, JavaScript, TypeScript, Spring, Node.js, AWS, MySQL, Git

경력

회사명

소울웨어

직급 | 부서 | 근무 유형

근무 기간

2024.01. ~ 2024.03. (3개월)

담당 업무

3개월 인턴으로, 레거시 프로젝트의 기능구현과 유지보수 프로젝트에 참여했습니다
(스택: 스프링부트, MyBatis, jQuery, MySQL)

프로젝트

프로젝트명

haruharu-bot (node.js)

소속/기관명

개인

프로젝트 기간

2024.04. ~ 진행 중

프로젝트 내용

https://github.com/honki12345/haruharu-discord-bot
스터디를 운영하는데 필요한 디스코드 봇(discord.js 활용)을 개발하였습니다.

기상챌린지

  • 각 구성원이 기상시간을 설정하여 해당 기상시간에 특정 디스코드 채널에 이미지(타임스탬프)를 올리면 출석/지각/결석을 판별하여 DB에 데이터를 쌓습니다

캠스터디

  • 특정 디스코드 채널에 들어와서 캠을 키면 그때부터 시간을 기록하고 캠을 종료하면 하루동안의 시간을 누적하여 계산합니다.
  • 일일 공부시간과 주간 누적공부시간을 계산하여 DB에 데이터를 쌓습니다

시스템

  • Amazon EC2: discord.js를 활용한 node.js를 배포하기에 프리티어 EC2 서버를 이용했습니다.
  • sqlite3: 20명 이내의 소규모 스터디이기에 파일에 기반한 sqlite3 데이터베이스를 선정하였습니다
  • 장애 발생시 대응을 위하여 winston 라이브러리를 통해 logging을 관리합니다.
프로젝트명

hoon-log (java/spring)

소속/기관명

개인

프로젝트 기간

2023.09. ~ 2023.12.

프로젝트 내용

https://github.com/honki12345/hoon-log
velog를 모티브로 한 블로그 플랫폼 백엔드 서버입니다.

기능으로는 회원(로그인, 로그아웃, 회원가입, 조회, 수정), 게시글 CRUD(파일업로드), 댓글 CRUD, 게시글 좋아요 요청/ 취소, 게시글 최신순/트렌딩순/태그별 조회가 있습니다.

  • 게시물 검색성능 개선
    • MySQL의 like %{word}% 연산자를 사용하여 키워드를 통한 게시물 검색을 하였으나, 저장된 게시물 개수가 100만 건이 넘어가자 응답 시간이 7초 이상 걸리는 문제를 발견했습니다
    • 이에 elasticsearch를 적용하여 300만 개의 데이터를 검색하는 속도가 mysql 대비 4000배 가량 좋아졌습니다.
  • 테스트커버리지 100% 달성
    • 토스 SLASH21 에서 이응준 개발자님의 테스트 커버리지 100% 영상에서 높은 테스트 커버리지의 이점을 소개한 영상을 보고 저의 프로젝트에서도 시도해보았습니다.
    • jacoco 기준으로 커버리지 100%를 달성하는 과정 속에서 저의 코드에 대해 불필요한 로직은 아닌지, 더 효율적인 방법은 없는지 고민하는 시간을 가졌습니다. 커버리지를 100% 달성한 후에는 리팩토링시에도 테스트를 통해 사이드이펙트를 체크할 수 있었습니다.
  • github actions을 통해 main 브랜치로 merge 시 테스트 자동화를 이루었고 jacoco report도 업로드하여 테스트 커버리지 현황을 체크할 수 있게 하였습니다.
  • 게시글 좋아요 동시성 이슈해결
    • 게시글에 300개의 쓰레드(요청)로 동시에 좋아요 요청을 해보니 300번의 좋아요 횟수가 아닌 3번의 좋아요 횟수만 올라가는 동시성 이슈가 발생했습니다.
    • 이에 대해 RDB 차원에서 비관적 락, 낙관적 락을 50개, 300개, 500개 쓰레드(요청) 환경하에서 성능 테스트를 비교해봤습니다. 최종적으로 게시글 좋아요를 낙관적 락으로 처리할 시 애플리케이션에서 롤백을 구현해야하는 비용을 고려하여 비관적 락으로 동시성 이슈를 해결하였습니다.

교육

소속/기관명

NHN Academy

종류 | 전공

사설 교육 | 자바/스프링 백엔드 3기

재학 기간 | 재학 상태

2023.02. ~ 2023.06.

소속/기관명

부산대학교

종류 | 전공

대학교(학사) | 건축학과

재학 기간 | 재학 상태

2010.03. ~ 2023.02. | 졸업

포트폴리오

URL

link

github

깃허브
댓글