채용공고 올리기

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

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

미리보기

기본 정보

이름
맹인호
직업
백엔드 개발자
간단 소개

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

기술 스택

기술 스택

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

댓글