채용공고 올리기

김민제님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
협업 지향
목표 지향적
전략적

미리보기

기본 정보

이름
김민제
직업
BACKEND DEVELOPER
간단 소개

안녕하세요! ’새로운 도전과 변화를 통해 지속적으로 성장하는 개발자’ 김민제 입니다.

자기소개

자기소개

안녕하세요! ’새로운 도전과 변화를 통해 지속적으로 성장하는 개발자’ 김민제 입니다.

  • "Grow Seeker": 매 순간 배움의 기회를 찾으며, 성장을 위해 작은 변화와 발전을 꾸준히 쌓아 올리며 나아갑니다.

  • "Document-Driven Developer": 과거의 기록이 미래의 밑거름이 된다고 믿으며, 기록을 통해 성장의 발자취를 남깁니다.

  • "Knowledge-Sharing Advocate": 지식을 팀원들과 나누며, 함께 배우고 성장하는 환경을 지향합니다.

Activity

Study

  • CS 세션을 열어 발표하고 이를 업로드하는 유튜브 채널을 운영 및 관리하고 있습니다.

youtube: https://www.youtube.com/@kakaotech-session

또한 백엔드 스터디를 만들어 페어 프로그래밍을 통한 사이드프로젝트 개발과 코드리뷰, 함께 다양한 세션 영상 시청 등 깊이있는 성장을 하기 위한 방법을 기획하여 실행 중입니다.

OpenSource

  • 현재 전자정부 표준 프레임워크 컨트리뷰터로 활동 중입니다.

  • Spring Security의 컨트리뷰션 활동을 진행 중입니다.

Cooperation

  • 다년간의 학교 홍보단 활동과 학교 영어 캠프 조교 활동으로 협업에도 자신이 있습니다.

  • 학교 홍보단은 3년간 활동하였고 마지막 해에는 부팀장으로 활동하며 리더십 경험을 쌓았습니다.

  • 영어 캠프 조교 활동은 2년간 하였으며 총 5번의 방학동안 활동하며 마지막 2번의 활동에서는 총괄 조교로 활동하여 신입 교육, 보고서 작성 등의 경험을 하였습니다.

포트폴리오

URL

link

기술 블로그

깃허브
link

GitHub

깃허브
link

CS 세션 유튜브

유튜브

기술 스택

기술 스택

Java, Spring Boot, Python, MySQL, Redis, Docker

교육

소속/기관명

KakaoTech BootCamp

종류 | 전공

사설 교육 | FullStack

재학 기간 | 재학 상태

2024.07. ~ 현재 | 재학 중

소속/기관명

OpenSource Contribution Academy

종류 | 전공

사설 교육 | Git 활용 및 표준 프레임워크 MSA

재학 기간 | 재학 상태

2024.09. ~ 2024.10. | 졸업

프로젝트

프로젝트명

Devita

소속/기관명

KakaoTech Bootcamp

프로젝트 기간

2024.10. ~ 진행 중

프로젝트 내용

프로젝트 소개

Devita는 Develop + Vitamin를 합친 단어로 개발자에게 AI 기반의 관련 미션들을 추천해주며 영양제와 같이 좋은 영향을 주는 서비스입니다.

기본적인 할 일도 관리해주며 사용자의 동기 부여를 위해 할 일이나 미션 완료시 보상을 지급하는 게이미피케이션 요소를 도입하였습니다.

팀원 구성

프론트엔드 1명, 백엔드 1명, 클라우드 2명, AI 2명

담당 역할

  • 로그인

    • OAuth2로 로그인 과정을 구현하였습니다.

    • JWT 방식으로 사용자의 접근을 인가하고 모바일 환경과 사용자 경험, 보안을 고려하여 리프레시 토큰 로테이션 방식을 적용하였습니다.

  • 백엔드

    • 기본적인 API, DB를 설계하고 백엔드 시스템을 설계하였습니다.

  • 사용자 캐릭터 시스템

    • 사용자 경험치 지급 로직을 설계하고 구현하였습니다.

    • 일일 사용자 보상 지급 제한을 위해 Redis를 사용하여 성능을 최적화하였습니다.

      • Key를 “사용자ID:타입"으로 두고 

        Value에 경험치를 누적시키며

         TTL을 “자정 시간 - 현재 시간”으로 두어 당일 정보만 저장하도록 하였습니다.

    • Redis에 게시물 정보를 저장할 때 Spring Batch와 Redis Pipeline를 이용하여 성능을 최적화했습니다.

    • ResponseBodyAdvice을 사용하여 Envelop Pattern으로 공통 응답 포맷을 구현하였습니다.

Github: https://github.com/KTB-FinalProject-Team1

프로젝트명

Trade-Ham

소속/기관명

개인

프로젝트 기간

2024.10. ~ 진행 중

프로젝트 내용

프로젝트 소개

카카오테크 부트캠프 내 비대면 중고거래 서비스입니다. 오프라인 교육장 내 사물함을 이용하여 비대면 거래를 진행합니다.

팀원 구성

프론트엔드 1명, 백엔드 4명, 클라우드 1명

담당 역할

  • 리더

    • 프로젝트를 기획하고 팀원을 구성하였습니다.

    • 프로젝트 진행 방식을 페어 프로그래밍으로 선택하여 팀의 성장을 도모하고 매 주 세션 영상 시청 시간을 만들어 신기술 학습을 진행하였습니다.

  • 백엔드

    • OAuth2로 로그인 과정을 구현하였습니다.

    • JWT 방식으로 사용자의 접근을 인가하고 모바일 환경과 사용자 경험, 보안을 고려하여 리프레시 토큰 로테이션 방식을 적용하였습니다.

    • 기본적인 API, DB를 설계하고 백엔드 시스템을 설계하였습니다.

    • 동시성을 고려하여 구매, 판매 로직을 구현하였습니다.

    • 포스트 좋아요 기능을 구현할 때 동시성과 성능을 고려하여 싱글 쓰레드 기반의 Redis를 사용하여 구현하였습니다.

      • 포스트를 조회할 때 포스트와 연관된 좋아요를 한 번에 레디스에 미리 저장해두고 Cache Miss가 최대한 나지 않도록 사용했습니다.

    • ResponseBodyAdvice을 사용하여 Envelop Pattern으로 공통 응답 포맷을 구현하였습니다.

Github: https://github.com/Trade-Ham

프로젝트명

Bami

소속/기관명

KakaoTech Bootcamp

프로젝트 기간

2024.07. ~ 2024.09.

프로젝트 내용

프로젝트 소개

사용자 맞춤형 여행 정보 및 생활 정보를 제공하는 지능형 어시스턴트입니다. 사용자 선호도를 기반으로 장기 여행지, 단기 일정 추천을 해주며 근처의 날씨 정보와 맛집 정보를 제공합니다.

팀원 구성

풀스택 2명, 클라우드 2명, AI 2명

담당 역할

  • 메인 UI 담당

    • 메인 UI에서는 프론트엔드 부분에서 React, 백엔드 부분에서는 Spring Boot를 사용하였으며 메인 UI의 날씨 정보는 공공 데이터 포탈 API, 주변 맛집 정보는 카카오 맵 API와 구글 맵 API를 함께 사용하였습니다.

  • 데이터베이스 관리

    • 데이터베이스는 MySQL을 사용하였으며 JPA로 관리 사용하였습니다.

  • 단기 일정 추천 담당

    • 단기 일정 추천 파트에서는 카카오 맵 API의 마커를 표시해주어 출발 위치를 설정해주고 사용자의 선호도를 입력받아 인공지능 서버와 통신하는 기능을 구현하였습니다.

    • 인공지능 서버에게 추천 받은 여행 경로를 받아 사용자에게 보여주고 여행 경로를 흐름에 따라 글로 보여주며 상단에 카카오 맵 API로 마커를 표시해주는 기능을 구현하였습니다.

    • 또한 일정 저장 기능을 만들어 내 여행 페이지를 구현하고 날짜가 지난 여행은 지난 여행 컴포넌트로 분리하고 날짜 역순으로 정렬, 날짜가 지나지 않은 여행은 예정된 여행 컴포넌트로 분리하고 날짜순으로 정렬하였습니다.

    • 단기 일정 추천 결과는 AI 서버에서 출발지를 기준으로 해당 클러스터 안에 있는 추천 여행지를 무작위 순서로 보내주었기 때문에

      최단 경로로 보여주기 위한 작업을 진행하였습니다.

    • 각 노드 간 최단 경로를 구하기 위해 Naver Maps Directions API의 경유지 기능을 활용하여 21개 노드 간 모든 거리를 14번의 API 호출로 해결하였습니다.

    • 노드 간 최단 경로를 찾기 위해 TSP 문제를 대입하여 여러 알고리즘을 적용해보며 성능을 측정해보았고 DP를 사용하고 비트마스킹으로 공간 복잡도를 최적화하는 방법을 적용하여 완전 탐색 시 걸리는 시간 420s -> 0.6s로 시간을 단축하였습니다.

Github: https://github.com/ktb1-eight

프로젝트명

SweeTODO

소속/기관명

개인

프로젝트 기간

2024.01. ~ 2024.02.

프로젝트 내용
  • 프로젝트 소개

저는 알고리즘 스터디를 진행하며 일정을 공유하는 것에 대한 불편함을 느꼈습니다. 제가 주차 별 계획이나 일주일 계획을 세우고 노션이나 깃허브에 작성해놓으면 팀원들은 이를 보고 스터디를 진행하는 방식으로 했었는데 매번 계획을 확인하러 오는 것이 번거롭고 “자주 사용하는 투두앱에서 팀장이 세워놓은 일정을 팀원들이 자동으로 받아볼 수 있었으면 좋겠다!”라는 생각으로 개발을 시작하게 되었습니다.

플러터 개발자 1명을 섭외하여 진행하였습니다.

  • 담당 역할

전체적인 프로젝트 기획과 설계 전반적인 백엔드 개발을 담당하였습니다.

로그인 시 OAuth 2.0과 Redis를 이용한 세션 데이터를 관리하였습니다. Memcached와 비교하여 운영의 효율성을 고려하여 상대적으로 운영에 필요한 기능이 많은 Redis를 사용하였습니다.

Spring Boot JPA를 이용하여 데이터베이스를 관리하였습니다.

AWS EC2와 쉘 스크립트를 이용하여 배포를 해보았습니다.

대외활동

활동명

대학교 홍보단

소속/기관명

대학교 입학처

연도

내용

중고교생들에게 학교를 홍보하고 전공을 체험시켜주는 대학교 홍보단 활동을 3년간 하였습니다.

무대공포증을 이기기 위해 지원하여 참여하였으며 중고교생들에게 좋은 경험을 주기 위해 꾸준히 노력하였습니다.

노력을 인정받아 마지막 해에는 부회장으로 활동하며 전반적인 부원 교육 환경 개선, 프로그램 기획 등을 주관하였으며 신입 부원 선발에도 참여하고 리더십 교육을 이수하는 등 여러 활동을 진행하였습니다.

활동명

방학 단기 영어캠프 조교

소속/기관명

PAGODA

연도

내용

방학동안 학교에서 운영하는 단기 영어캠프의 조교로 참여하였습니다.

21년도 여름, 겨울 2번의 방학 간 학생으로 참가하였으며 마지막 참여 때 기존 조교 분께 추천을 받아 지원하여 들어가게 되었습니다.

총 2년간 조교 활동을 하였으며 주로 학생 관리, 문서 작업, 운영 회의 등을 진행하였고 마지막 활동 때는 총괄 조교로 선발되어 조교 교육, 문서 작업 교육, 보고서 작성 등의 업무를 하게 되었습니다.

자격증

자격증명

SQLD

점수 | 발급기관

취득연월

2024.12.

자격증명

정보처리기사

점수 | 발급기관

기사 | 한국산업인력공단

취득연월

2024.09.

댓글