미리보기
기본 정보
안녕하세요! 🙋♂️ 기술로 더 나은 세상을 꿈꾸는 백엔드 개발자, 고동민입니다. 🛠 "확장성"과 "유지보수성"을 최우선으로 생각하며 시스템을 설계합니다. 🎯 저의 목표는 기술로 사용자에게 편리함을 제공하고, 팀과 함께 성장하며 더 나은 가치를 만들어가는 것입니다. 😊 늘 새로운 도전을 즐기며, 배우고 성장하는 자세로 앞으로 나아가고 있습니다! ✨ 함께 성장하고 싶다면, 언제든지 연락주세요! 😊
기술 스택
JavaScript, Java, NestJS, Spring Boot, MySQL, spring-jpa, mybatis, PostgreSQL, TypeScript
자기소개
📌 기술과 경험
저는 다양한 프로젝트와 업무를 통해 기술적 역량을 키워왔습니다.
한국전자통신연구원(ETRI)에서 연구연수생으로 근무하며, REST API를 설계 및 구현하고, 데이터 파이프라인을 구축한 경험이 있습니다. 이 과정에서 팀의 생산성을 높이고 데이터 처리 효율을 크게 향상시켰습니다.
Cloud Canvas 프로젝트에서는 클라우드 리소스 관리 시스템을 개발하며 리소스 참조 및 생성 순서 문제를 해결해 코드의 확장성과 유지보수성을 강화했습니다.
📌 도전과 성장
저는 새로운 기술과 도전을 즐깁니다.
졸업 작품으로 진행한 레시피 추천 앱에서는 Spring Boot와 OAuth2.0을 활용해 백엔드 아키텍처를 설계하며 사용자 친화적인 기능을 구현했습니다. 이 프로젝트는 교수님의 추천을 받아 대회 출품작으로 선정되기도 했습니다.
네이버 부스트캠프를 통해 WAS와 클라우드 인프라의 기본 원리를 학습하고, 이를 실제 프로젝트에 적용해 사용자와 시스템 간의 효율적인 상호작용을 가능하게 했습니다.
📌 저의 목표
기술을 통해 사용자에게 편리함을 제공하고, 팀원들과 함께 성장하며 더 나은 가치를 창출하는 것입니다. 저는 단순히 기능을 구현하는 것을 넘어, 서비스의 본질적인 가치를 고민하며 사용자 경험을 개선하고자 노력합니다.
경력
한국전자통신연구원(ETRI)
연구연수생 | 사이버브레인연구실
2023.07. ~ 2023.08. (2개월)
📌 주요 역할 및 상세 업무
REST API 설계 및 구현
IoT 데이터 하베스팅 관리 시스템 개발에 참여하여 REST API 설계를 주도적으로 수행.
HarvestJob API
IoT 데이터 하베스팅 잡 관리: 잡 목록 조회, 상세 정보 조회, 잡 생성/삭제/시작/중지 기능 구현.
요청 검증과 에러 핸들링을 통해 안정적인 데이터 흐름 관리.
HarvestSource API
IoT 데이터 하베스팅 소스 관리: 소스 목록 조회, 상세 정보 조회, 소스 생성/수정/삭제, 승인 요청 및 응답 기능 구현.
MultipartFile과 JSON 파라미터를 처리하는 복합 입력 설계.
데이터 요청 및 응답 최적화를 위해 Spring Boot와 PostgreSQL을 활용한 데이터베이스 연동 및 성능 개선.
Swagger를 사용하여 API 명세를 자동화 및 문서화.
🚀 성과 및 결과
IoT 데이터 하베스팅 작업에서 데이터 요청 처리 시간 15% 개선.
프로젝트 완성도 100% 달성으로 서비스 운영 환경에 성공적으로 배포.
🌟 느낀 점 및 배운 점
실용적인 REST API 설계 경험
IoT 데이터를 처리하고 관리하는 REST API 설계 및 구현 경험을 통해 실제 서비스에서 요구되는 데이터 흐름을 체감했습니다.
확장 가능한 시스템 설계 철학 확립
다량의 IoT 데이터를 효율적으로 처리하고, 서비스 확장 가능성을 고려한 설계의 중요성을 깨달았습니다.
프로젝트
Cloud Canvas
네이버 부스트캠프
2024.10. ~ 진행 중
🛠 프로젝트 소개
Cloud Canvas는 클라우드 인프라 설계를 직관적이고 손쉽게 할 수 있는 혁신적인 도구입니다. 사용자는 그래픽 인터페이스를 통해 클라우드 인프라를 설계하고, 이를 Terraform 코드로 자동 변환하여 빠르고 효율적으로 배포할 수 있습니다. 특히 국내 클라우드 플랫폼을 지원하여 국내 사용자들에게 최적화된 환경을 제공합니다.
🎯 문제 상황과 해결 과정
테라폼 리소스 참조 문제
문제 상황: 리소스 참조값이 하드코딩되어 리소스 이름 변경 시 전체 코드 수정이 필요했습니다.
해결 과정: 플레이스홀더 패턴을 도입하여 모델에서는 PLACEHOLDER로 설정하고, 컨트롤러에서 실제 참조값으로 치환하도록 설계했습니다.
성과:
모델과 컨트롤러 간 의존성이 제거되어 유지보수성 향상.
리소스 참조값 수정 시 한 곳에서만 변경하면 되어 개발 속도가 개선됨.
테라폼 리소스 참조값 검증 문제
문제 상황: 단순 문자열 검증 방식으로 인해 잘못된 참조값도 허용되었음.
해결 과정: 정규표현식을 활용하여 참조값 형식을 엄격히 검증.
예:
^ncloud_[a-zA-Z_]+\.[a-zA-Z_-]+\.[a-zA-Z_]+$
와 같은 패턴 사용.
성과:
잘못된 참조값 사전 방지.
코드 가독성과 유지보수성 개선.
테라폼 리소스 생성 순서 문제
문제 상황: JSON 입력 순서와 리소스 생성 순서가 달라 종속성 문제가 발생.
해결 과정:
ResourcePriority
열거형을 정의해 리소스 우선순위에 따라 정렬하여 생성.성과:
의존성 문제 해결 및 안정적 리소스 생성.
JSON 데이터 입력 순서와 무관하게 올바른 생성 순서 보장.
다중 Region 처리 문제
문제 상황: 단일 Region만 지원하여 다중 Region 리소스 관리 불가.
해결 과정:
각 Region의 Provider를 동적으로 생성.
리소스 블록 생성 시 Region에 따라 올바른 Provider 참조.
성과:
다중 Region 지원.
유연성과 확장성 대폭 향상.
코드 확장성 문제
문제 상황: 새로운 리소스 추가 시 여러 파일 수정 필요 및 높은 의존성.
해결 과정:
인터페이스 기반 설계로 전환.
리소스 파서를 분리하여 새로운 리소스 추가 시 최소한의 수정으로 기능 확장.
성과:
새로운 리소스 추가가 간편해짐.
개방-폐쇄 원칙 준수로 유지보수성 향상.
테라폼 리소스 속성 포맷팅 문제
문제 상황: 중첩 객체와 배열 처리가 미흡해 코드 가독성과 정확성 저하.
해결 과정:
속성 이름 길이에 따른 정렬 및 중첩 객체/배열 처리 로직 추가.
성과:
가독성 향상 및 Terraform 코드 출력 정확성 확보.
중첩 데이터와 배열 데이터의 일관된 처리 방식 구현.
🔑 성과 및 결과
확장 가능한 구조 설계: 새로운 리소스 추가 시 최소한의 수정으로 확장 가능.
팀 협업 효율성 증가: 목데이터 기반 개발로 프론트엔드 의존도를 줄이고 작업 효율성 향상.
유지보수성 강화: 리소스 참조값 관리 방식 개선으로 코드 수정 부담 감소.
🔧 기술 스택
언어: Java, TypeScript
프레임워크: Spring Boot
도구: Terraform, IntelliJ, Git
🌟 느낀 점 및 배운 점
유지보수성과 확장성을 고려한 시스템 설계의 중요성을 실무적으로 경험.
팀원 간 명확한 의사소통과 API 문서화를 활용하여 협업 능력 강화.
InjeRecipe
개인
2024.01. ~ 2024.03.
🛠 프로젝트 소개
InjeRecipe는 사용자가 간단히 입력한 재료를 기반으로, 해당 재료로 만들 수 있는 요리를 추천하는 레시피 플랫폼입니다. 요리 준비의 효율성을 극대화하고 사용자에게 맞춤형 요리 정보를 제공하는 것을 목표로 개발되었습니다.
🎯 문제 상황과 해결 과정
레시피 검색 속도 개선
문제 상황: 초기 데이터베이스 설계의 비효율적인 쿼리 구조로 인해 레시피 검색 속도가 느림.
해결 과정:
동적 쿼리를 작성하여 키워드 기반 검색 최적화.
인덱스 최적화를 통해 데이터베이스 성능 향상.
성과:
검색 속도가 30% 이상 개선되어 대규모 데이터 처리 성능이 향상됨.
사용자 경험이 크게 향상됨.
이미지 관리 문제
문제 상황: 레시피별 이미지가 많아 로컬 스토리지 사용 시 공간 부족 및 관리 어려움 발생.
해결 과정:
AWS S3를 도입해 이미지를 클라우드 스토리지에 저장.
이미지 URL 참조 방식을 통해 효율적으로 관리.
성과:
안정적인 이미지 관리와 로컬 서버의 부하 감소.
클라우드 스토리지 활용으로 확장성 강화.
사용자 인증과 보안 문제
문제 상황: 소셜 로그인과 일반 회원가입을 모두 지원해야 하는 인증 체계의 복잡성.
해결 과정:
OAuth2.0을 활용해 Google과 Kakao 소셜 로그인 구현.
Spring Security로 세션과 JWT 토큰 기반 인증 병행.
성과:
사용자 편의성과 보안성을 모두 만족하는 인증 시스템 구축.
다양한 사용자 요구사항을 수용할 수 있는 유연한 인증 체계 구현.
🔑 성과 및 결과
대회 출품: IT 창업 아이디어 대회에 교수님 추천으로 출품.
홍보 자료 활용: 학과 홍보 자료로 사용되어 입시생들에게 긍정적 반응 획득.
🔧 기술 스택
언어: Java
프레임워크: Spring Boot, Spring Security
데이터베이스: PostgreSQL
클라우드 서비스: AWS S3
인증: OAuth2.0
🌟 느낀 점 및 배운 점
문제 해결 능력: 백엔드 구조 설계와 데이터베이스 최적화를 통해 성능 향상 경험.
실무 경험: 사용자 중심의 기능 구현과 클라우드 활용 경험을 통해 실무 개발 프로세스 체득.
협업 역량: 프론트엔드 개발자와의 원활한 소통으로 API 명세 작성 및 요구사항 적극 반영.
Bragi
개인
2023.09. ~ 2023.11.
🎵 프로젝트 소개
Bragi는 사용자들이 음악을 공유하고 소통할 수 있는 SNS 플랫폼입니다. 유저들은 자신이 좋아하는 음악을 추천하거나 플레이리스트를 공유하며 음악적 취향을 나눌 수 있는 경험을 제공합니다.
🎯 문제 상황과 해결 과정
문제: 사용자 인증과 권한 관리의 보안 강화 필요
상황: SNS 플랫폼 특성상 사용자 데이터 보호와 인증 과정에서의 보안 문제가 중요했습니다.
해결: Spring Security와 OAuth2.0을 도입하여 안전한 사용자 인증과 권한 관리 시스템을 구축했습니다.
로그인 세션 관리와 토큰 기반 인증 구현.
성과: 보안 강화로 사용자 신뢰도와 데이터 보호 수준 향상.
문제: 팀 내 백엔드와 프론트엔드 간의 비효율적인 API 설계
상황: 백엔드와 프론트엔드 간의 데이터 교환 과정에서 필요한 데이터가 명확하지 않아 재작업이 발생.
해결: Swagger를 활용하여 API 명세서를 작성하고, 초기 단계에서 클라이언트와의 긴밀한 협업을 통해 명확한 API 구조 설계.
성과: 개발 과정에서 API 관련 수정 작업이 30% 감소, 효율적인 협업 환경 조성.
🔑 성과 및 결과
사용자 경험 개선: 평균 응답 시간이 40% 감소하며, 검색 및 데이터 처리 성능이 대폭 향상됨.
우수 프로젝트 선정: 학기 내 최고 점수를 받으며 37명 중 해당 학기 수석으로 인정됨.
협업 능력 강화: 팀원들과의 긴밀한 소통으로 문제를 빠르게 해결하고, 안정적인 서비스를 구현.
🔧 기술 스택
언어: Java
프레임워크: Spring Boot, Spring Security
데이터베이스: PostgreSQL (인덱스 및 쿼리 최적화 적용)
도구: Git, Swagger, IntelliJ
🚀 프로젝트를 통해 얻은 것
대규모 데이터 처리와 최적화 기법에 대한 실전 경험.
사용자 요구 사항을 반영한 API 설계 및 협업 능력 강화.
안정적인 인증 및 보안 시스템 구현 역량 습득.
교육
네이버 커넥트재단
사설 교육 | 웹, 모바일
2024.07. ~ 2024.12. | 졸업
자격증
정보처리기사
기사 | 한국산업인력공단
2024.09.