미리보기
기본 정보

안녀하세요. 프론트엔드 개발자 김효영입니다. Typescript, node.js, react 등 다양한 기술을 터득해 프로젝트를 진행하였습니다. 저는 항상 새로운 도전을 즐기며, 지속적인 자기 계발에 힘쓰고 있습니다. 프론트엔드로서 전문성을 향상시키기 위해 노력하고 있으며, 다양한 프로젝트를 경험하며 성장하는 것을 즐깁니다.더불어, 열린 소통과 피드백에 대한 긍정적인 태도를 가지고 있습니다. 감사합니다.
기술 스택
TypeScript, JavaScript, React, GitHub, Redux, express.js, netlify, REST API, Node.js, JWT, HTML/CSS, Webpack, react-router, Notion, Figma
프로젝트
MILROUTE 프로젝트
국방부
2023.06. ~ 2023.07.
프로젝트 설명
최단 거리 여행 루트 플랫폼 (국방공공데이터 활용 경진대회 참여)
참여 인원
4인
기술 스택
[react, react router, webpack, styled-components, axios, javascript, express.js]
기여 부분
장소 선택 페이지 및 여행지 선택 페이지 구현
- 지역 선택 시, 원하는 장소의 도/시를 선택하면 Kakao Search Map API로 해당 '시'의 시청을 찾아 받은 경도,위도 값을 활용해 Naver Map에 선택한 위치 표시
- 국방 공공데이터 API, Naver map API, kakao search local keyword API를 활용해 특정 장소의 데이터를 데이터 소싱을 통해 map에 마크로 표시
즐겨찾기 페이지 구현
- 계산된 최단 경로를 즐겨찾기에 RESTful API를 활용하여 드롭다운 형식의 확인, 삭제 로직 구현
- 인증된 사용자만 활용 가능도록 '유저id'와 ‘Accesstoken’으로 인가 처리함
CSS gird를 활용한 반응형 웹앱 레이아웃 잡기
국방 공공데이터 중 '군 할인혜택' API에서 데이터를 조회하여 이미지 내 데이터를 출력하여 이미지 슬라이스 형태로 브라우저에 출력
SAFEKINGMALL
안전왕
2022.11. ~ 2023.04.
프로젝트 설명
다양한 중대 산업재해 예방을 위한 "안전왕" 솔루션 제품을 개발 및 공급하는
회사인 '안전왕' 쇼핑몰 제작
참여인원
8인
기술 스택
[Typescript, react, axios, javascript, styled-components]
기여 부분
pagination 구현
- pagination 구현으로 서버에 url parameter 값으로 size와 paze 값을 전달하여 전체 데이터 중 특정 데이터만 조회
react-drag-list 라이브러리를 활용하여 순서 변경 리스트를 구현
form-Data를 활용한 첨부파일 업로드, 다운로드 구현하기
editor 구현 및 사진 첨부 구현
- reactQuill 에디터를 활용하여 에디터 구현 및 이미지를 서버에 post하고 다시 get하여 받은 url값을 에디터 태그로 활용하여 에디터에 사진 넣기 구현
react의 useState값을 활용해 '이전글, 다음글' 불러올때 request에 넣어 서버에 axios 요청 보내는 로직 구현
조건 검색창 구현
- 여러개 선택한 조건값을 useState에 담아 url parameter값으로 서버에 전달하여 조건 검색창 구현
JUCHAGO
코드스테이츠
2022.09. ~ 2022.09.
프로젝트 설명
주차장 예약 웹 제작
참여 인원
4명
기술 스택
[react, node.js, react router, webpack, axios, javascript, jwt]
기여 부분
로그인, 회원가입 구현
- useContext를 이용한 jwt 토큰(access token, refresh token)을 전역 처리하여 로그인, 회원가입 구현
- 새로고침시 로그인이 풀리는 것을 막기 위해, local storage에 access token이 저장되어 있는지의 여부를 파악하여 로그인 이력 파악, setInterval로 유효시간마다 검증하여 서버에 요청을 보내고 만료된 경우 error처리 후 메인페이지로 가도록 구현
axios를 활용하여 주차장 검색 구현
서버에서 받은 token값을 받아 해당 유저의 최근 검색 내역 구현
포트폴리오
첨부파일
교육
코드스테이츠
사설 교육 | 소프트웨어 엔지니어링 부트캠프 (프론트엔드)
2022.04. ~ 2022.10. | 졸업
자기소개
Typescript, node.js 등 다양한 기술을 터득해 프로젝트를 진행하였으며, 협업 중 필요하다면 Docker, express 등을 빠르게 터득하여 프로젝트에 적용하였습니다. 또한, 모던 자바스크립트 Deep dive 책 독서 스터디들을 통해 javascript의 기본 개념과 동작원리를 습득하였습니다. 웹서비스 개발 및 운영한 경험과 기술을 습득했던 노력을 통해 향상된 역량을 이용해 입사 후 안정적이고 최적화된 서비스를 개발하고 운영할 자신이 있습니다.
[일주일 만에 Docker를 공부하여 프로젝트에 적용]
'실패를 두려워하지 말자'라는 가치관을 가지고 프로젝트를 진행하고 새로운 기술을 배워 개발 실력을 향상했습니다. 여러 프로젝트를 참여하여 향상된 개발실력을 발판으로 최단 거리 여행 루트 플랫폼인 MILROUTE 프로젝트에 참여하여 서버구축을 위해 express.js를 시도하였습니다. 당시에, 특정 오픈 api를 사용하면 CORS 에러가 발생하였습니다. cors 에러를 해결하기 위해 package.json 파일에 proxy를 설정해주어 해결했지만 배포할 때 문제가 생겼습니다. 그래서 express를 공부해 서버를 생성하고 cors 미들웨어를 사용하여 cors 에러를 해결했습니다.
또한, 프로젝트 당시 DOCKER의 사용이 필요하다는 것을 파악하고 일주일 만에 강의를 보고 개인적으로 코드를 짜보면서 Docker을 분석하고 공부하였습니다. 이러한 노력으로 Docker에 빠르게 적응하였고 프로젝트에 적용하여 aws로 성공적으로 배포하였습니다. 이 결과, cors, express.js과 DOCKER에 대해 배울 수 있었습니다. 이 경험으로 실패가 두려워 시도를 하지 않으면 발전이 없다는 것을 깨달았습니다. 이러한 도전 의식은 입사 후 빠르게 업무에 적응하여 프로젝트 수행하고 새로운
기술을 개발하는데 도움이 될 것입니다.
[48시간 만에 해결한 editor 이미지 추가 작업 및 1048576 bytes 용량 오류]
'stackoverflow clone'프로젝트와 주차자리를 찾아주는 ' JUCHAGO' 프로젝트를 진행하여 개발에 대한 이해를 쌓았습니다. 개발에 흥미가 커지면서 다양한 중대 산업재해 예방을 위한 솔루션 제품을 개발 및 공급하는 회사인 '안전왕'의 제품을 파는 쇼핑몰 웹을 제작하는 프로젝트에 참여하였습니다. 인상 깊었던 문제는 끈기 있게 거머리처럼 붙잡아 팀원과의 소통을 통해 해당 문제를 해결했던 API를 이용한 Editor 이미지 첨부 이슈입니다. 쇼핑몰 웹 제작이었기에 이미지까지 추가할 수 있는 react quill editor를 활용한 상품 등록을 구현해야 했습니다. axios를 활용해 에디터에 이미지를 넣어 서버에 보내는 작업은 그 당시 저에게 생소한 작업이었습니다. 해당 에디터에 이미지를 업로드하면 그 이미지는 base64로 변경되어 img태그 src로 들어갔고 서버에 저장하는 과정에서 오류가 발생했습니다. 이 오류를 해결하기 위해 백엔드에 axios를 이용하여 이미지를 formData로 보내 url을 받아와 img태그 src에 넣어 이슈를 해결했습니다. 또한, 이미지 용량과 에디터에 들어가는 내용의 용량이 1048576 bytes을 넘으면 에러가 발생했습니다. 이 문제는 백엔드와 소통 후에 DB에서 설정한 크기 문제라는 것을 발견했고 백엔드 측에서 크기를 늘려 이슈를 해결했습니다. 추후 비슷한 이슈가 발생 시 참고용으로 velog에 문서화하여 정리해 두었습니다.
결과적으로, 사진 추가되는 에디터를 만들어 쇼핑몰의 퀄리티를 더욱 높일 수 있게 되었습니다. 쇼핑몰 웹 제작 프로젝트에 참여해 그동안 공부했던 기술들을 활용하여 웹제작 경험을 할 수 있어 매우 의미 있는 경험이었습니다.
[변수명 통일로 깨달은 소통의 중요성]
백엔드, 프론트엔드, 기획자를 모집하여 총 4명의 팀원과 ''국방공공데이터 활용 경진대회"에 참여하여 의사소통 능력을 키웠으며 리더십까지 키웠습니다. 그 결과, 군 할인 혜택과 군인 복지 숙박 데이터를 활용하여 원하는 장소까지 최소 시간이 걸리는 루트를 알려주는 플랫폼인 MILROUTE을 완성하였습니다.
프로젝트 당시 jwt 로그인 작업 과정에서 백엔드 측에서 설정한 변수명과 프론트엔드에서 설정한 변수명이 상이하여 생겼던 이슈로 인해 소통의 중요성을 깨달았습니다. 개발은 혼자 하는 것이 아닌 백엔드, 기획자, 디자이너 등 여러 사람들이 모여서 하나의 작품을 만들기에 의사소통 능력을 키워야겠다고 결심하였습니다.
또한, 팀 내 실직적인 리더가 되어 아이디어를 기획하고 마감기한에 맞춰 일정을 세워 팀원들과 소통을 하였고 팀을 이끌었습니다. 멘토가 되어 프론트엔드 팀원에게 JWT를 이용한 로그인, 회원가입과 useContext hook을 활용한 전역 상태 관리하는 것을 멘토링하였습니다.
[다양한 스킬을 활용한 개발실력 향상]
저는 안정적인 웹 서비스를 개발하고 운영 및 유지보수하기 위해 Github와 Typescript, node.js, react, restful api, redux, Javascript, styled-component, docker 등 여러 기술을 이용해 프로젝트를 진행했습니다. 구체적으로, 백엔드와의 협업을 통해 RESTful api 이용한 login과 signin, CRUD, search기능 구현, 휴대폰 인증을 통한 id 및 password 찾기, editor구현, 첨부파일 업로드 및 다운로드 등 여러 작업을 진행하였습니다.
결과적으로, 백엔드와의 협업 경험은 서버, 네트워크에 대한 기본 지식을 쌓았으며 여러 프로젝트를 진행함으로써 개발실력 향상 및 팀원들과의 협업, 의사소통 능력을 강화할 수 있었습니다. 이러한 노력을 바탕으로 향상된 개발실력을 통해 입사 후 서비스 품질개선과 성장 동력을 가속화하는데 이바지하겠습니다. 열정과 자부심을 가지고 끊임없이 도전했던 경험들은 회사의 미래 사업가치를 창출하는데 도움이 될 것입니다.
자격증
opic
im2 | opic
2023.09.