주요업무
뱅크샐러드 AI Native Web Engineer는 이러한 업무들을 주로 수행합니다.
[적극적인 A/B 테스트 진행]
사용자 경험과 제품 품질을 빠르게 개선하기 위해 A/B 테스트 기반의 실험 문화를 적극적으로 실천합니다. 다양한 기능 및 UI/UX 개선안을 실험 설계 → 구현 → 분석까지의 전 과정을 반복적으로 수행하며, 실험 데이터를 기반으로 한 인사이트 도출과 의사결정의 정교함을 높이고 있습니다.
[다양한 직군과 협업하는 자율 조직 문화]
PM, DA, 디자이너, 엔지니어 등 다양한 역할의 구성원이 4명에서 15명 규모로 구성된 하나의 목적조직 내에서, 마치 작은 스타트업처럼 높은 자율성과 책임감을 바탕으로 서비스/제품을 개발하고 운영하고 있습니다. 각 직군 간 경계를 넘나들며 밀접하게 협업하고, 실시간 피드백과 상황에 맞는 유연한 의사결정을 통해 빠르게 가설을 검증하고 방향을 조정합니다.
[목적조직 내 프론트엔드 개발자의 역할]
하나의 목적조직 내에 1~3명의 Frontend Developer가 소속되어 있으며, 단순한 기능 구현을 넘어서 서비스 방향성과 개발 문화에 기여하고, 구성원 간의 상호 피드백을 통해 함께 역량을 성장시키고 있습니다.
[Frontend 챕터 기반의 기술 협업]
여러 목적조직에 배치된 프론트엔드 엔지니어들은 챕터 단위로 유기적으로 협업하며, 주기적인 챕터 위클리를 통해 기술 부채를 점검하고 기술적 방향성을 함께 논의합니다. 좋은 코드 디자인과 아키텍처에 대한 관점을 공유하고, 학습한 내용을 정리 및 아카이빙하여 조직 내 지식 자산으로 축적하고 있습니다. 이러한 맥락 기반의 지식은 코드 리팩토링 및 기술 개선의 기준으로도 활용됩니다.
[선언적 UI와 유지보수 가능한 React 코드 설계]
React의 선언적 프로그래밍 철학에 대한 이해를 바탕으로, Suspense와 ErrorBoundary 등을 적극적으로 활용하여 예측 가능하고 안정적인 사용자 경험을 구현하고 있습니다. 이를 통해 코드의 가독성과 유지보수성을 높이고, 복잡한 상태 관리나 비동기 흐름에서도 일관된 동작을 보장하는 구조를 설계합니다.
[Type-Safe한 코드 기반 설계]
Zod, 커스텀 타입 유틸, 타입 가드 및 타입 단언(Type Assertion)을 활용하여 전반적인 코드베이스의 타입 안정성을 확보하고 있습니다. 타입 추론(Type Inference)을 적극적으로 활용해 개발 생산성과 에디터 지원을 극대화하며, 정적 타입 체크를 통해 런타임 오류를 사전에 방지하는 신뢰도 높은 개발 환경을 구축하고 있습니다.
[디자인-개발 협업 자동화]
디자인 토큰은 Tailwind Preset 형태로 시스템화되어 있으며, Radix Primitives를 기반으로 한 코어 컴포넌트로 구성된 디자인 시스템을 통해 일관된 UI를 구현합니다. 유연하면서도 재사용이 용이한 설계를 바탕으로, 핵심 로직은 코어 컴포넌트에 의존하되, 다양한 디자인 요구사항도 유연하게 대응할 수 있는 구조를 갖추고 있습니다. 특히 Figma의 Code Connect 기능을 활용하여 디자인 시안을 코드로 자동 변환함으로써, 디자이너와 개발자 간 협업 효율을 높이고, 반복 작업을 최소화하고 있습니다.
[모노레포 운영, CI/CD 자동화]
팀별로 각 서비스는 마이크로 프론트엔드로 배포/운영되며, 각 서비스의 코드는 NX 기반의 모노레포로 운영합니다. 공통 로직과 서비스별 로직을 적절히 분리하여 공용 코드를 재사용하고, 서비스별 로직은 독립적으로 관리하여 재사용성과 도메인 응집도를 동시에 확보합니다.
프론트엔드 서버는 self-hosted 방식으로, 배포시점에 build를 통해 도커 컨테이너를 생성해 AWS ECR에 업로드하고, AWS의 EKS를 활용하여 K8S Pod을 통해 서빙됩니다.
GitHub Action 기반의 CI/CD 환경을 기반으로 간단한 명령어를 통해 테스트, 빌드 및 배포가 가능한 환경입니다.
[API 명세관리 및 핸들러 자동생성]
Server와 Web 간의 API나 WebView Native 간의 Interface는 Proto로 정의한 뒤 각 플랫폼에 맞게 타입 및 API 핸들러가 자동 생성되어 인터페이스 일관성과 안전성을 확보합니다.
[테스트 용이성]
자동생성된 Interface를 기반으로 API 목데이터를 생성하고, MSW를 활용해 목데이터를 서빙하여 개발 간 서버 의존성 없이 특정 시나리오를 재현하고 테스트할 수 있습니다.
Firebase App Distribution에 배포된 각 버전별 앱을 받아 로컬 및 브랜치에 맞는 Staging 환경을 설정하여 쉽고 편하게 테스팅 환경을 구성합니다.
브랜치별로 QA 환경이 독립적으로 구성되기에 PR 단계에서 리뷰, Staging QA, CI/CD를 통과하면 바로 main으로 머지되는 Trunk-based 전략을 활용하여 소스코드를 관리합니다.
[코드리뷰, LLM Agent 활용]
각 팀별 서비스 밀접도 기준으로 리뷰그룹이 운영되고 리뷰그룹 중 특정인원이 명시적으로 할당되어 리뷰합니다. 그동안 웹 프론트 챕터가 합의한 코드 디자인 가이드를 기준으로 우선순위와 함께 리뷰가 진행됩니다.
합의한 코드 디자인 가이드는 GitHub Discussion에 인덱스와 함께 아카이빙되어 리뷰 코멘트에 링크로 첨부됩니다. 코드 작성자는 링크에 정리된 내용의 Before/After를 통해 명확히 코드 개선 방향을 인지하고 코드를 수정할 수 있습니다.
이미 인덱스된 코드 디자인이 리뷰에 사용된다면 정리된 곳에 케이스와 새로운 추가 내용을 더하여 기존 코드 디자인 문서를 업데이트합니다. 최근에는 인덱스된 코드 디자인 가이드를 인덱스별로 LLM Agent의 Rule로 업데이트하고 이를 리팩토링에 활용하는 사례를 만들고 있습니다.