채용공고 올리기

정인성님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
정인성
직업
프론트엔드 개발자
간단 소개

1. 지식을 남들과 공유하며 배움이 배가 되는 기술 블로그를 운영하고 있습니다. 2. 사용자 경험을 위해 SPA의 단점인 초기 로딩 시간을 57% 단축하며 웹사이트 성능을 개선했습니다. 3. 사용자가 누르는 버튼들의 반응 시간을 고려하며 0.6초의 지연 시간을 실시간으로 개선했습니다. 4. Recoil을 활용하여 사용자가 화면에서 수행한 작업 데이터들을 자유롭게 조작할 수 있습니다.

기술 스택

기술 스택

React, Firebase, AWS, react-query, JavaScript, TypeScript

프로젝트

프로젝트명

에코이코 - 환경 지식을 얻고 귀여운 멸종 위기 동물을 키우며 보상도 받는 올인원 환경 인식 개선 앱 테크 서비스

소속/기관명

스위프 5기

프로젝트 기간

2024.06. ~ 2024.08.

프로젝트 내용
  • Mock Data를 활용하여 작업 시간 차이 극복

    • 원인 : API 작업이 아직 완료되지 않은 상태에서, 프론트엔드 개발이 진행되어야 했고, 이로 인해 API 응답을 기다리는 동안의 작업 공백이 발생

    • 해결 방법

      1. API 명세서에 맞춰 서버의 응답값과 동일한 Mock Data를 생성하여, API 완료 전이라도 컴포넌트 개발과 테스트를 진행할 수 있도록 함

    • 성과 : Mock Data를 활용하여 API 작업과 컴포넌트 개발을 병렬로 진행, 협업 속도가 개선되었고, 대기 시간 없이 개발 일정 단축

  • 에코이코 유저 데이터 전역 상태 관리

    • 원인 : 여러 컴포넌트에서 State & Props로 데이터를 전달하는 방식은 Props Drilling을 발생시켜 코드의 복잡도와 유지보수의 어려움

    • 해결 방법

      1. 각 컴포넌트에서 공유해야 할 데이터를 분석하여, Recoil의 Atom을 사용해 전역 상태로 관리

    • 성과 : 전역 상태 관리 도입으로 컴포넌트 간의 데이터 흐름이 단순화되고, 유저 데이터를 요청하는 API 호출 횟수가 4번 → 1번으로 감소

  • 토큰이 담겨지는 쿠키의 보안 관리

    • 원인 : 쿠키에 저장된 사용자 토큰이 XSS, CSRF, 쿠키 탈취 공격에 노출될 위험이 존재

    • 해결 방법 → 쿠키가 가져와지지 않는 문제

      1. 로그인 시 서버로부터 받은 토큰을 AES 암호화하여 쿠키에 저장하고, 쿠키에 Secure 속성을 적용해 보안 강화

    • 성과 : 민감한 정보를 암호화하여 보호하고, 쿠키 위조 및 탈취 방지와 함께 데이터 무결성을 보장

  • 비동기 데이터의 상태 관리

    • 원인 : 비동기 데이터 처리에서 에러, 로딩 상태, 리패칭 등의 상태를 State로 관리하여 코드가 복잡해지고 유지보수가 어려워짐

    • 해결 방법

      1. TanStack Query를 도입해 로딩 & 에러 상태 , 리패칭 등을 간소화

    • 성과 : 3가지의 비동기 데이터 상태 → TanStack Query의 옵션으로 단순화하고, 코드 유지보수와 확장성 개선

프로젝트명

맛남의 공간 - 레시피를 공유하면서 요리에 재미를 더하게 하는 온라인 커뮤니티 서비스

소속/기관명

개인

프로젝트 기간

2023.12. ~ 2024.02.

프로젝트 내용
  • 웹 사이트 성능 개선

    • 원인 : 프로젝트가 고도화되면서 초기 로딩 시간이 길어져 사용자 이탈로 이어질 가능성이 높아짐

    • 해결 방법자세한 개선 과정 보기

      1. 이미지 Lazy Loading을 적용하여 사용자 화면에 보이는 사진만 로드하도록 개선

      2. React Lazy와 Suspense를 사용하여 chunk를 나눠 로딩 시간을 단축

    • 성과 : 페이지 초기 로딩시간을 2.6초 → 1.1초까지 단축

  • 좋아요 반영 시간 문제 개선

    • 원인 : 사용자가 좋아요를 눌렀음에도 즉시 반영되지 않고, API 지연 시간만큼 기다려야 하는 문제 발생

    • 해결 방법자세한 개선 과정 보기

      1. TanStack Query의 낙관적 업데이트를 적용하여, 좋아요가 즉각적으로 반영되도록 개선

    • 성과 : 좋아요 API의 0.6초 지연시간 → 실시간으로 반영되도록 개선하여 사용자 경험(UX)를 향상

  • 레시피 공유 서비스 상태 관리

    • 원인 : 서비스가 발전하고 데이터가 점점 많아짐에 따라, 데이터 관리가 복잡해지고 유지 보수에 어려움이 발생

    • 해결 방법 → 데이터 관리 전략 보기

      1. Recoil을 사용해 전역적으로 관리해야 할 데이터와, State & Ref를 사용해 지역적으로 관리해야 할 데이터를 명확히 구분

      2. 마인드맵을 통해 데이터 흐름을 시각화하여 서비스 내의 데이터를 이해하고 관리

    • 성과 : 불필요한 Props Drilling을 제거하고, 변경이 필요한 컴포넌트들만 리렌더링되도록 최적화하여 비용 절감과 유지보수성을 향상

  • 지속적 배포(CD) 환경 구축

    • 원인 : 서비스의 변경사항을 AWS에 지속적으로 반영하는 작업이 번거로움

    • 해결 방법자세한 CD 환경 구축 보기

      1. GitHub Actions를 사용하여 main 브랜치에 푸시할 때 자동으로 S3와 CloudFront에 변경 사항을 반영하도록 설정

    • 성과 : 3단계 배포 프로세스를 자동화하여, 한 번의 push로 서비스의 변경사항이 즉시 반영되도록 하여 배포 효율성 및 안정성을 향상

  • AWS로 도메인 배포 & HTTPS 배포

    • Amazon S3를 사용하여 정적 웹 사이트 호스팅

    • CloudFront를 이용해 전 세계에 분산된 CDN 엣지에서 정적 파일을 서빙하고, 캐싱을 적용하여 로딩 속도를 최적화

    • Route 53과 ACM을 사용하여 도메인 및 HTTPS 설정

자격증

자격증명

정보처리산업기사

점수 | 발급기관

- | 한국산업인력공단

취득연월

2023.09.

자격증명

AWS Certitfied Solutions - Architect (SAA-C03)

점수 | 발급기관

- | Amazon

취득연월

2022.12.

자격증명

AWS Cloud Practioner (CLF-C01)

점수 | 발급기관

- | Amazon

취득연월

2022.10.

포트폴리오

URL

link

에코이코

URL 링크
link

맛남의 공간

URL 링크
link

Github

깃허브
link

기술 블로그

티스토리
link

노션 이력서

노션

교육

소속/기관명

향해 99

종류 | 전공

사설 교육 | 프론트엔드 - React

재학 기간 | 재학 상태

2022.05. ~ 2022.08. | 졸업

소속/기관명

한국IT전문학교

종류 | 전공

대학교(학사) | 컴퓨터보안

재학 기간 | 재학 상태

2021.01. ~ 현재 | 재학 중

자기소개

자기소개

나의 강점

스스로 무너지지 않고 멘탈을 잘 잡아가는 방법

학교 심화 프로젝트를 진행하던 중, 함께 하던 백엔드 팀원이 참여하지 못하게 되어 혼자서 프로젝트를 완성해야 했던 경험이 있습니다.

프로젝트 관리나 도움을 줄 교수님도 없이, 기획부터 개발, 배포까지 모든 과정을 혼자 감당해야 했습니다.

처음엔 막막했지만, 핀터레스트를 통해 디자인 영감을 얻고, 그동안 쌓아온 개발 지식으로 하나씩 개발해 나갈 수 있었습니다.

특히, AWS 자격증 취득 경험 덕분에 프로젝트를 로컬 환경을 넘어 인터넷 세상으로 배포할 수 있었고, 역경을 이겨낸 결과는 심화 프로젝트에서 3등이라는 성과로 이어졌습니다.

이처럼 누구나 어려움을 겪고 무기력해질 때가 있다고 생각합니다.

그러던 중, NBA 유명 농구 선수 아데토쿤보의 인터뷰에서 큰 위로와 동기부여를 얻었습니다.

그가 결승에 오르지 못할 때 한 기자가 “이번 시즌이 실패라고 생각하시나요?”라는 질문을 던졌고, 그는 이렇게 답했습니다.

“당신은 매년 승진을 하시나요? 그렇지 않다면, 당신은 매년 실패하는 건가요?” 이 말은 저에게 자신감을 북돋아주었고, 우리는 모두 매일 목표를 향해 달리고 있으며, 과정에서 실패를 두려워하면 안된다는 것을 깨닫게 해줬습니다.

이러한 실패를 두려워하지 않고 끝까지 도전하는 자세는 팀과 회사에 긍정적인 영향을 줄 것이라고 생각합니다.

문제를 해결하는 힘

특정 언어에 완벽하지 않더라도, 문제에 직면했을 때 이를 해결할 수 있는 능력을 갖추고 있습니다.

부트캠프 최종 프로젝트에서는 1:1 채팅 기능을 구현하기 위해 기능을 모듈별로 분리하고, 데이터 흐름과 동작 원리를 철저히 테스트했습니다.

유저가 보내는 채팅의 중복 문제와 소켓 데이터 송수신의 오류를 해결하기 위해 3일간 백엔드 팀원들과 밤낮없이 노력했습니다. 기능을 성공적으로 구현했을 때, 팀 전체의 에너지를 높혔습니다.

개발 과정에서는 로직이 예상대로 동작하지 않거나, 새로운 기술을 도입해야 하는 도전적인 상황을 자주 마주합니다.

이런 상황에서는 특정 기능을 분리하여 각각의 문제를 세부적으로 분석하고, 해결 방안을 찾습니다. 디버깅을 통해 데이터 흐름을 추적하고, 예상과 실제 동작을 비교하며 문제를 해결하는 것이 제 접근 방식입니다.

이러한 문제 해결 능력을 바탕으로 팀원들과 적극적으로 소통하고 협력한다면, 더 큰 문제도 해결하여 팀의 사기를 높이고 회사의 성과에도 기여할 수 있을 것입니다.

성장 과정

게임만 했던 내가 바뀌었던 이유

프론트엔드 개발자가 되기 전, 저는 학교 수업이 끝나면 친구들과 게임을 하며 시간을 보내는 평범한 학생이었습니다.

군 복무를 마친 후, 진로에 대해 진지하게 고민하기 시작했고, 그때 매일 저녁 게임을 즐기던 생활을 멈추고 개발자의 길을 선택하게 되었습니다.

그러던 중 '향해99'라는 프론트엔드 부트캠프에 지원했고, 이곳에서 본격적인 개발자로서의 성장을 시작했습니다.

부트캠프에서는 매주 팀이 바뀌었고, 아침 9시부터 밤 9시까지 팀원들과 함께 협력하며 공부했습니다. 이 과정에서 주변 사람들과 환경이 얼마나 큰 영향을 미치는지 깊이 깨달았습니다.

처음에는 자바스크립트의 복잡한 동작 원리보다 간단한 문법을 익히고, 리액트를 사용해 기능 구현을 시작했습니다. 지금 보면 비효율적인 공부 방법이었지만 개발에 재미를 느끼기엔 충분했습니다.

이 모든 선택과 경험은 지금의 저를 있게 한 소중한 추억이자, 개발자로서 성장할 수 있었던 원동력입니다.

댓글