미리보기
기본 정보
사용자 중심의 기능 개발을 즐기는 백엔드 개발자, 신동현입니다 !!
기술 스택
Node.js, MySQL, PostgreSQL, AWS
프로젝트
스케줄 헬퍼
개인
2023.09. ~ 2024.01.
개요 :
1인 개발로 진행한 프로젝트로, 구글 로그인을 통한 안전한 인증부터 다양한 기능들을 통해 사용자의 편의를 증진시킨 서비스입니다.
사용자 중심의 고민과 니즈를 바탕으로 기획 및 개발을 수행하여, 효율적이고 실용적인 일정 관리 솔루션을 제공하고자 노력했습니다.
사용 언어 및 기술 :
Node.js, Express, MySQL, AWS(EC2, RDS, ALB, Lambda, CloudWatch), Docker
주요 기여 내용 :
- 구글 로그인
- Google OAuth 2.0 인증을 활용한 로그인 프로세스를 개발하여 사용자 인증을 안전하게 처리하였습니다.
- 캘린더 구독 서비스
Google Calendar API
를 활용하여 캘린더 웹훅 등록 및 삭제 기능을 구현하여 사용자의 일정을 효과적으로 관리할 수 있게 하였습니다.Slack API
를 통한 알림 기능을 통해 사용자에게 일정 등록, 변경, 삭제에 대한 실시간 알림 서비스를 제공했습니다.
- 당일 일정 서비스
node-schedule
을 활용하여 사용자가 설정한 시간에 당일 일정을 알려주는 서비스를 구현하였습니다.
- 일정 시작 15분 전 알림
AWS Lambda와 CloudWatch
를 활용하여 일정 시작 15분 전에 사용자에게 알림을 전송하는 기능을 추가하여 더욱 개인화된 서비스를 제공했습니다.
- 서버 운영 및 아키텍처 구성
- AWS 서비스를 활용하여 안정적이고 확장 가능한 서버 인프라를 구축하였습니다.
- AWS EC2, RDS, ALB 등을 사용하여 효율적인 운영환경을 제공하였습니다.
- 서버리스 아키텍처를 도입하여 서버 관리를 효율화하고 비용을 최적화하였습니다.
주요 이슈 및 해결 :
- Lambda 사용 시 VPC 인터넷 연결
- RDS와 같은 VPC를 사용하던 Lambda의 VPC를 새로 생성하여 서브넷을 나누었습니다.
이를 통해 Lambda 함수가 실행되는 동안 인터넷 연결에 대한 관리할 수 있었습니다. - Public subnet으로 인터넷에 연결이 필요한 Google API, Slack API 등에 접근하도록 관리하였습니다.
- Private subnet으로 RDS, S3에 접근하도록 관리하였습니다.
- RDS와 같은 VPC를 사용하던 Lambda의 VPC를 새로 생성하여 서브넷을 나누었습니다.
- NAT gateway 비용
- NAT 게이트웨이를 사용함으로써 발생하는 높은 비용 문제(15일 간 약 $ 20)가 발생하였습니다.
- 이를 해결하기 위해, EC2 인스턴스를 사용하여 Iptables를 활용한 NAT 규칙을 설정하였습니다.
- NAT 게이트웨이 대신에 NAT 인스턴스를 사용하게 되었고, 결과적으로 15일 기준 비용은 $ 20에서 $ 0으로 줄였습니다.
알고봇
인티그레이션(인턴십)
2023.07. ~ 2023.08.
개요 :
해당 기업의 MEMBERS 한의원들의 수가 급증함에 따라 개별적인 접촉이 어려워지는 문제를 해결하기 위해 AI를 활용한 한의원을 대상으로 한 비즈니스 컨설팅 서비스를 도입하였습니다.
사용 언어 및 기술 :
Node.js, Fastify, PostgreSQL, Prisma
주요 기여 내용 :
- 피드백 질문 생성
- 한의원 데이터를 활용하여
GPT 모델
를 통해 10개의 분석 및 피드백 질문을 동적으로 생성하고 이를 DB에 저장 및 관리하였습니다.
- 한의원 데이터를 활용하여
- 피드백 질문 조회
- 한의원 사용자가 원하는 값을 입력하면 해당 값에 대한 피드백 질문을 조회할 수 있는 기능을 개발하였습니다.
- 이전에 분석된 피드백 질문들을 효율적으로 관리할 수 있도록 구현하였습니다.
- API 자동 문서화 (Swagger)
- API 테스트에 대한 번거로움을 해결하기 위해
Swagger
를 활용하여 API를 자동으로 문서화하였습니다. - 더불어
Swagger-UI
를 도입하여 기능 테스트 중 쉽게 API에 접근하고 활용할 수 있도록 지원하였습니다
- API 테스트에 대한 번거로움을 해결하기 위해
주요 이슈 및 해결 :
- GPT 모델 사용 시 데이터 형식
- Swagger를 통해 전달된 객체 형식의 값으로 사용한 경우에 생성된 분석과 피드백 질문이 동일하거나 똑같은 문장이 반복되는 문제점이 발생하였습니다.
- 데이터 값을 CSV 형태로 수정하여 GPT 모델에 전달함으로써 이슈를 해결하였습니다.
맛나는 만남
Wecode | 부트캠프
2023.07. ~ 2023.07.
개요 :
"맛나는 만남"은 누구나 호스트, 게스트가 될 수 있는 AirBnb 웹사이트를 모델링하여 맛집 탐방을 취미로 즐기는 사용자들을 연결하고 소통할 수 있는 플랫폼으로 개발되었습니다.
사용 언어 및 기술 :
JavaScript, Node.js, MySQL, AWS(EC2, RDS, S3), Docker
주요 기여 내용 :
- 카카오 로그인
- 사용자의 편의성을 위해 간편하고 빠른 회원가입/로그인을 위해 카카오 로그인 API를 활용하여 소셜 로그인을 구현하였습니다.
- 로그인 시 발급된 인가 코드를 사용하여 토큰을 발급하고, 유저의 정보를 안전하게 DB에 저장하였습니다.
- 호스트 리뷰 조회
- 호스트 ID를 파라미터로 받아 해당 호스트에 대한 리뷰를 조회하는 로직을 개발하였습니다.
- 존재하지 않는 호스트 값이나 파라미터를 받지 못한 경우에 대한 에러 핸들링을 추가하여 안정성을 강화했습니다.
- 리뷰 작성 알림
- 예약 시간 1시간 뒤 결제가 완료된 방에 대해 리뷰 작성 부탁을 위한 알림을 보내는 기능을 개발하였습니다.
node-schedule
을 활용하여 1시간 단위로 알림을 전송하는 로직을 실행하도록 구현하여 사용자에게 효과적인 알림을 제공했습니다.
주요 이슈 및 해결 :
- 탄탄한 기획
- 이전 프로젝트의 경험을 토대로 발생한 문제점을 보완하여 프로젝트 기획을 진행하였습니다.
- 이로 인해 프로젝트를 효율적으로 완료할 수 있었고, 추가 기능 개발 및 코드 리팩토링에 시간을 활용할 수 있었습니다.
- API 정리
- 개발 중 프론트엔드와 백엔드 간의 소통이 감소하면서 발생한 수정 필요 부분을 개선하기 위해 API들을 포스트맨을 활용하여 문서화하였습니다.
- 이를 통해 팀원 간에 API 사용을 더 편리하게 하고 수정이 필요한 부분을 효율적으로 공유할 수 있었습니다.
꿀빵이&앙꼬
Wecode | 부트캠프
개요 :
"꿀빵이&앙꼬"는 우아한 형제들의 “배민문방구”를 모델링하여 특이하고 재미난 물품들을 원하는 사용자들을 대상으로한 전자상거래 플랫폼으로 개발되었습니다.
사용 언어 및 기술 :
JavaScript, Node.js, MySQL, AWS(EC2, RDS), Docker
주요 기여 내용 :
- 회원가입
- 사용자의 비밀번호를 bcrypt를 활용하여 안전하게 암호화하고 DB에 저장했습니다.
- 이메일 및 비밀번호에 대한 조건을 정규 표현식(RegEx)을 사용하여 설정했습니다.
- 토큰 인증/인가
- 사용자의 로그인 여부를 확인하기 위해 발급한 토큰을 활용하여 특정 기능에 대한 권한을 관리했습니다.
- 장바구니 조회
- 사용자가 로그인한 상태에서 토큰을 사용하여 해당 유저의 장바구니를 조회하도록 개발했습니다.
- 포인트 차감 방식 결제
- 장바구니 및 개별 품목에 대한 결제 시, 주문서를 생성하고 포인트를 차감하도록 구현했습니다.
- 트랜잭션(QueryRunner)를 사용하여 결제의 안정성을 확보하고 에러 시 롤백이 되도록 처리했습니다.
주요 이슈 및 해결 :
- 무한 로딩 이슈
- 결제 API 실행 시 무한 로딩이 발생하는 문제를 겪었습니다.
- 해당 이슈는 트랜잭션 release가 누락되어 무한로딩에 걸렸고, 추가함으로써 성공적으로 해결하여 예상대로 결과값이 반환되었습니다.