Published on

[시리즈][좋프엔지] 서론

Authors
  • avatar
    Name
    Kim, Dong-Wook
    Twitter
Table of Contents

Intro

좋은 프론트엔드 개발자 되기 시리즈를 연재하려고 합니다.

지난 4년 동안 외주 및 풀타임 프론트엔드 개발자로서 현업에 있었습니다. 지난 시간동안 엔지니어링 적으로 다양한 문제점들을 겪었고 때로는 우아하게, 가끔은 지저분하게 문제를 해결했습니다.

문제를 이렇게 해결했으면 내 코드가 좀 더 잘 쓰일 수 있지 않을까 반성하면서 시리즈를 연재하려고 합니다.

주로 타입 안전성을 지키는 방법과 사이드 이펙트를 최소화하는 방법에 대해 소개할 예정이며 다음과 같은 주제로도 글을 쓸 예정입니다.

Core

  • 사이드 이펙트를 위임하는 방법
    • Browser 주소창을 이용한 영속성 위임하기
    • Uncontrolled State를 이용한 State 위임하기
    • Funnel을 설계하는 방법
  • What과 How를 분리하는 방법
    • React Suspense & ErrorBoundary(Making SmartSuspense)
    • React Hook Form with Resolver
    • Compound Pattern
  • 컴포넌트 다형성
    • Slot 컴포넌트 뜯어보기
    • as vs asChild
  • 컴포넌트 형상관리
    • Make & Skeleton & Render 패턴
  • 데이터 모델링(with. 대수적 데이터 타입)
    • Parse, Don't validate의 의미
    • Tagged Union으로 Optional Chaining 피하기
  • ts-belt로 알아보는 함수형 프로그래밍의 장점과 단점
    • 데이터 파이프라이닝
    • Option 타입 VS Result 타입()
    • CurryingPartial Application
    • Opaque Type
    • Lazy Evaluation

Sub

  • React를 더 잘 쓰는 방법
    • children as prop
    • 나만의 Type Extraction Utility 만들기
  • Typescript를 더 잘 쓰는 방법
    • 타입을 좁히는 기술(as const)
    • 타입을 존중하는 기술(satifies)
    • tsconfig 옵션 뜯어보기
  • 디자인 시스템 설계하기
    • 디자인 시스템의 본질
    • 설계 원칙
  • React-Query를 잘 쓰는 방법
    • Optimistic Update
    • Query Key를 잘 관리하는 방법
  • Graphql with Relay
    • Relay 처럼 생각하기
    • Rest API를 GraphQL 처럼 사용하는 방법(with. Caching)
  • 자동화
    • 디자인 시스템 자동화하기(with. style-dictionary, svgr)
    • Mock 서버 생성 자동화하기(with. OpenAPI Spec)
    • Github Action을 이용한 동료의 실수 방지하기
  • 키워드
    • Feature Flag
    • TC39
    • 불변성
    • 힌들리 밀러 타입 시스템
  • Animation 잘쓰기
    • AnimatePresence 컴포넌트 동작원리
    • Fabrics

Opinion

  • 비지니스 고려하기
    • 유지보수가 쉬운 코드 vs 빠르게 실행가능한 코드
    • 제품과 코드의 추상화 수준 고려하기
  • 함수형 프로그래밍은 왜 호불호가 갈릴까

Thanks to

지난 4년 동안 개발자로 활동하며 다양한 일들이 있었습니다.

대학교 3학년 때는 하루에 4시간만 자면서 코딩하기도 했고, 첫 직장은 3개월만에 희망퇴직을 받아 퇴사했던 경험도 있었습니다.

가끔 너무 가혹하지 않나 싶을 정도로 본인을 밀어붙일 때도 있었고, 그렇게까지 하지 않아도 되는데 내가 만든 제품에 부끄럽지 않기 위해 밤새서 일을 끝낸 적도 많았습니다.

이런 저를 누군가는 싫어할 때도, 누군가는 좋아할 때도 있었던 것 같습니다. 또 누군가는 "그렇게 해도 아무도 알아주지 않는데 왜 그렇게 열심히 하냐"고 할 때도 있었습니다.

그런데 저는 개발, 그 중에서도 프론트엔드를 사랑합니다. 그 누구도 본 적 없는 인터렉션, UI를 통해 유저들의 놀라움을 볼 때면 그런 고생이 다 잊혀지는 것 같습니다. 제가 진심인 이 분야를, 오래오래 더 발전시키고 싶습니다. 언젠가 이 분야에 진심인 분들과 함께 일하는 날이 오길바랍니다.

제게 항상 칭찬과 잘하고 있다고 말씀해주시는 혜미 누나, 또 이직 과정에서 방황하던 제게 좋은 기회를 주셨던 어떤 분께 감사인사를 드립니다.

아무튼 두서가 없었지만, 앞으로 작성할 글이 프론트엔드 분야에 종사할 분들께 도움이 되면 좋겠습니다.