미리보기
기본 정보

안녕하세요. 1년차 웹 프론트엔드 개발자 김민지 입니다. 네일 아티스트에서 프론트엔드 개발자로 직무를 전환하며, 다양한 시행착오를 통해 문제 해결 역량을 키우기 위해 노력하고 있습니다. 전역 상태 관리와 UI 최적화를 경험하며, 유지보수성과 확장성을 고려한 개발에 집중하고 있습니다. 깎이고 부러져도 손톱처럼 다시 자라나는, 성장하는 개발자 김민지가 되겠습니다.
기술 스택
React, Next.js, JavaScript, HTML/CSS, Notion, Figma, Photoshop, 국비지원 부트캠프, TypeScript, GitHub, Git, frontend, jQuery, Firebase, REST API
경력
주식회사식스티
팀원 | 프론트엔드 개발
2024.04. ~ 2025.03. (1년)
웹 프론트엔드 개발
- React, TypeScript, Next.js를 활용한 웹 애플리케이션 개발
- AgGrid, Chakra UI를 사용하여 데이터 테이블 및 인터페이스 최적화
- React Query를 이용해 백엔드 API 연동 및 상태 관리 최적화
프로젝트
대기업 사내 업무용 사이트 개발
식스티
2024.08. ~ 2025.02.
주요 역할
사내 업무용 설계를 위한 자재 관리 시스템 개발
업무 성과
- 프론트엔드 코드 유지보수 및 버그 수정
- 백엔드 API에서 가져온 데이터를 가공 및 변환하여 AgGrid 컴포넌트에 효율적으로 노출
- 다른 셀의 데이터 값에 따라 셀 편집 가능 여부를 동적으로 제어하는 조건부 로직 구현
- 사용자 액션에 따라 동적으로 AgGrid 컬럼을 추가/제거하는 기능 구현
- AgGrid 테이블 데이터 엑셀 다운로드 기능 구현
제품키 인증관리 솔루션
식스티
2024.07. ~ 2024.10.
주요 역할
제품키 인증관리를 위한 관리자 및 판매자 페이지 개발 프로젝트
업무 성과
- 프로젝트 프론트엔드 담당
- 클라이언트 요구사항에 따른 UI 화면 설계 및 구현
- 타입 안전성을 갖춘 공통 API 통신 함수 개발로 반복 코드 감소 및 개발 효율성 향상
- AgGrid 라이브러리를 활용한 데이터 기반의 CRUD 기능 구현
- 백엔드 API에서 가져온 데이터를 기반으로 AgChart를 활용한 인터랙티브 대시보드 구현
- 최근 추가된 정보 선택 시, 폼 데이터 자동 바인딩 기능 구현으로 사용자 편의성 향상
쉼표
식스티
2024.04. ~ 2024.04.
주요 역할
서대문 청소년 아지트 출입관리 시스템 중 관리자 및 사용자 페이지 개발 프로젝트
업무 성과
- 클라이언트 요구사항에 따른 UI 개선 및 추가 구현
- 쉼표의 위치 시각화를 위한 카카오맵 API 연동
- 관리자 페이지의 전체 문자 발송 기능 API 연동 및 구현
포트폴리오
대외활동
[ 스나이퍼팩토리 X 유데미 ] 10주 완성 FE 프로젝트 캠프
스나이퍼팩토리 X 유데미
2023
- 프론트엔드 역량강화 교육 (6주), 미래내일 일경험 사업 프로젝트형 프로그램(4주)
- 학습 관리 시스템(LMS) 중 분류 4의 클래스룸 파트 개발 (팀원)
- 프로젝트 캠프 성과 발표회 본선 참가 / 청년 일경험 지원사업 - 최우수팀 수상
멋쟁이사자처럼 프론트엔드 스쿨 3기
멋쟁이사자처럼 / 위니브
2022
- 프론트엔드 교육과정 수료
- 북워크샵(함께 자라기), 코어 자바스크립트 스터디 참여
- WEB 캐릭터 디자인 경진대회 - 장려상 수상
더조은컴퓨터학원
더조은컴퓨터학원
2020
- [스마트웹 & 콘텐츠개발] UI / UX 웹디자인 & 웹퍼블리셔 교육 과정 수강
- UI / UX 웹디자인에 대한 지식과 기술을 학습
자격증
컴퓨터활용능력2급
2급 | 대한상공회의소
2022.05.
웹디자인기능사
한국산업인력공단
2022.04.
GTQi일러스트1급
1급 | 한국생산성본부
2021.05.
GTQ포토샵1급
1급 | 한국생산성본부
2021.04.
자기소개
프론트엔드 개발자로 진로를 결정한 계기와, 입사 후 성장 목표
네일아티스트로 약 2년간 근무했던 저는 뷰티아트 전공생입니다. 어린 시절부터 창의적으로 무언가를 만들어내는 것을 좋아했기에, 우연히 접한 웹 퍼블리싱에 강한 호기심과 흥미를 느꼈습니다. 사용자로만 경험했던 웹을 직접 구현하는 과정에서 큰 매력을 발견했고, 이를 계기로 프론트엔드 개발자로 진로를 전환하게 되었습니다.
독학으로 시작한 공부는 체계적인 학습을 위해 부트캠프로 이어졌고, 그곳에서 HTML, CSS, JavaScript, React를 배우며 API 연동 및 CRUD 작업을 경험했습니다. 청년 일 경험 프로젝트에 참여해 DB 설계부터 디자인 개선까지 전 과정에 함께하며 기초 역량을 다졌습니다.
이후 중소 IT 기업에서의 약 1년간의 실무 경험은 제 성장에 큰 밑거름이 되었습니다. 실제 사용자가 이용하는 서비스의 프론트엔드 개발에 참여하며 React 공통 컴포넌트 설계와 상태관리 방식을 학습했고, 백엔드 API로부터 받은 데이터를 가공하는 등의 경험을 통해 실무 역량을 키울 수 있었습니다.
아직 부족한 부분이 많지만, 깎이고 부러져도 다시 자라나는 손톱처럼 실패를 두려워하지 않고 지속해서 도전하며 성장하는 프론트엔드 개발자가 되겠습니다. 다양한 규모와 환경의 프로젝트를 경험하며 사용자에게 더 나은 경험을 선사하는 개발자로 발전해 나갈 것입니다.
스스로의 의지로 새로운 도전이나 변화를 시도했던 경험
서비스 직무에서 개발자로 직무 전환한 후, 청년 일 경험 프로젝트에 참여하며 첫 팀 개발을 경험했습니다. 처음에는 API 연결 방법에 서툴러 데이터를 제대로 불러오지 못했고, react-query와 같은 라이브러리의 사용법도 어려웠습니다. 전역 상태관리의 중요성을 모르고 불필요한 props drilling과 상태 끌어올리기를 반복하면서 코드가 점점 복잡해졌습니다. 문제를 해결하려 했지만, 오히려 더 복잡한 스파게티 코드만 만들어 버렸습니다.
해결해야만 한다는 각오로 시행착오 끝에 팀원들의 코드를 분석하며 개선 방법을 찾기 시작했습니다. 데이터를 한 방향으로 흐르게 설계해야 한다는 React의 원칙을 이해한 후, 전역 상태관리를 도입해 복잡한 상태 전달 문제를 해결했습니다. 또한, 공통 컴포넌트를 순수 함수로 설계해야 유지보수가 쉬워진다는 점을 깨달았고, 특정 기능을 위해 공통 함수를 함부로 수정하면 안 된다는 원칙을 알게 되었습니다.
이 경험을 통해 부족함을 인정하고 배움을 이어가는 자세가 얼마나 중요한지 알게 되었습니다. 다양한 시행착오를 겪을수록 성장하고 있다는 확신을 갖게 되었고, 이제는 새로운 도전이 두렵기보다 문제 해결을 위한 기회라고 생각하게 되었습니다.
문제를 해결하며 성장을 겪어본 경험
첫 번째 과제는 복잡한 데이터 구조를 가진 폼 관리였습니다. 기존 데이터는 수정 불가, 신규 데이터는 수정할 수 있도록 필드의 편집 가능 여부를 제어해야 했습니다. 처음에는 URL에 저장 상태를 나타내는 쿼리스트링을 추가하고, 저장 시점에 값을 변경해 스프레드 연산자로 합치는 방식을 구상했지만 실패했고, 3시간 동안 헤매는 어려움을 겪었습니다.
깊이 고민한 끝에, 데이터를 최초로 받아올 때 map 함수를 사용해 새로운 객체 배열을 생성하고, 그 시점에 필요한 속성을 추가하는 방식으로 문제를 해결했습니다. 이 경험을 통해 데이터 흐름의 시작점에서 적절한 변환 작업이 중요하다는 것을 깨달았고, 이후 유사한 기능을 더 빠르게 개발할 수 있었습니다.
두 번째 과제는 사용자가 AgGrid 테이블의 컬럼을 유동적으로 추가, 삭제할 수 있는 기능이었습니다. 처음에는 복잡한 상태 관리와 DOM 조작이 필요하다고 생각해 어렵게 접근했지만, 코드가 복잡해질수록 해결책을 찾기가 더 어려워졌습니다. 결국 동료들에게 조언을 구했고, 기존에 'const ColumnList = []' 와 같이 고정된 배열 형태로 작성했던 코드를 'const ColumnList = (newColumn) => [ ...newColumn ]' 처럼 함수의 매개변수로 컬럼 정보를 전달하는 방식으로 변경했습니다. 이렇게 하자 새 컬럼을 추가하거나 삭제할 때마다 기존 배열을 직접 수정할 필요 없이, 매개변수에 원하는 컬럼 정보를 전달하는 것만으로 기능을 유연하게 구현할 수 있었습니다. 이러한 경험을 통해 혼자 깊이 고민하며 문제를 해결하는 능력과 동료들과 협력해 효율적인 해결책을 찾는 자세를 함께 기르게 되었습니다.
특히, 혼자 고민하고 해결하는 것이 성장이라고 생각했지만, 적절한 시점에 도움을 요청하는 것도 중요한 문제 해결 능력이라는 점을 깨닫게 해준 값진 경험이었습니다. 이후 프로젝트에서는 이 경험을 바탕으로 문제 상황에 맞는 적절한 접근 방식을 선택하며, 더 빠르고 안정적인 기능을 구현할 수 있었습니다.