미리보기
기본 정보
- 발생한 문제를 두려워하지 않으며 문제를 해결하기 위해 끝까지 파고드는 개발자입니다. - 변화에 적응하기 위해 끊임없이 노력하는 개발자입니다. - 효율적으로 소통하고 작업하기를 좋아합니다.
자기소개
수영 강사에서 백엔드 개발자로 이직을 도전하고 있는 박윤수입니다.
발생한 문제를 두려워하지 않으며 문제를 해결하기 위해 끝까지 파고드는 개발자입니다.
협업 프로젝트 진행 중 가장 힘들었던 https를 이용한 쿠키 설정을 해결하기 위해 문제를 일으켰던 CORS 에러에 대해 많은 공부를 했습니다.
끝내 같은 도메인을 사용하면 CORS 에러를 쉽게 잡을 수 있다는 것을 깨달았고 AWS Amplify를 이용하여 프론트엔드와 백엔드 코드를 하나의 도메인으로 합치는 작업을 통해 해결했던 경험이 있습니다.
팀원과 효율적으로 소통하고 작업하는 것을 지향합니다.
협업 프로젝트 때 Slack, Discord, Notion을 통해 매주 회의를 진행했습니다. 회의를 통해 나온 내용을 토대로 GitHub 이슈를 생성했고 매주 스프린트를 진행했습니다.
변화에 적응하기 위해 끊임없이 노력합니다.
Nest.js를 이용하여 프로젝트 서버를 구축했습니다. 프로젝트에 올바르게 사용할 수 있도록 계속해서 시도하고 공부하고 있습니다.
기술 스택
Node.js, NestJS, MySQL, Docker, MongoDB, swagger, GitHub, github-actions, MariaDB, Sequelize, TypeORM, TypeScript, AWS
프로젝트
Just-Swim
개인
2024.02. ~ 진행 중
1. Description
수영 강사가 고객에게 전하는 VIP 피드백 서비스
참여도: 백엔드(100%)
개발인원: FE(Next.js 4명) / BE(Nest.js 2명) / Design(3명)
2. Tech Stack
Nest.js / MySQL / Docker / GitHub-Actions / TypeORM / Discord / Notion
3. What i did
Nest.js를 이용한 Just-Swim의 Restful API 서버를 구축
OAuth 2.0를 이용한 클라이언트 데이터 저장 및 서비스 접근 권한 관리
Google, Kakao 그리고 Naver에서 제공하는 OAuth 2.0을 통해 클라이언트의 데이터를 안전하게 받아 저장하며, 이를 기반으로 서비스 접근 권한을 관리
MySQL Procedure를 활용한 data 처리 속도 향상
서버와 DB 사이의 반복된 작업을 procedure를 활용하여 DB에서 반복된 작업을 할 수 있도록 처리
이를 통해 서버에 증가하는 부하를 줄이고 data 처리 속도를 향상
Docker와 GitHub-Actions를 활용한 CI/CD 파이프라인 구축
Docker 컨테이너를 이용하여 일관된 실행 환경을 형성하고 Docker 이미지 빌드를 통해 빠르고 간편한 배포 환경을 구축
GitHub-Actions을 통해 서비스 추가 또는 수정 시 쉽게 유지 보수 가능한 CI/CD 파이프라인을 구축
Crew
개인
2023.08. ~ 2023.11.
1. Description
내주변에서 함께하고 싶은 모임을 만들거나 참여할 수 있는 플랫폼 서비스
참여도: 백엔드(70%)
개발인원: FE(React 2명) / BE(Nest.js 2명) / Design(1명)
2. Tech Stack
Nest.js / TypeOrm / MySQL / mongoDB / Github / Notion / Slack
3. What i did
Nest.js 를 이용해 Crew 서비스의 Restful API 서버 구축
OAuth 2.0를 이용한 클라이언트 데이터 저장 및 서비스 접근 권한 관리
Google, Kakao 그리고 Naver에서 제공하는 OAuth 2.0을 통해 클라이언트의 데이터를 안전하게 받아 저장하며, 이를 기반으로 서비스 접근 권한을 관리
artillery 라이브러리를 이용한 부하 테스트 진행 및 결과를 통해 코드 개선하여 응답 시간 향상
'모임 글 전체 조회'부분 map 함수와 Promise.all을 이용해 코드 개선
http.codes.200, http.reponses에서 time이 100에 600개 이상 count -> time이 20~110 사이에 고르게 분포 됨, 모든 시간 대에서 200개 이하로 count 됨
swagger를 통해 API 문서화
FE와 원활한 소통 및 자동 문서화
Schedule 라이브러리를 통해 반복 작업 및 자동 실행
scheduling을 구현했으며 이를 통해 단순하지만 반복해서 해줘야 하는 작업들을 자동화 함
일정, 공지, 투표, 탈퇴, 회원 탈퇴에서 이용
Amplify를 이용한 서비스 배포
FE와 BE가 서로 다른 도메인으로 배포해서 발생했던 CORS에러를 Amplify를 이용하여 해결
하나의 도메인으로 코드를 합쳐 서비스
teamblink(Clone coding)
개인
2023.05. ~ 2023.06.
1. Description
사이트 Blind 의 채용 공고 부분을 Clone coding
2. Tech Stack
Node.js / expressJS / Sequelize / MySQL / Github
3. What i did
Express.js 를 이용해 teamblink 의 Restful API 서버를 구축 (채용공고 CRUD 부분 담당)
클라이언트에서 Editor를 이용하여 글 작성 시 multer을 통해 사용자가 이미지를 조금 더 직관적이고 빠르게 확인 가능
서버에 있는 이미지를 editor 작성 부분에 보여주므로 조금 더 글의 형태나 이미지 위치를 직관적이고 정확하게 확인할 수 있게 함
AWS(EC2, Rout53)와 가비아 서비스를 이용해 Https 형태로 서버 배포
서버 배포를 완료하고 FE와 연결 시도 했지만 실패
도메인 다를 경우 발생하는 CORS 에러로 인해 연결 실패
포트폴리오
교육
서경대학교
대학교(학사) | 나노융합공학과
2015.03. ~ 2023.08. | 졸업
대외활동
항해 99 파트타임 1기
팀스파르타
Node.js를 이용한 REST API 서버 개발
AWS를 이용한 서비스 배포
디자이너, 프론트 엔드 개발자와 협업 프로젝트