채용공고 올리기

맹인호님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
협업 지향
유연함
긍정적

미리보기

기본 정보

이름
맹인호
직업
백엔드 개발자
이메일
yi12277176@naver.com
간단 소개

무한한 노력의 소유자 입니다. 맡은 작업에 대해 하나부터 열까지 전부 파헤쳐 빠르게 습득하는 개발자 입니다. 이러한 성실함과 집중력으로 매 순간 성장하고 발전하는 후임이 되겠습니다.

기술 스택

기술 스택

Java, Spring Boot, Spring Security, Spring, JPA, MySQL, MariaDB, Redis, Docker, JWT, REST API, oauth2

프로젝트

프로젝트명

Funding Boost | 선물 펀딩 + 쇼핑몰 플랫폼

소속/기관명

카카오 클라우드 스쿨 4기

프로젝트 기간

2024.04. ~ 2024.06.

프로젝트 내용

고가의 선물을 사용자들 간 펀딩을 통해 받을 수 있는 서비스

팀 | 2024. 03 ~ 2024. 06 | 프론트엔드- 2명 , 백엔드 - 4명

🔗 Github

[ 사용 기술 스택 ]

  • 백엔드 : Java , SpringBoot , SpringSecurity, JWT , Juint5/mockito, JPA , MariaDB , Redis

  • 프론트엔드 : React , Axios, Recoil , SCSS

  • 인프라 : Krampolin, Docker, Grafana/Prometheus

  • 협업 : Git/Github , Discord , Confluence , Jira

[ 개발 주요 사항 ]

  • Redis 분산 락의 spin-lock 방식을 활용하여 동시성 제어 적용

  • OAuth, JWT를 활용한 사용자 인증 방식 사용

  • Controller, Repository, Service 단위로 나누어 단위테스트 진행

  • Elastic Search 및 No-offset 방식을 활용하여 검색 속도 향상

  • 카카오 클라우드 자원(DKOS Cluster, D2Hub, Kargo)을 활용한 배포

[ 트러블 슈팅 및 고민점 ]

  • DB에서 상태 관리 Enum 타입으로 변경

 ****초기에는 펀딩 상태, 펀딩 아이템 완료 상태, 배송지 입력 상태 등을 Boolean으로 처리했으나, 상태 간의 혼동을 줄이고 직관성을 높이기 위해 Enum 타입으로 변경했습니다.

  • Optional 남용 문제

 Safety한 null처리를 위해 모든 경우에 Optional을 사용하였으나 메모리 사용량 과 접근 비용이 크게 증가하는 것을 발견, null 처리를 위한 사용 지양 및 DB에서 직접 데이터를 가져오는 경우에만 사용하여 남용을 줄였습니다.

  • OAuth Redirect 문제 해결

 client-authentication-method를 post로 설정하니 401 오류가 발생,Spring Security 5.6 버전 이후로는 client_secret_post로만 설정이 가능하여 이를 변경하고 오류를 해결했습니다.

  • Test Code에 대한 고민

 client-authentication-method를 post로 설정할 때 401 오류가 발생했는데, Spring Security 5.6 버전 이후로는
client_secret_post로만 설정이 가능하기 때문에 이를 수정하여 오류를 해결했습니다.

프로젝트명

StepStory | 여행 기록 플랫폼

소속/기관명

카카오 클라우드 스쿨 4기

프로젝트 기간

2024.01. ~ 2024.03.

프로젝트 내용

사용자들이 다닌 여행기록을 시각화 하고 서로 공유하는 서비스

팀 | 2024. 01 ~ 2024.03 | 풀스택 - 2명, 프론트엔드- 1명 , 백엔드 - 2명

🔗 Github

[ 사용 기술 스택 ]

  • 백엔드 : Java , SpringBoot , SpringSecurity, JPA , MariaDB

  • 프론트엔드 : React , Axios, D3.js

  • 인프라 : Docker, Jenkins, GCP

  • 협업 : Git/Github , Notion , Discord

[ 개발 주요 사항 ]

  • 사용자의 편의성을 위해 장소와 날짜 기입 자동화

  • Cookie를 사용한 서버 자체 사용자 인증 구현

  • Postman 과 Swagger를 이용한 API Test 진행

[ 트러블 슈팅 및 고민점 ]

  • 여행사진의 메타데이터 사용

 사용자의 편의를 위해 사진의 메타데이터를 활용하였습니다. 사진에 포함된 위도와 경도 정보를 통해 위치를 파악하고, 시간 정보를 바탕으로 촬영 시점을 확인하여, 자동으로 여행 장소와 이동 경로, 시간을 기록할 수 있도록 구현했습니다.

  • CORS 및 Samesite 오류 해결

 서버 측에서는 Spring Security 필터의 Allow-Credentials 설정과 클라이언트의 Credential 요청을 통해 CORS 및 쿠키 관련 문제를 해결했습니다. 또한, 서브 도메인을 설정하여 SameSite 문제를 해결하였습니다.

프로젝트명

효율적인 철근 재단 알고리즘

소속/기관명

공주대학교

프로젝트 기간

2023.09. ~ 2023.11.

프로젝트 내용

철근을 효율적으로 재단하는 알고리즘 개발 프로젝트

팀 | 2023.09 ~ 2023.11 | 데이터 담당자 - 1명, 알고리즘 개발자 - 1명

[ 사용 기술 스택 ]

  • 개발 : Java 1.8

  • 데이터 관리 : Excel

  • Tool : Eclipse 2022-09

[ 개발 주요 사항 ]

  • HashMap 자료구조를 이용하여 Key-Value 구조로 표현(Key: 철근재단 방법, Value: 철근 사용 수량)

  • 2021년도 데이터를 이용하여 알고리즘 비교 결과 로스율 3.2% → 1.7%로 하락 ( 1.5%p 향상 )

[ 고민점 ]

  • DFS와 백트래킹, Greedy 알고리즘 사용

 Greedy 알고리즘을 통하여 재단할 필요가 없는 것들과 길이가 딱 맞아 떨어져 재단이 복잡하지 않은 경우를 먼저 구분하고, 후 DFS와 백트래킹을 이용하여 모든 경우를 파악 후 손실률이 가장 적은 것을 찾는 방식을 활용하였습니다.

포트폴리오

첨부파일

첨부파일명

맹인호_포트폴리오.pdf

댓글