미리보기
기본 정보

- 발생한 문제를 두려워하지 않으며 문제를 해결하기 위해 끝까지 파고드는 개발자입니다. - 변화에 적응하기 위해 끊임없이 노력하는 개발자입니다. - 효율적으로 소통하고 작업하기를 좋아합니다.
자기소개
수영 강사에서 백엔드 개발자로 이직을 도전하고 있는 박윤수입니다.
변화에 적응하기 위해 끊임없이 노력합니다.
Nest.js를 이용하여 프로젝트 Restful API 서버를 구축했습니다.
Nest.js를 프로젝트에 올바르게 사용할 수 있도록 TypeScript, OOP, TDD 등 필요한 부분을 끊임없이 학습하고 있습니다.
발생한 문제를 두려워하지 않으며 문제를 해결하기 위해 끝까지 파고드는 개발자입니다.
Crew 프로젝트에서 느린 서버 배포로 인해 팀 개발 속도 저하가 생기는 문제를 경험했습니다.
문제점을 통해 CI/CD 파이프라인 구축의 필요성을 느꼈고, Just-Swim 프로젝트를 진행할 때 초기에 Docker와 GitHub Action을 이용해 CI/CD 파이프라인을 구축한 경험이 있습니다. 이를 통해 프론트 엔드와 백엔드 협업과 개발 속도 향상에 좋은 영향을 준 경험이 있습니다.
팀원과 효율적으로 소통하고 작업하는 것을 지향합니다.
협업 프로젝트 때 Slack, Discord, Notion을 통해 매주 회의를 진행했습니다. 회의를 통해 나온 내용을 토대로 GitHub 이슈를 생성했고 매주 스프린트를 진행했습니다.
기술 스택
프로젝트
개인
Just-Swim
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 파이프라인을 구축
Jest를 활용한 TDD를 구축
Jest를 활용한 단위 테스트 및 TDD 환경 구축
Service 단위 테스트 작성 및 데이터 Mocking을 통해 의존성 최소화
개인
Crew
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)
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를 이용한 서비스 배포
디자이너, 프론트 엔드 개발자와 협업 프로젝트
2023