사용자는 서비스의 근간이자 목표입니다. 이들이 서비스를 선택하지 않을 경우 서비스는 의미를 잃게 됩니다. 기업은 항상 사용자에게 맞춘 서비스를 위해 어떤 기술이든 받아들일 준비가 되어야 하며, 저 또한 개발 시 사용자의 관점으로 다시 보아 사용자가 어떤 서비스를 원하는 지 다시 한 번 생각하는 기회를 여러 차례 얻고 있습니다. 따라서 저는 사용자와 구성원들에게 가치 있는 서비스를 제공하고 사용자 경험을 개선하는 것이 목표입니다.
원래라면 새로운 기술이 나오고 좀 지나서 기술에 맞고 활용한 서비스가 만들어지고 천천히 시장이 형성되었지만, 이제는 하루가 멀다 하고 새로운 지식과 기술이 공유되는 세상이 되어 빠르게 시장을 선점을 해야 겨우 살아남을 수 있는 세상이 되었습니다. 기술을 배우고 적용하는 것 뿐만 아니라 환경의 어려움을 극복하며 다양한 경험을 쌓고 있습니다.
제가 다니는 광주소프트웨어마이스터고등학교는 4차 산업혁명에 맞춘 인재를 만들고 환경을 조성하기 위해 많은 노력을 기울이고 있습니다. 다만 이토록 빠르게 발전해 나가는 세상과 다르게 학교에서는 지정된 교육과정에 맞춰서 교육을 하므로 시기가 맞지 않을 때도 있습니다. 그래서 학교의 교육만이 아닌 지식과 기술들을 스스로 학습하여 프로젝트를 만들고 운영하고 그 프로젝트로 대회에 나가 프로젝트를 운영하는 데에 부족한 예산(주로 서버 비용)을 가지고 오는 등 많은 경험을 한 적이 있습니다.
학교에서 만이 아니라 외부 해커톤, 컨퍼런스, 커피챗 등 다양한 사람들과 만나고 이야기 하며 인사이트를 얻은 경험도 많습니다.
처음으로 같이 일해본 회사 입니다.
저는 여기서 한 달이라는 짧은 시간 동안 밀도 있는 경험을 했습니다.
프로젝트 초기 적응을 위해
신규 페이지 개발과 API 연동 작업을 수행하며, 기존 코드 베이스에 빠르게 적응하고 파일 구조와 컴포넌트를 숙지하는 법을 배웠습니다.
코드 리뷰와 피드백을 통해 코드 작성 및 구조 이해의 중요성을 체득하며 제가 부족한 점을 깨닫고 개선하고자 했습니다.
의사소통과 협업을 위해
디자이너와 팀원과의 협업과 QA를 통해 사용자 요구사항을 반영한 구현과 테스트를 반복하여 서비스 초기 불량률을 낮추었습니다.
팀원들과 서비스 출시에 대한 협업으로 문제 해결 능력과 의사소통 능력도 늘게 되었습니다.
빠른 제품 출시 환경에서의 업무 수행을 위해
회사가 한 가지 서비스에만 투자하지 않고 다양한 서비스와 새로운 서비스를 개발하는 환경에서 기존 서비스의 흡수 및 확장을 경험하였습니다.
빠른 변화 속에서 유연하게 업무를 처리하는 법을 익히게 되었습니다.
개요
Spotify 공개 api를 활용한 온라인 무료 음악 플레이어 서비스 Freetify 를 개발하고 있습니다.
문제 상황
Spotify 무료 플랜을 사용할 경우 발생하는 재로그인 문제, 원하는 곡 선택 불가능 및 중간 광고에 대해 불편했습니다.
대체제로 Youtube 음악을 가져와도 영상을 재생하는 구조이기 때문에 리소스가 많이 필요하고, 유튜브 프리미엄이 없을 경우 중간 광고로 인해 불편을 겪었습니다.
목표
누구나 편리하게 사용할 수 있는 음악 어플리케이션을 만들자.
앨범 또는 플레이 리스트가 종료되더라도 추천 리스트로 매끄럽게 이어져야 합니다.
검색을 통한 자연스러운 유입을 만들고 싶었습니다.
역할
NextJS로 웹 페이지와 백엔드 API 기능 제작했습니다.
Turbopack을 사용해 빌드 시간을 기존 웹팩보다 30% 수준으로 줄였습니다.
타인에게 플레이 리스트 공유를 위해 메타데이터를 다 다르게 만들어야 하므로, NextJS의 generateMetadata 함수로 동적 메타데이터를 구현했습니다.
구글 서치 콘솔을 사용해 해당 사이트가 검색 결과에 잘 노출 될 수 있도록 하였습니다.
Recoil을 사용해 access token을 관리했습니다.
문제 해결
방법 1. 다운로더라고 검색 창에 치면 나오는 사이트에서 음원을 구했습니다. 시간도 오래 걸리고 어느 순간부터 사이트에서 403으로 접근을 막았기 때문에 더 이상 이 방법은 사용할 수 없다고 판단, 유튜브에서 음원을 가지고 오기로 했습니다.
방법 2. npm에서 유튜브 음원만 가지고 오는 패키지를 찾아 음원을 가지고 올 수 있도록 하고 Google API로 받아온 메타데이터를 기반으로 검색을 하고 제일 상단에 뜨는 영상의 id를 가져와 유튜브 음원을 받고 이를 Blob 데이터로 처리해서 브라우저에서 음원을 조작할 수 있도록 설계했습니다. 또한 7월 10일에 유튜브 봇 방지 정책으로 발생한 403 오류로 대체 패키지를 사용하게 되었습니다. https://velog.io/@kimgh06/어제-발생한-ytdl-core-패키지-403-오류 2. Google API 사용 한도 초과 문제: Google API로 유튜브 검색을 사용하다가 사용량 초과가 자주 일어 났습니다. 테스트하는 것만으로도 사용량 초과 문제가 터지게 되면 실생활에서는 전혀 사용할 수 없어 다른 대안을 찾거나 추가로 결제해야 했습니다. 마찬가지로 npm에서 유튜브 검색을 자유롭게 할 수 있는 패키지를 찾아 원래 검색을 하던 곳에 적용했습니다.
Skills
NextJS, AWS, MySQL, recoil