AboutMe

2025.2
제 개인적인 흥미와 더불어 실용적인 개발을 지향하는 성향으로 인해 nix, elixir를 사용한 풀스택 개발자로 전향하고자 하는 강햔 의향이 있습니다.
특히 ash framework의 디자인 철학에 깊게 공감하고 있습니다.
현재 phoenix, ash framework를 학습하고 개인 프로젝트를 진행하고 있으며 해당 업으로는 경력과 조건들을 상당 부분 포기하더라도 가고자 하는 의지가 있으니 관심 있으신 분은 연락 바랍니다.

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

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

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

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

🐱깃허브

Main Tech Stack

  1. typescript, react, css, remix.run, fp-ts
  2. nextjs, prisma, tailwind, react-query, html, gsap, effect community, d3(visx)

Studying
Category theory, Elixir, Phoenix, Haskell, Rust, effect community

프론트엔드 개발자 대상으로 온라인&오프라인 합동으로 참여할 수 있는 모각코를 운영 중입니다.
참여 원하시는 분은 프론트 모각코 ← 확인해주세요 😋


경력 사항

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


텔레스코프

기간: 2024.5 ~ 2024.11

Teck stack
nextjs, tailwind, strapi

하루 4시간 이상 프리랜서로 일했습니다.
주요 기능인 여행 플랜 관련해서 여행 플랜 작성, 여행 플랜 공유 등의 기능을 만들었습니다.

https://www.tel-co.net/


리멤버

2023.1 ~ 2023.3

퇴사 사유

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


프리윌린

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

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

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

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

도메인 베이스를 기반으로 정의, 폴더 스트럭쳐링을 나누었습니다.

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

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

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

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

참고한 내용들)
여러 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. 프로덕트 전반적인 도메인에 해당하는 공통 스키마를 정의
  3. 코드 스타일, git 브랜치, api 테스트, 단일 테스트, 성능 최적화, 구조, 서버 컴포넌트, 클라이언트 컴포넌트, ISR, 라우팅 등에 대한 컨벤션을 정하고 적용시켰으며 팀원들을 교육하였습니다.
  4. 3개의 프로젝트를 동시에 진행하면서 각각의 프로젝트들이 일정에 맞출 수 있도록 유동적으로 투입되어서 작업했습니다.

퇴사 사유

입사 전부터 정해져있던 무리한 공식 일정과 여러가지 역할로 인해 주로 새벽까지 일하고 매 주말에도 일하면서 건강이 나빠져 마일스톤1에 맞춰 제작 후 퇴사했습니다.

Projects


Teck stack
next13 app, turborepo, tailwind, storybook, zod, zodios, react-query, valtio, effect/data

개요

문해력을 향상시키기 위한 비문학, 문학에 대해서 지문별로 다양한 케이스의 학습을 할 수 있는 학원을 위한 솔루션 입니다.

개발사항

프로젝트 전체 구조, 기술스택 설계와 스키마 정의를 하였습니다.
구조학습 기능을 작업하였습니다.
문장, 단어와 관련된 공통 컴포넌트들을 제작했습니다.

Teck stack
next13 app, turborepo, prosemirror, remirror, tailwind

개발사항
remirror와 prosemirror을 통해 지문, 문단, 문장을 구별해서 저장할 수 있는 에디터를 만들었습니다.


두디스

재직 기간: 2022.7 ~ 2023.01 (6개월)

Front-End Engineer로 근무 (1인)

메인 프로덕트 전체 frontend project 설계 & 개발, prisma를 사용한 데이터베이스, 백엔드 비즈니스 로직 작성

turborepo를 도입하여 monorepo프로젝트로 변환

퇴사 사유
프로젝트를 성공적으로 마치고 지원사업에 통과했으며 계약상의 종료입니다.

Projects





프리윌린

재직 기간: 2019. 8 ~ 2022. 2 (2년 7개월)

Front-End Engineer로 근무 (총 프론트엔드 팀 6명)

초기 멤버로서 여러 문화(코드리뷰, 회고, KPT, 개발 발표회, 퇴근 후 스터디, Personal Review, 핵심 기능 개발 완료 후 리뷰 등)을 주도하에 만들고 지속적인 디벨롭을 하였습니다.

초기 앱만 있을때 입사해서 웹버전을 개발하고 알토스 시리즈A 투자를 받았으며 현재의 매쓰플랫2까지 개발 완료 했습니다.

퇴사 사유
조직이 커지면서 업무 방식이 점점 워터폴화 되고 주도적으로 일할 수 있는 파이가 점점 줄어드는 것을 느꼈습니다.
또 의사 결정 단계가 많아지고 과정이 복잡해져서 빠르게 새로운 시도를 해보기 어려운 환경이 되었습니다.
그래서 새로운 시도를 할 수 있는 문화, 주도적으로 일할 수 있는 환경에서 일하고 싶은 갈증이 느껴져서 퇴사하게 되었습니다.

Projects






이트라이브

재직 기간: 2016. 11 ~ 2018. 11 (2년 1개월)

UX팀의 Scripter 프로젝트에 스크립트 로직, 사용자 인터렉션에 대한 스크립트, 애니메이션에 대한 스크립트로 활동을 했습니다.

퇴사 사유
재직 당시 SPA라는 개념이 대중화되면서 프론트엔드 직무에 대한 관심이 생겼습니다.
그 동안 퍼블리싱 한 페이지에 스크립트를 짜고 백엔드 로직과 섞이면서 굉장히 많은 커뮤니케이션 비용이 들었습니다.
백엔드 로직과 한 페이지 내에 섞이지 않는다는 점과 컴포넌트를 통해 재사용한다는 것이 제 심금을 울렸고, 해당 직무로 커리어를 발전시키고 싶어 퇴사했습니다.


학력 사항

동양미래대학교 (2011. 3 ~ 2016. 2)

컴퓨터 소프트웨어정보과 졸업 (학점 4.04/4.5)


Side Projects

덮집회의 (2022. 7 ~)

백, 프론트 개발 모든 분야를 맡아서 했습니다.

도메인 기반으로 폴더 구조를 구성했고 데이터 모델링을 적극적으로 하되 가벼운 프로젝트니 레이어단을 복잡하게 구성하지 않고 API, domain, view단 정도로 구성했습니다.

remix.run을 통한 nested layout을 사용하여 각 페이지간에 공용 데이터를 상위 레이아웃으로 받아와 기존의 nextjs의 페이지처럼 페이지마다 필요한 데이터를 전부 가져올 필요가 없습니다.

그 동안 postcss만으로도 충분하다고 생각했는데, 호기심이 생겨 tailwindcss를 시도했습니다. 생각 외로 좋더라구요.

postgresql을 supabase에 올린 후 prisma를 통해 서버리스 서버단에서 컨트롤했습니다.

tailwind랑 잘 맞는 조합은 radix-ui인 것 같습니다. headless-ui가 기능이 부족해 headless한 ui라이브러리를 찾는 중에 발견했는데 정말 좋았어요.

fp-ts를 통한 함수형, 타입클래스를 적극 활용했습니다.

리펙토링하며 fp-ts가 3버전으로 올라 fp-ts/schema, fp-ts/core를 통해 domain schema 정의를 하였습니다. 사용에 대한 자세한 내용은 이 글을 봐주세요.

구성원: 디자이너 1, 개발자 1(본인)

기여: 개발 전체 100%

Tech stack
remix(ssr), immer, prisma, postgresql, fp-ts/schema, fp-ts/core, supabase, valtio, postcss, tailwindcss, vercel, headless-ui, radix-ui

Posted (2022. 3 ~)

fp-ts의 TaskEither, TaskOption, IO 등을 활용한 Railway programming 패턴을 활용해 서버사이드에서의 에러처리에 중점을 두었습니다.

비즈니스 로직에도 Monad기반의 functional한 프로그래밍 로직을 주로 사용하였으며, 각각의 큰 개념을 도메인으로 묶었습니다.

remix 특유의 nested layout을 활용하여 outlet context로 상태를 관리했습니다.

데이터 전달은 주로 remix server side의 쿠키 세션 스토리지를 통해 했습니다. (쿠키 세션 스토리지는 클라이언트의 쿠키를 통해 서버에 있는 세션 데이터를 암호화하여 헤더에 httpOnly로 넘겨 서버 - 클라이언트간에 데이터를 유지, 전달하는 방법입니다. )

백엔드 개발자가 회사 업무가 바빠 중단되었습니다….🥲

구성원: 디자이너 2, 백엔드 1, 웹 프론트 1(본인), IOS 개발자 1, 안드로이드 개발자 1

기여: 웹 100%

Tech stack
remix(ssr), fp-ts, chakra-ui, emotionjs, postcss, vercel


장기 학습 프로젝트

추상대수학
elixir
Rust in Action and The Rust Programming Language
get programming with haskell


ETC

프리윌린에서 진행한 직무 인터뷰

무려 5년전 포폴


TMI Info

age: 31
mbti: INTP-A
email: rjcnd123@gmail.com
tel: 010-5300-3***

동양미래대학 소프트웨어정보과 수료
육군 만기 전역
instagram

자격증
정보처리기사(2020)
정보기기운용기능사(2012)
그래픽스운용기능사(2012)

학원
패스트 파이브 리엑트 과정 수료(2019)
그린 컴퓨터 아카데미 프론트엔드 과정 수료(2016)