안녕하세요, 지원자 이동열입니다. 저는 학부에서 데이터베이스, 네트워크, 운영체제 등의 과목을 수강하며 기본적인 CS 지식을 쌓았습니다. 그 후, 학습한 내용들을 웹 프로젝트에 반영했고, 현재는 자바 기반의 백엔드 개발자가 되기 위해 지속적인 학습을 이어나가고 있습니다.
[웹 개발 역량 증가를 위한 노력]
학부에서는 몇 가지 팀 프로젝트를 진행하면서 웹 개발에 대한 역량을 향상할 수 있었습니다. ‘중고도서 거래’를 주제로 한 팀 프로젝트에서는 Spring framework를 통한 API를 기획, 제작하여 SpringMVC 패턴을 적용한 SSR 기반의 서비스를 구현했습니다. 또한 졸업 프로젝트에서는 기업을 통해 STT(Speech To Text) API를 제공받아 ’음성 라벨링 도구‘를 구현하는 프로젝트를 진행했습니다. 해당 프로젝트는 코로나로 인해 콜센터, 챗봇 등 AI를 활용한 음성 처리의 수요가 늘어나는 상황에서, 유입된 음성을 AI가 정확히 학습하고 대응할 수 있도록 라벨링 작업을 지원하는 서비스였습니다. 이 프로젝트를 통해 Django, MariaDB를 경험했고, 음성파일의 처리와 MTV 패턴을 학습했습니다. 두 프로젝트 모두 완성도는 높지 않았지만, WAS와 DB의 상호작용, framework에 대한 이해도와 역량을 높일 수 있었습니다.
졸업 후에는 몇 가지 미흡한 부분을 보완하기 위해 부트캠프 과정에 참여했습니다. JAVA와 Spring, Spring boot에 대한 전반적인 지식을 학습하고, 현직자들과의 멘토링을 통해 실무에 대한 견해를 확장했습니다. 또한 팀 프로젝트에서 팀 리더의 역할을 수행하며 git을 통한 협업 능력을 향상했습니다. 최근 프로젝트에서는 정적 리소스를 API 서버와 분리함으로써 서버의 부담을 줄여 성능 최적화를 이뤄낸 경험이 있습니다. 사용자 심리 안정을 중점으로 하는 음원 스트리밍 서비스인 ‘COZYSTATES’를 기획하면서, 음원과 이미지라는 대용량 데이터를 사용자에게 지연 없이 제공하는 방법에 대해 오랜 고민을 거쳤고, RDS에 객체의 URL을 저장하는 것이 아니라 S3에서 직접 객체의 URL을 클라이언트에게 반환해 클라이언트가 직접 S3에 접근하도록 아키텍처를 구성했습니다. 이 과정에서 클라이언트가 직접 S3에 접근하는 취약성을 보완하기 위해 서버가 클라이언트로 전달해 주는 S3 객체의 URL에 Pre-signed-URL 정책을 적용함으로써 제한 시간을 설정해 보안성을 높일 수 있었습니다. 또한, 비동기 처리 객체인 ‘CompletableFuture’를 사용해 객체의 수에 상관없이 일정한 응답시간을 반환하도록 리팩토링해 응답시간을 8배가량 단축시킨 성과를 얻었습니다. 현재 저는 부족한 점을 보완하기 위해 Spring data JPA, CI/CD, 그리고 docker에 대한 학습을 지속하고 있습니다.
[회복탄력성이 좋은 개발자]
저의 성격의 가장 큰 장점은 긍정적이고, 회복탄력성이 높은 것입니다. 과거, 팀 프로젝트에서 github에 수정된 코드를 올려 병합하던 도중 데이터베이스 설정이 잘못된 것을 인지하지 못해 AWS RDS에 저장된 데이터가 모두 삭제되는 일이 있었습니다. 프로젝트 마감일 하루 전에 발생한 문제였기에 절망적인 상황이었습니다. 하지만 문제를 빠르게 인정하고 팀원들과 해당 이슈를 공유하며 추가적인 오류가 발생하지 않도록 상황을 정리했고, RDS의 인스턴스를 특정 시점으로 복원한 결과 문제 해결뿐만 아니라 목표한 기한 내에 완성된 팀 성과를 이끌어낼 수 있었습니다.
단점은 내향적인 점입니다. 저는 적극적으로 많은 구성원들과 상호작용을 하는 것보다 소수의 인원과 깊은 관계를 쌓는 걸 선호했습니다. 이와같은 성향이 협업능력 발전에 장애물이 된다고 판단했습니다. 이런 태도를 보완하기 위해 다양한 학과가 섞인 마케팅 교양수업을 신청했고, 해당 기말 팀프로젝트에서 팀장을 자원했습니다. 여러가지 목표를 수행하며 팀원들과의 협업을 통해 프로젝트를 완성하고 좋은 성적을 얻을 수 있었습니다.