4. 자기소개서
(1) 문제 해결 능력과 극복 경험
저의 가장 성공적인 프로젝트는 연세대학교와 Applynow 대학원 선발평가 시스템의 전환입니다. 이 시스템은 현재도 매 학기마다 모든 대학원 관계자분들이 사용하고 있으며, 서지로 처리되던 복잡한 업무를 효율적이고 간소화된 프로세스로 대체함으로서 사용자들에게 편리함과 효율성을 제공하고 있습니다.
이 프로젝트의 성공 요인은 정확한 요구사항 도출, 애자일한 개발 방법론, 그리고 개인의 노력과 소통이었습니다. 이 프로젝트는 대학원 입시와 직결된 핵심 서비스이므로, 클라이언트의 요구사항을 철저히 이해하고 명확하게 도출해야 했습니다. 또한, DB 구조에서 구현하기 어려운 부분은 적절한 대안을 찾는 과정이 중요했습니다.
요구사항 도출을 위해 클라이언트와의 미팅을 직접 진행하고 사용자 테스트를 통해 요구사항을 검증했습니다. 문제가 발생할 경우 팀과 클라이언트 함께 협의해 해결책을 도출했습니다. 또한, 이 프로젝트는 Java와 Spring/JSP로 개발되던 기존 시스템을 Vue 프레임워크와 Kotlin 및 Spring Boot 프레임워크로 대대적으로 전환하는 작업이었습니다. 이를 위해 새로운 언어와 프레임워크를 습득하기 위한 자기 주도 학습을 통해 지식을 쌓고 프로젝트를 성공적으로 이끌었습니다.
이러한 지속적인 클라이언트와의 소통, 학습, 그리고 개발 노력을 통해 대학원 선발평가 시스템은 완성되었으며, 이후에도 추가 개발과 유지보수를 진행하며 지속적인 개선과 운영을 수행했습니다.
지금은 이 프로젝트가 매 학기마다 성공적으로 운영되고 있으며, 회사의 핵심 도메인으로 성장하고 있습니다. 이 경험을 토대로, 더 나은 솔루션을 개발하고 사용자 경험을 향상시키는 데 더 많은 역량을 기여하고자 합니다.
(2) FE / BE 직무역량
저는 다양한 웹 어플리케이션을 구축하는 소프트웨어 엔지니어로, Front-End 개발에는 Vue 프레임워크를, Back-End 개발에는 Spring Boot와 Kotlin을 활용해 인터널 소프트웨어부터 웹 애플리케이션까지 다양한 프로젝트 경험을 가지고 있습니다.
저는 항상 요구사항 도출을 시작으로 개발 프로세스를 진행합니다. 프로젝트의 특성과 목적에 맞는 UI/UX를 고민하며 화면을 정의하고 개발하는 데 주력하고 있습니다. Vue 프레임워크를 사용할 때에도 프로젝트의 필요에 따라 Vue 2 또는 Vue 3을 선택해 적용했습니다.
Spring Boot와 Kotlin을 이용한 Back-End 개발 또한 제 경험 중 하나입니다. Kotlin은 Java에 비해 간결하고 더 안전한 언어로, Type Check 및 Null Check를 통해 Front-End 및 API 개발을 더 명확하게 수행할 수 있었습니다. 또한, Rich Domain Model 및 CQRS 패러다임을 적용해 멀티모듈 프로젝트를 개발하면서, REST API 설계와 비즈니스 로직 구현에 있어 더 명확한 방향을 제시했습니다.
또한, 회사의 다른 도메인과의 서비스 통합이나 외부 API 연동에 대한 경험을 보유하고 있습니다. Spring Gateway(MSA)를 활용해 하나의 인증 정보로 여러 서비스를 연동할 수 있도록 구현했고, API 명세 작성 과정에서 화면 목록 및 개발된 화면을 검토해 미리 비즈니스 로직 문제를 해결하고 사용성을 향상시켰습니다. AWS, Zoom API 등의 외부 API를 효과적으로 활용해 메인 도메인의 핵심 비즈니스에 적용시켰습니다.
이러한 경험을 바탕으로, 신규 콘텐츠 개발 및 기존 서비스의 사용자 경험 향상을 위해 기술과 전문성을 발휘하고자 합니다. 혁신적이고 효율적인 솔루션을 제공해 프로젝트의 성공과 사용자 만족도를 높이는 데 기여하겠습니다.
(3) 개발자가 아닌 소프트웨어 엔지니어로, 학습과 적응의 연속
저의 장기적인 경력 목표는 개발자로서만 코드를 작성하는 것이 아니라, 소프트웨어 생명주기의 모든 부분을 함께 다루는 소프트웨어 엔지니어가 되는 것입니다. 개발은 끊임없는 학습과 조직적인 적응이 필요한 분야입니다.
소프트웨어 개발 분야는 다른 분야에 비해 새로운 트렌드와 기술 변화가 빠르게 일어나는 특성을 가지고 있습니다. 이러한 이유로, 상대적으로 안정적인 데이터베이스 및 기본적인 컴퓨터 공학 지식과 백엔드 개발 영역은 계속해서 학습하고 발전시켜 나갈 것입니다. 또한, 프론트엔드 개발 분야는 기술의 발전과 시대적인 요구사항에 민감하게 대응해야 합니다. 이를 위해 변화를 주시하고 필요한 기술을 빠르게 습득하겠습니다.
또한, 소프트웨어 설계 부분도 자세히 이해하고자 합니다. 설계를 이해하는 수준을 넘어서 직접 설계를 수행할 수 있는 능력을 키워, 더 효율적이고 확장 가능한 소프트웨어를 개발하고자 합니다. 이를 위해서는 기회가 되면 설계 작업에 참여하고 점차적으로 더 깊이 파고들어 가겠습니다.
내가 가진 지식과 경험을 지속적으로 확장하고, 항상 새로운 것에 대한 호기심을 갖고, 문제 해결 능력을 강화하기 위해 노력할 것입니다. 항상 고민하고 궁금증을 가지며, 새로운 도전을 통해 해결책을 찾아내는 열정적인 개발자가 되도록 노력하겠습니다. 이러한 목표를 향해 끊임없이 성장하고 발전하는 모습을 보여드리겠습니다.