미리보기
기본 정보
안녕하세요, 프로젝트를 위한 필요한 기술과 경험을 갖춘 주니어 프론트엔드 개발자 신정엽입니다. 최신 웹 기술과 트렌드를 꾸준히 학습하며, 이를 실제 프로젝트에 적용해가며 실력을 쌓고 있습니다. React와 Zustand를 활용한 상태 관리 최적화, 실시간 데이터 처리 경험을 바탕으로, 팀 프로젝트에서 UI/UX 개선 및 데이터 일관성 유지에 기여했습니다. Kakao OAuth 인증과 API 연동을 통해 사용자 인증 및 데이터 관리 시스템을 구축한 경험이 있습니다. 프로젝트에서 얻은 실무 경험을 통해, 효율적인 코드 작성과 문제 해결 능력을 키웠으며, 사용자 중심의 인터페이스를 설계해 개발 속도와 품질을 함께 높이는 방향으로 일하고자 합니다. 즉각적인 기여를 통해 회사의 목표 달성에 힘을 보태겠습니다. 앞으로도 새로운 도전에 적극적으로 임하며, 지속적인 학습과 성장을 통해 더 나은 개발자가 되기 위해 노력하겠습니다. 감사합니다.
기술 스택
JavaScript, TypeScript, Sass, React, zustand, Node.js, Express
프로젝트
숨 쉬는 다람쥐 숨다
카카오테크 부트캠프 클라우드 네이티브 제주 1기
2024.07. ~ 2024.10.
공공 데이터 API를 활용하여 날씨와 대기질 정보를 제공하는 웹 서비스로, 사용자에게 실시간 환경 정보를 제공합니다. 또한, 다람쥐 육성 게이미피케이션 요소를 통해 사용자가 다양한 종류의 다람쥐를 육성하며 일일 미션을 수행할 수 있는 기능을 구현하였습니다.
기간: 24.07.22 ~ 24.09.13
담당: 프론트엔드 개발
스택: TypeScript, React, CSS, Zustand
인원: 총 5명 (FE 2명, BE 3명)
날씨/대기질 정보 제공: 공공 데이터 API를 활용하여 실시간 날씨 및 대기질 정보를 조회할 수 있는 서비스를 구현하였습니다.
상태 관리: Zustand를 사용하여 전역 상태 관리를 구현하여 데이터의 일관성과 효율적인 업데이트를 보장하였습니다.
인증/인가 기능: Kakao OAuth를 통해 사용자가 로그인할 수 있도록 하였으며, 로그인 시 JWT 토큰을 발급하고 이를 통해 사용자별 다람쥐 정보를 불러옵니다.
게이미피케이션: 사용자는 다양한 종류의 다람쥐 (예: 사무라이 다람쥐, 기사 다람쥐 등)를 육성할 수 있으며, 일일 미션을 완료하여 도토리를 획득하고 다람쥐를 성장시키는 시스템을 구현하였습니다.
아무 말 대잔치
카카오테크 부트캠프 클라우드 네이티브 제주 1기
2024.04. ~ 2024.07.
카카오테크 부트캠프 클라우드 네이티브 제주에서의 개인 프로젝트로, Express와 MySQL을 사용한 게시판 사이트를 구현하여 백엔드와 데이터베이스의 연동을 경험하고 이해도를 높이기 위한 목적으로 진행되었습니다.
기간: 24.04 ~ 24.07
담당: 프론트엔드 개발
스택: Javascript, React, Express, MySQL
인원: 개인 프로젝트
React를 사용하여 게시판의 프론트엔드를 구현하고 사용자 인터페이스를 직관적으로 설계
Express를 활용해 서버를 구축하고, RESTful API를 통해 데이터 요청 및 관리를 처리
MySQL을 사용하여 데이터베이스를 설계하고, 게시글의 CRUD 기능 구현
포켓몬 도감 사이트
개인
2023.11. ~ 2023.12.
React와 Styled-components를 활용하여 포켓몬 도감을 구현한 개인 프로젝트로, 포켓몬 정보 조회 및 필터링 기능을 제공합니다. Firebase를 사용해 OAuth 로그인 및 사이트 배포를 완료하였습니다.
기간: 23.11.13 ~ 23.12.04
담당: 프론트엔드 개발
스택: Javascript, React, Styled-Components
인원: 개인 프로젝트
React를 사용하여 포켓몬 도감 UI와 데이터를 동적으로 렌더링 및 Styled-components로 스타일링
Firebase Authentication을 통해 Google OAuth 로그인을 구현하여 간편한 사용자 인증 제공
Firebase Hosting을 활용하여 프로젝트를 배포
스타벅스 홈페이지 클론 코딩
개인
2023.01. ~ 2023.06.
스타벅스의 공식 웹사이트를 클론하여 프론트엔드와 백엔드를 경험해보기 위한 프로젝트로, 기본적인 웹 디자인부터 게시판 및 회원 관리 기능을 구현하였습니다.
기간: 23.01.01 ~ 23.06.13
담당: 프론트엔드 개발
스택: Javascript, HTML, CSS, PHP
인원: 개인 프로젝트
HTML, CSS, JavaScript를 사용하여 스타벅스 홈페이지의 UI,UX 클론
PHP를 활용해 게시판 기능을 구현하여 사용자가 게시글 작성, 수정, 삭제
회원가입과 로그인 기능을 통해 사용자 관리 및 세션 관리 추가
카카오테크 부트캠프 해커톤 - AI 기반 대화형 장소 추천 시스템
카카오테크 부트캠프 클라우드 네이티브 제주 1기
2024.08. ~ 2024.08.
카카오테크 부트캠프 해커톤에서 개발된 프로젝트로, 제주도를 여행하는 관광객들이 맞춤형 장소 추천을 받을 수 있도록 AI 기반 대화형 시스템을 구현하였습니다. 사용자의 입력을 바탕으로 관심사, 나이, 여행 날짜 등을 고려하여 개인화된 추천 서비스를 제공하는 것을 목표로 하였습니다.
기간: 2024.08.05 ~ 2024.08.07
담당: 프론트엔드 개발
스택: TypeScript, React, Zustand
인원: 총 5명 (클라우드 1명, BE 2명, FE 2명)
사용자의 기초 정보를 입력받아 (인원 수, 나이, 관심사, 여행 날짜 등) AI 질문을 생성합니다.
대화형 인터페이스를 통해 사용자가 AI와 상호작용하며 추가 질문을 통해 정보를 구체화합니다.
비짓제주 관광 공공 데이터를 활용하여 최종적으로 사용자에게 적합한 관광 정보를 추천합니다. 프롬프트 엔지니어링을 통해 AI가 정확한 정보를 제공하도록 설계되었습니다.
포트폴리오
교육
계명대학교
대학교(학사) | 게임소프트웨어학과
2018.03. ~ 2024.02. | 졸업
대구상원고등학교
고등학교 | 인문계
2015.03. ~ 2018.02. | 졸업
대외활동
카카오테크 부트캠프 클라우드 네이티브 제주 1기
카카오테크 부트캠프 클라우드 네이티브 제주 1기
한국전파진흥협회와 카카오 그리고 구름이 함께하는 교육과정입니다.
성장의 관성을 지닌 인재를 양성하기 위해 새로운 교육 방식을 도입했습니다.
수료생은 4개월간 실시간 온라인 강의로 자기주도학습역량을 기르고 이후 2개월간 제주도에서 온전한 몰입을 경험합니다.
자기소개
성장 과정
[호기심으로 시작한 프론트엔드 개발, 그에 따른 성장 과정]
어릴 적부터 호기심이 많아 새로운 것을 배우고 탐구하는 것을 좋아했습니다. 이러한 성향은 대학교에서 전공 외 분야인 프론트엔드 개발에 대한 관심으로 자연스럽게 이어졌습니다. 사용자와 직접 상호작용하며 서비스를 만들어가는 프론트엔드 개발의 매력에 이끌려 본격적으로 공부를 시작하게 되었습니다.
대학 시절, 가장 큰 배움을 얻은 경험은 게임 개발 프로젝트였습니다. 이 프로젝트에서 팀원들과 함께 게임의 UI와 UX를 디자인하고 구현하는 역할을 맡았습니다. 사용자 중심의 사고를 기르며, 시각적 요소와 사용자의 상호작용을 최적화하기 위해 노력했습니다. 이러한 경험은 프론트엔드 개발자로서 사용자 경험을 최우선으로 생각하는 사고방식을 확립하는 데 큰 도움이 되었습니다.
이후 카카오테크 부트캠프 클라우드 네이티브 제주 1기에 참여하며, 공공 데이터 API를 활용한 날씨 및 대기질 서비스 개발 프로젝트를 통해 클라우드 환경에서의 배포와 운영까지 경험하며 실무와 직접적인 관련이 많은 기술을 익혔습니다. 최신 기술 트렌드를 빠르게 습득하고 이를 실제 프로젝트에 적용하면서 실무 능력을 쌓아가는 데 집중했습니다.
프론트엔드 개발에 대한 저의 열정은 지금도 계속되고 있으며, 사용자 경험을 최우선으로 고려하는 개발자가 되기 위해 끊임없이 학습하고 성장하고 있습니다. 앞으로도 다양한 도전과 경험을 통해 더욱 발전해 나갈 것을 다짐합니다.
교육 및 경력
[실무 중심의 학습과 협업 경험]
저는 카카오테크 부트캠프 클라우드 네이티브 제주 1기에 참여하여 프론트엔드와 백엔드 개발에 대한 심도 깊은 학습을 했습니다.
부트캠프 과정 중 해커톤에 참여하여 AI 기반 대화형 장소 추천 시스템을 개발하며, 공공 데이터와 AI 기술을 활용한 실질적인 문제 해결을 경험했으며, 팀 프로젝트를 통해 날씨와 대기질 정보를 실시간으로 제공하는 웹 서비스를 구현하였고, API 연동과 상태 관리, 사용자 인터페이스 설계 등의 다양한 기술적 도전을 성공적으로 해결했습니다.
그리고 해당 팀프로젝트와 연계한 딥다이브를 통해 날씨 및 대기질 데이터 처리, 효율적인 데이터 일관성과 사용자 경험을 위한 상태 관리 전략에 대해 집중적으로 탐구했습니다. Zustand와 같은 상태 관리 도구의 작동 방식과 그에 따른 최적의 데이터 처리 방법을 분석하며, 사용자 경험을 극대화하기 위한 기술적 노하우를 쌓았습니다.
이외에도 대학에서는 전공 선택 과목으로 웹 개발 관련 강의를 수강하며, phpmyadmin을 활용한 서버 구축과 데이터베이스 연동을 학습했습니다. 이를 통해 기본적인 웹 개발 역량을 쌓았습니다.
이 모든 경험은 저에게 협업의 중요성을 다시 한번 깨닫게 해주었고, 팀원들과의 원활한 소통과 협력을 통해 프로젝트를 성공적으로 이끌어가는 능력을 키우게 했습니다. 앞으로도 이러한 경험을 바탕으로 지속적으로 발전하며, 더 나은 서비스를 제공하기 위해 노력할 것입니다.
문제 해결 경험
[실시간 데이터 일관성과 사용자 경험을 위한 상태 관리 개선]
가장 인상 깊었던 문제 해결 경험은 날씨와 대기질 데이터를 실시간으로 제공하는 웹 서비스 숨다 개발 과정에서 발생한 데이터 일관성 문제였습니다. 프로젝트 초기에는 React의 기본 Hooks인 useState와 useEffect를 사용하여 데이터를 관리했지만, 사용자가 위치를 변경할 때마다 API 호출이 빈번하게 발생하며 성능 저하와 데이터 불일치 문제가 나타났습니다.
이 문제를 해결하기 위해 상태 관리 도구인 Zustand를 도입했습니다. Zustand는 상태 변경 시 필요한 컴포넌트만 리렌더링하도록 설계되어 불필요한 리렌더링을 줄이고, 성능을 최적화하는 데 효과적이었습니다. 상태를 중앙에서 관리하며 날씨와 대기질 데이터를 통합적으로 처리하여, 데이터 일관성을 유지할 수 있었습니다. 또한, API 호출 로직을 중앙화함으로써 코드 중복을 줄이고 유지보수성을 높였습니다.
Zustand를 적용한 결과, API 요청이 효율적으로 관리되어 성능이 개선되었고, 사용자에게 더 빠르고 일관된 데이터를 제공할 수 있었습니다. 로딩 상태와 에러 처리를 중앙에서 통합 관리함으로써 사용자 경험이 더욱 향상되었습니다. 이 경험을 통해 문제 해결에서의 기술 선택과 전략의 중요성을 다시 한번 깨달았으며, 앞으로도 성능 최적화와 사용자 중심의 개발을 지향하는 개발자가 되기 위해 끊임없이 노력할 것입니다.
성격의 장단점 및 특기
[협업과 소통을 중요시하는 준비된 프론트엔드 개발자]
개발자에게 중요한 역량 중 하나는 책임감과 의사소통 능력입니다. 맡은 바 임무를 책임감 있게 수행하며, 주어진 시간 내에 완료하는 것을 원칙으로 삼고 있습니다.
팀 프로젝트에서 날씨 및 대기질 정보를 제공하는 웹 서비스를 개발할 당시, 데이터 시각화와 상태 관리 구현을 맡았습니다. 프로젝트 중반, 예상치 못한 API 호출 문제로 페이지 로딩 속도가 크게 저하되는 상황이 발생했고, 이를 해결하지 않으면 사용자 경험이 크게 떨어질 수 있었습니다. 늦은 시간까지 남아 문제를 분석하고, Zustand를 도입해 데이터를 전역 상태로 관리하여 불필요한 API 호출을 줄였습니다. 이를 통해 성능을 최적화하고 일정 내에 모든 기능을 완성하여 팀의 신뢰를 얻었습니다.
협업 과정에서는 의사소통을 특히 중요시했습니다. 기능 구현 방향에 대한 팀원 간 의견 충돌이 발생했을 때, 먼저 팀원들의 의견을 경청하며 그들의 우려와 개선점을 정확히 파악하려 노력했습니다. 특정 레이아웃 구현 방식에 대한 이견이 있었을 때, 저는 팀원들의 피드백을 반영해 레이아웃 설계를 수정하고, 제 의견을 제시할 때는 관련 레퍼런스 조사와 데이터를 근거로 논리적으로 설명했습니다. 이를 통해 단순한 동의에 그치지 않고, 팀원들이 제안의 타당성을 이해할 수 있도록 했습니다. 이러한 과정에서 의견 충돌을 생산적인 토론으로 이끌며, 팀의 방향성을 긍정적으로 조율할 수 있었습니다.
이 경험들은 저에게 개발자로서의 책임감을 강화하고, 팀과 함께 문제를 효율적으로 해결하는 방법을 체득하게 해주었습니다.