채용공고 올리기

이명범님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
이명범
직업
백엔드 개발자
간단 소개

안녕하세요! 백엔드 개발자 이명범입니다. 기술에 대해 호기심을 가지고, 학습한 내용을 기록하며 현재 약 200개의 TIL을 작성했습니다. 함께 공부하고, 일하는 것을 좋아해 약 10개 이상의 스터디, 6개 이상의 협업 프로젝트를 진행했고, 진행하고 있습니다.

기술 스택

기술 스택

Java, Spring Boot, AWS, MySQL, JPA, Docker, junit5, Git, Spring Security, Jenkins, github-actions, Redis

경력

회사명

다우기술

직급 | 부서 | 근무 유형

인턴사원 | 전산운영팀

근무 기간

2023.05. ~ 2023.06. (2개월)

담당 업무

카택스라는 외부 서비스로부터 차량 운행 정보, 운행 경비 데이터를 xls 파일로 제공받아 이를 통계화 시키는 경영 지원 시스템을 개발했습니다.

  • 역할 : 백엔드 개발, 프론트엔드 개발
  • 기여도 : 100%
  • 성과 :
    10가지 이상의 파라미터 검증 구현(Spring Validation)
    테이블 역정규화를 통한 조회 성능 향상
    테스트 커버리지 70% 목표 달성
  • 사용기술 : Java, Spring boot, JPA, JUnit, Vue.js

프로젝트

프로젝트명

떡국을 부탁해

소속/기관명

개인

프로젝트 기간

2024.01. ~ 2024.02.

프로젝트 내용
  • 역할 : 서버 운영 환경 구축, 백엔드 개발
  • 인원 : 디자이너 2, 프론트엔드 2, 백엔드 2
  • 기여도 : 25%
  • 성과 :
    User-Agent를 활용하여 멀티 디바이스 세션 종료 문제를 해결
    웹 배포(누적 사용자 100+)
  • 사용기술 : Java, Spring boot, JPA, JUnit, AWS
  • 깃허브 링크 : https://github.com/tteokguk-please/tteokguk-api
  • 배포 서비스 링크 : https://www.tteokguk-please.com/
프로젝트명

RunWithMe

소속/기관명

개인

프로젝트 기간

2023.01. ~ 2023.12.

프로젝트 내용

러닝 챌린지 안드로이드 앱입니다. 인증, 인가 기능을 구현하며 특별히 보안 쪽을 신경쓰며 구현한 서비스입니다.

  • 역할 : 서버 운영 환경 구축, 백엔드 개발
  • 인원 : 안드로이드 2, 백엔드 3
  • 기여도 : 25%
  • 성과 :
    Refresh Token Rotation 기법을 적용하여 보안 취약점 해결
    buildpack을 통한 패키징 작업과 컨테이너 이미지 생성 과정 통합
    구글 플레이스토어 배포(누적 사용자 10+)
  • 사용기술 : Java, Spring boot, JPA, JUnit, 네이버클라우드
  • 깃허브 링크 : https://github.com/7SideProject/RunWithMe-BE
  • 플레이스토어 링크 : https://play.google.com/store/apps/details?id=com.side.runwithme
프로젝트명

우리 그 때 만나

소속/기관명

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

프로젝트 기간

2022.10. ~ 2022.11.

프로젝트 내용

소중한 추억과 행복했던 순간들을 기록하고, 정해둔 시간이 지나면 사용자가 과거에 작성한 글을 읽을 수 있는 타임 캡슐 서비스입니다. 클라우드 서비스를 활용하여 리소스 사용률에 따라 오토스케일링이 가능한 탄력적인 분산환경을 구축해보는 경험을 할 수 있었습니다.

  • 역할 : 팀장, 서버 운영 환경 구축, 백엔드 개발
  • 인원 : 프론트엔드 3, 백엔드 3
  • 기여도 : 30%
  • 성과 :
    오토스케일링 적용을 통한 AWS 서버 예산 50% 절감
    Mattermost 로그 공유를 통한 디버깅 생산성 증가
  • 사용기술 : Java, Spring boot, JPA, JUnit, AWS VPC, EC2, ALB, CodeDeploy
  • 깃허브 링크 : https://github.com/mungmnb777/shall-we-meet-then
프로젝트명

Indive

소속/기관명

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

프로젝트 기간

2022.08. ~ 2022.10.

프로젝트 내용

인디 뮤지션을 위한 블록체인 후원 서비스입니다. 블록체인이라는 최신 트렌드의 기술을 활용하여 서비스에 접목하였습니다. NFT, IPFS 등 신기술에 대한 다양한 도전을 경험해볼 수 있었던 프로젝트입니다.

  • 역할 : 서버 운영 환경 구축, 백엔드 개발
  • 인원 : 안드로이드 4, 백엔드 2
  • 기여도 : 25%
  • 성과 :
    테스트 커버리지 70% 목표 달성
    IPFS 파일 시스템 구축
  • 사용기술 : Java, Spring boot, JPA, JUnit, Jacoco, IPFS, redis
  • 깃허브 링크 : https://github.com/mungmnb777/indive
프로젝트명

너, 나 알아?

소속/기관명

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

프로젝트 기간

2022.07. ~ 2022.08.

프로젝트 내용

가상 아바타를 활용한 남녀 화상 소개팅 서비스입니다. 팀장으로서 팀원들과의 소통을 중요시하며, 열정적으로 진행했던 프로젝트입니다. 클라이언트-서버 간 독립적인 개발을 경험해보며 API 개발 시 데이터를 정제하고 제공하는 방법에 대해 알 수 있었고, 서비스 아키텍처를 구성하며 보안, 네트워크, 가상화 기술에 대해 습득했습니다.

  • 역할 : 팀장, 서버 운영 환경 구축, 백엔드 개발
  • 인원 : 프론트엔드 3, 백엔드 3
  • 기여도 : 30%
  • 성과 :
    SSAFY 프로젝트 반 2등,
    DB 인덱스 적용을 통해 조회 API 성능 4배 개선,
    수동 매칭을 자동 매칭 알고리즘으로 변경하며 사용자 만족도 30% 증가
  • 사용기술 : Java, Spring boot, JPA, JUnit, AWS, Docker
  • 깃허브 링크 : https://github.com/mungmnb777/u-know-me
프로젝트명

Happyhouse

소속/기관명

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

프로젝트 기간

2022.05. ~ 2022.05.

프로젝트 내용

공공 데이터를 활용한 실시간 아파트 매매 정보 조회 서비스입니다.

  • 역할 : 공공 데이터 연동 및 프론트엔드 개발
  • 인원 : 프론트엔드 1, 백엔드 1
  • 기여도 : 50%
  • 성과 : SSAFY 프로젝트 반 3등
  • 사용기술 : Vue.js, 공공 데이터
  • 깃허브 링크 : https://github.com/mungmnb777/happyhouse-final

포트폴리오

첨부파일

첨부파일명

이명범_포트폴리오.pdf

교육

소속/기관명

창원대학교

종류 | 전공

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

재학 기간 | 재학 상태

2015.03. ~ 2022.02. | 졸업

소속/기관명

구미고등학교

종류 | 전공

고등학교 | 인문계

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

대외활동

활동명

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

소속/기관명

멀티캠퍼스

연도

내용
  • JAVA, WEB, 알고리즘 교육(800시간)
  • 3회의 협업 프로젝트(800시간)
  1. WebRTC 적용 프로젝트(너, 나 알아?)
  2. 블록체인 기술 적용 프로젝트(Indive)
  3. 클라우드 적용 프로젝트(우리 그때 만날까?)
  • 성과 : WebRTC 적용 프로젝트 우수상(반 내 2등), SSAFY 우수 수료생
활동명

창원시 스타트업 주관 스터디

소속/기관명

창원시 스타트업

연도

내용

자바, 스프링 기반 백엔드 교육 및 현직 개발자 컨설팅
게시판 CRUD 프로젝트 수행

외국어

외국어명

영어

점수

일상 회화 가능

자기소개

자기소개

저는 항상 "왜?"라는 질문을 통해 기존 방식에서의 문제가 없는지를 확인해봅니다. 제가 느끼는 불편함이나, 사용자로부터 받은 피드백을 통해 문제를 인식하고 해결할 방법을 고민하는 것을 좋아합니다. 프로젝트를 진행하며 이러한 경험을 해보았고, 소개해드리려 합니다.

[사용자의 피드백을 받아 만족도를 약 30% 증가시킨 경험이 있습니다.]
삼성 청년 소프트웨어 아카데미에서 6명이 팀이 되어 WebRTC 프로토콜과 모션 트래킹 라이브러리를 활용하여 가상 아바타를 이용한 화상 소개팅 프로젝트를 수행했습니다. MVP 완성 후 설문 조사를 진행했는데, 남녀 매칭 기능에 대한 만족도가 55%로 낮게 나왔습니다. 기존의 방식은 수동 매칭 방식으로 사용자가 직접 조건에 따라 필터링하고 세션에 참여하기 때문에 복잡하다는 것이 주 원인이었습니다.
팀원들과의 회의를 통해 자동 매칭 알고리즘을 도입하자는 의견이 나왔습니다. 하지만 새로운 기술을 도입해야했고 변경해야 될 페이지도 많았는데, 마감일이 얼마 남지 않아 시간적인 어려움이 있었습니다. 그럼에도 불구하고 프로젝트의 고도화를 위해 매칭 방식을 변경하는 것에 팀원 모두 동의했습니다. 이후 백엔드 팀원들과 자동 매칭 기능을 구현하고, 프론트엔드 팀원들도 새로운 매칭 페이지를 만들고 새벽까지 소통하며 API를 연결하는 등 열정적으로 개발했습니다.
그 결과 다행히 일정 내에 변경된 기능을 모두 구현할 수 있었고 우수 프로젝트에 선정될 수 있었습니다. 그리고 사용자 설문조사를 한 번 더 진행했는데, 약 30% 더 높은 만족도를 얻을 수 있었습니다.

[로그 공유를 자동화하여 개발 생산성을 증가시켰습니다.]
‘블록체인을 활용한 인디 뮤지션 후원 서비스’의 디버깅 중 커뮤니케이션 측면에서 한 가지 비효율적인 부분을 발견했습니다. AWS나 도커에 대해 다룰 수 있는 팀원이 저 하나밖에 없었기 때문에 개발 서버의 에러 로그를 확인하기 위해서는 항상 저를 통해서만 확인해야 했습니다.
해결법은 팀 협업 도구인 Mattermost를 활용하는 것이었습니다. 커뮤니케이션을 할 때 자주 사용하던 도구였기 때문에 로그 공유를 하기 위한 플랫폼으로 적절하다고 생각했습니다. Mattermost에 Webhook으로 정보를 수신할 수 있도록 구성했습니다. 그 후 어플리케이션 서버에서 예외를 해당 Webhook URI로 전송하도록 구현하였습니다.
그 결과 기존의 복잡한 확인 과정을 거칠 필요가 없어졌습니다. 팀원들은 Mattermost 로그 채널을 통해 곧바로 로그를 확인할 수 있게 되어 개발 생산성을 증가시킬 수 있었습니다.

[문제가 발생했을 때, 원인을 확실하게 분석하는 것이 중요하다는 것을 깨달았습니다.]
삼성 청년 소프트웨어 아카데미에서 진행한 첫 협업 프로젝트에서 배포 생산성을 높이기 위해 젠킨스를 이용한 CI/CD 환경을 구축한 경험이 있습니다. Gitlab을 통해 코드를 통합하고, 특정 브랜치에 푸쉬 이벤트가 발생할 경우 젠킨스에서 코드를 가져와 빌드한 후 배포하는 방식으로 파이프라인을 설계했습니다.
하지만 배포 과정에서 문제가 발생했습니다. 젠킨스 서버가 컨테이너 환경에 올려져 있었기 때문에 ssh를 통해 jar 파일을 배포 환경으로 옮겨야 했는데, permission denied 에러가 발생했습니다. 처음에는 jenkins 계정 문제로 생각했지만 아니었고, 구글에 검색해 나오는 해결법을 적용해도 다른 문제가 생길 뿐이었습니다. 그래서 처음으로 돌아와 권한 문제가 어디서 발생할 수 있는지 분석해보았습니다. 원인은 ssh를 사용할 때, 타겟 서버의 일반 유저 계정을 활용했는데 파일을 전송하려던 디렉토리가 root 권한으로 이루어져 발생한 문제였습니다.
따라서 운영 서버 내에서 배포될 디렉토리를 하나 생성하고, 권한을 jenkins가 사용할 수 있도록 수정하자 문제가 해결되었습니다. 이를 통해 문제가 발생했을 때, 원인을 확실하게 분석하는 것이 중요하다는 것을 깨달았습니다.

댓글