웹/웹뷰 코드 합치면 개발 2배 빨라지는 거 아니었어요? | 2024 당근 테크 밋업
당근 밋업 당근 · YouTube
AI 핵심 요약
당근 광고 서비스는 웹과 웹뷰를 따로 개발하면서 GraphQL 스키마와 화면 로직이 중복되고, 기능 차이와 테스트 부담이 커지는 문제를 겪어 두 환경의 코드를 통합했다. GraphQL 스키마·쿼리·리졸버는 공통화했지만, 화면 크기와 런타임에 따라 달라지는 UI와 동작까지 완전히 합칠 수는 없었다. 반응형 스타일은 Vanilla Extract와 Sprinkles로 속성 단위 관리하고, 화면별 UI는 반응형 컴포넌트로 분리했으며, 로깅과 링크 이동은 전략 패턴으로 런타임별 구현을 선택하도록 바꿨다. 또한 React Context를 의존성 주입에 활용해 테스트를 쉽게 했으며, 통합의 핵심은 모든 코드를 하나로 만드는 것이 아니라 차이가 생기는 지점을 명확한 인터페이스로 관리하는 데 있다고 설명했다.
- 반응형 스타일은 미디어 쿼리별로 흩어 쓰기보다 속성 단위로 관리하면 변경 영향과 충돌을 파악하기 쉽다.
- 화면 크기에 따라 UI 형태가 달라질 때는 반응형 컴포넌트로 렌더링을 분리하고, 공통 비즈니스 로직은 바깥에서 관리한다.
- 앱 실행 후 바뀌지 않는 런타임 정보는 이벤트마다 확인하지 말고 초기화 시점에 구현체를 선택하는 전략 패턴을 고려한다.
- 공통 인터페이스에 특정 플랫폼에서만 유효한 옵션을 억지로 넣기보다, 실제 사용 사례를 기준으로 인터페이스를 구체화할 수 있다.
- React Context를 의존성 주입에 활용하면 서비스의 직접 참조를 줄이고 테스트에서 대체 구현을 주입하기 쉽다.
소개
“우아한 구조로 서비스를 잘 구축하면 하나의 코드로 여러 플랫폼을 대응하고, 확장성도 챙길 수 있을 텐데…” 프론트엔드 개발자라면 한 번쯤 이런 생각 해보지 않으셨나요? 하나의 코드로 데스크탑, 모바일 그리고 웹뷰까지 모두 대응할 수 있다면 얼마나 좋을까요? 개발자 리소스가 줄고 서비스 통일감도 높아지고 더이상 플랫폼 간 기능 차이도 없을 거예요. 하지만 다른 방향에서 살펴보면 한 플랫폼에서만 사용되는 코드가 추가되어 애플리케이션이 무거워지고, 플랫폼 별로 달라지는 로직을 실행하기 위해 분기가 많아지니 더 복잡해지기도 해요. 그래서 상황에 따라 각 플랫폼 별로 개발하는 것이 좋은 선택일 수도 있고, 하나의 코드로 개발하는 게 좋은 선택일 수도 있어요. 당근 광고실에서는 여러 논의를 거쳐서 웹과 웹뷰를 하나의 코드로 합치기로 결정했어요. 이 세션에서는 왜 우리가 웹과 웹뷰 코드를 통합하기로 결정했는지, 이 과정에서 겪었던 문제들과 문제를 어떻게 해결했는지를 다루고자 해요. 🥕...
비슷한 학습 자료
컨퍼런스 당근 밋업
빠르게 변하는 운영 도메인에서 살아남는 코드 만들기 | 2024 당근 테크 밋업
컨퍼런스 당근 밋업
당근은 중고거래를 넘어 커뮤니티, 알바 등 다양한 ‘당신 근처의’ 서비스로 빠르게 확장해 나가고 있어요. 서비스가 빠르게 확장되는 만큼, 사용자가 당근을 안전하고 편리하게 이용할 수 있도록 지원하는 운영 환경도 빠르게 대응할 수 있어야 하죠. 당근의 운영개발팀은 빠른 대응을 위해 언제나 확장성, 생산성 그리고 설정 가능성을 염두에 두고 개발에 임하고 있어요. 이 세션에서는 실제 당근의 문의 처리 도구를 개선하는 과정에서 역할 분리, 메타 프로그래밍, 규칙 기반 UI 생성, 설정 분리와 같은 다양한 기법을 활용해 빠른 대응이 가능한 시스템을 어떻게 구축했는지 공유하고자 해요. 이와 함께, 이러한 기법을 실제로 적용할 때 유의해야 할 점에 대해서도 다뤄요. 반복되는 비슷한 코드 작업에 지치신 분, 더 효율적이고 생산적으로 일하고 싶은 모든 개발자에게 이 세션이 인사이트를 제공할 수 있길 기대해요! 🥕 영상을 보고 당근에 관심이 생기셨다면 채용 공고를 확인해보세요! https:/...
백엔드
컨퍼런스 당근 밋업
프론트엔드 개발자에게 배포는 조금 각별해요. 프로덕션에 유일무이하게 동작하는 스냅샷이라는 점에서는 버저닝 엔드포인트가 살아 있는 API 배포와 달라요. 최신 버전이 에버그린 상태여야 한다는 점에서는 안정적인 버전으로 고정할 수 있는 라이브러리 배포와 달라요. 프론트엔드 개발자로서 배포 플랫폼을 제작하는 경험은 더 각별했어요. 프로젝트 배포를 통해 최종 사용자에게 페이지를 전달하기 위해, 정말 많은 기술적 고민과 배경이 필요했기 때문이에요. 이 많은 고민과 배경이 플랫폼 제작에 필요한 백엔드/인프라 지식보다도 (의외로) 프론트엔드 개발자에게 친숙한 지식들이라는 사실을 전달하고, 배포 플랫폼을 만들며 겪은 경험을 토대로 프론트엔드 개발자가 나아갈 방향에 대해 공유해요. 🥕 영상을 보고 당근에 관심이 생기셨다면 채용 공고를 확인해보세요! https://about.daangn.com/jobs/
프론트엔드 데브옵스 · 인프라
컨퍼런스 당근 밋업
아니, 여기도 웹뷰였어요? | 2024 당근 테크 밋업
컨퍼런스 당근 밋업
프레임워크부터 플랫폼까지: 당근 웹뷰 플랫폼 | 2024 당근 테크 밋업
컨퍼런스 if kakao