안녕하세요. 저는 6년 차 프론트엔드 개발자로, 리엑트, 타입스크립트를 주로 사용하며 DDD, Feature Sliced 패턴 등에서 얻은 통찰력을 바탕으로 한 효율적인 개발에 대해서 관심이 많습니다.

제 개발 철학은 그동안의 경험을 통해 실용주의적 프로그래밍을 지향하며 Ash Framework의 Resource-oriented, Declarative Design Application Framework에 깊게 공감합니다. 추상화의 깊이를 최대한 줄이면서 명시적인 Domain knowledge를 설정하여 팀원들 간에 공유하는 것을 중요시합니다. 그로 인해 암시적 지식을 명시적 지식으로 끌어올리는 것이 투자 비용 대비 높은 업무의 효율성을 가져온다고 생각합니다.

모든 개발의 최종 목적은 좋은 프로덕트를 만들어 유저 만족도를 높이는 것이라 생각하기 때문에 프로덕트에 최대한의 효율을 낼 수 있게끔 하는 실용주의적인 개발을 지향합니다.

저는 개발자들이 어떻게 하면 성장하면서 효율적으로 일할지에 대한 방법을 고민하며, 논의하고 실무에 적용하는 것을 좋아합니다. 이전 회사들에서 코드리뷰, KPT, PR, 스터디 발표 등 다양한 문화를 만들고 개선했습니다.

지금까지 프론트엔드 팀에서 회사의 중요 프로젝트 구성을 총 4번을 했습니다. 늘 프론트엔드에서의 아키텍처를 담당했으며 기술 선두적인 역할을 해왔습니다. 실무자로써 공통 컴포넌트, 공통 모듈, 도메인 스키마 정의 및 활용, 회사의 핵심 비즈니스 모델 같은 여러 기능들을 작업했습니다. 프로젝트의 A-Z를 여러 번 경험하면서 유연함이 필요함을 배우고 틀에 얽매이지 않게 적용시킵니다.

제 성격은 호기심 많은 성격으로, 새로운 기술을 배우거나 깊게 파고드는 것을 좋아합니다. 반짝이는 눈으로 제품에 가치를 더하는 더 좋은 방법을 찾는 것을 진심으로 즐깁니다. 내향적이지만 동료들과 협력하고 토론하는 것을 좋아합니다. 효과적으로 일하기 위하기 위해서는 협업이 필요하고, 좋은 협업은 상호 신뢰에서 나온다고 믿습니다. 그래서 저는 항상 프로젝트의 동료들과 서로 신뢰를 쌓고, 동료의 고충을 이해하며, 같이 문제를 해결하고자 하는 태도를 가지고 있습니다.

**🐱깃허브 - (MySystem - nix flake base) **🐸블로그 링크

Tech Stack

  1. typescript, react, css, tailwind, nextjs
  2. html, react-query, nix
  3. effect, d3(visx), prisma, elixir, ash, phoenix, haskell

Studying ash, elixir, phoenix, nix

인적 사항

나이 32
이메일 [email protected]
전화번호 010-5300-3599

경력 사항


경력 사항은 날짜 내림차순으로 작성되었습니다.

아이아이컴바운드

계약기간: 2025.4.28 ~ 2025.5.23(단기) 이후 2025.6.02 ~ 2025.12.31(2025년 계약)

젠틀몬스터 사이트 포켓 콜렉션 프로모션 제작, 운영 사이트 해외 법인 오픈(미국, 중국, 호주, 싱가포르, 대만, 일본), 성능 최적화, 운영 대응, 온갖 버그 수정

최적화

리펙토링

메인, 제품 리스트, 스토어, 헤더 리펙토링을 했습니다.

국제화

각 국제화를 하며 해당 국가에 맞는 계정 연동(wechat, line 등) 및 국가별 처리를 했습니다.

텔레스코프

계약 기간: 2024.5 ~ 2024.11 (6개월 기간 계약)

Teck stack nextjs, tailwind, strapi

주요 기능인 여행 플랜 관련해서 여행 플랜 작성, 여행 플랜 공유 등의 기능을 만들었습니다.

리멤버

기간: 2023.1 ~ 2023.2

퇴사 사유

개발팀에서의 현재 방향, 회사에서 개발팀에게 하는 기대와 제가 팀에 기여할 수 있는 것으로 기대 했던 것들이 맞지 않아 나오게 되었습니다.

프리윌린 (기존에 다니던 회사에서 프리랜서로 일했습니다)

계약 기간: 2023.08.08 ~ 2023.12.29 (5개월)

기존 프로젝트 리뉴얼에 대한 아키텍쳐, 프로젝트 설계 메인 담당으로 계약했습니다. 가지고 있던 문제점들을 모두와 지속적인 커뮤니케이션을 통해 해결 방법을 고안했습니다.

코딩 작업으로는 코어한 모듈, 라이브러리, 공통 컴포넌트를 작성하고 학생의 자기주도학습 프로젝트를 했습니다.

비즈니스 도메인을 기반으로 한 통합 Hexagonal, Onion, Clean, Feature Sliced(front단) 에 프로젝트에 맞게 partial하게 적용을 시키는 구조를 고안했습니다.

도메인은 전부 스키마 기반으로 작성됩니다. ‣ 인/디코딩을 통해 따로 추상화된 어댑터 레이어를 두지 않고서도 Port에만 의존적으로 사용할 수 있으며 그로 인해 엔지니어링 복잡도를 줄이고 러닝커브를 줄일 수 있습니다.

특성 기반의 패턴을 두어 아키텍쳐 마일스톤 1에서는 Rust의 Trait, Struct의 개념을 활용합니다. 이는 비즈니스 도메인 스키마와 별도로 어플리케이션 서비스에서 주로 활용되어 집니다. 여러 도메인에서 동일 trait에 대한 비즈니스 로직을 특성 단위로 분리함으로서 작업 공수가 크게 줄어듭니다. 하위 레이어단에서 도메인 비즈니스 로직에 의존되는게 아닌 trait에 의존되는 형태로 구성할 수 있어서 융통성 있는 구성이 가능합니다.

서비스 레이어단에서는 파사드(Facade) 패턴을 사용하여 각 비즈니스 로직간의 상호 의존성을 줄이고 유한상태머신(FSM) 기반의 처리를 할 수 있게 했습니다.

상태관리는 유저의 use case 특성에 맞게 사례별로 나누었습니다. 앱 기반의 상태는 persist(local, session storage) Route 기반의 상태는 스키마를 기반으로 한 RouteParams, SearchParams를 적극 활용합니다. context기반의 상태는 기존 팀원들에게 익숙한 mobx를 사용합니다.

컴포넌트는 style을 따로 inject 받으며 기본적으로 추상화된 headless component가 design system에 존재합니다. style에 대해 inject를 함으로써 각각의 프로젝트에서 파생(derived) 컴포넌트를 사용하게 됩니다. 컴포넌트의 구성 요소 규모에 따라 headless compound component 으로 작성될 수 있습니다.

react-router의 DataApi를 활용하여 기존의 직렬적인 네트워크 요청을 병렬, 또는 선 fetch 후 바로 그리는 형태로 CLS를 최적화 할 수 있는 구성을 합니다. 이로 인해 비약적인 성능 개선을 할 수 있습니다.

3의 법칙이라는 말이 있습니다. 비슷한 케이스가 3번 반복된다면 추상화를 고려하자는 말인데요. 추상화시 복잡성 증가를 줄이기 위해 비슷한 패턴을 찾아서 기존의 구성되어 있던 레이어에 Trait, Typeclass 형태로 일반화 시키는 게 좋다고 생각합니다.

참고한 내용들) 여러 article, framework, library, programming language principle partial DDD series, Feature Sliced, All together(DDD, Hexagonal, Onion, Clean, CQRS …)

DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together

Доклад: Feature Sliced — Архитектура Frontend-проектов / Илья Азин

젤리페이지

재직 기간: 2023.03 ~ 2023.06 (3개월)

Web Frontend 팀(4인) 테크 리드

웹 프론트엔드 프로덕트 프로젝트들 전체 설계 turborepo + pnpm 모노레포로 제작하였으며 내부의 공통 모듈, 스타일, 컴포넌트 패키지를 목적에 따라 분리

역할

  1. 전체 프로젝트들 구조 설계하고 내부의 코어 로직 개발 및 공용 컴포넌트 개발
  2. 프로덕트 전반적인 도메인에 해당하는 공통 스키마를 정의

그 외 추가 상세는 여기서 볼 수 있습니다.