SlideShare a Scribd company logo
React VAC Pattern
View 로직과 JSX의 의존성을 최소화 하자!
NTS 프론트엔드개발 박우영
Contents
1. React 협업
2. React 협업에서 어려운 점
3. VAC Pattern
4. 구현 예제(with VAC Debugger)
5. 서비스 적용 후기(네이버 게임)
1. React 협업
React 환경에서 Front-End 업무는 어떻게 분업화 되어 있나?
1. React 협업
React 환경에서 Front-End 업무는 어떻게 분업화 되어 있나?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
2. React 협업에서 어려운 점
React 협업에서 무엇이 우리를 괴롭히는가?
3. VAC Pattern
View 로직과 JSX를 격리해서 관리하자!
3. VAC Pattern
View 로직과 JSX를 격리해서 관리하자!
• 반복, 조건부 노출 등 스타일 제어 렌더링에 관련된 처리 만을 수행
• props를 통해서만 제어되며, 스스로의 상태를 관리하지 않는 stateless 컴포넌트
• 이벤트에 함수를 바인딩할 때 추가 처리 없이 적용
3. VAC Pattern
View 로직과 JSX를 격리해서 관리하자!
UI
Functionality
Business
Logic
Props, State
Normal Pattern
JSX Style Child Components
UI
Functionality
Business
Logic
Props, State
VAC Pattern
Props Object
VAC
3. VAC Pattern
View 로직과 JSX를 격리해서 관리하자!
Props Object
3. VAC Pattern
View 로직과 JSX를 격리해서 관리하자!
VAC
4. 구현 예제(with VAC Debugger)
VAC Debugger를 활용해 VAC Pattern을 구현해보자.
Todo List 예제로 VAC Pattern 적용 시연
https://oss.navercorp.com/fedev/example-vac
5. 서비스 적용 후기(네이버 게임)
네이버 게임 서비스에서 VAC를 활용하여 개발한 회고
5. 서비스 적용 후기(네이버게임)
네이버 게임 서비스에서 VAC를 활용하여 개발한 회고
• 마크업 소스와 분리되어 있어서 QA할 때 수정하는게 좀 편하긴 했어요.
• 비지니스 로직이 모여있어서 다른 개발자들이 봐도 파악하기가 편해요.
• 처음 도입하는 경우에는 스펙이나 환경 이해도가 많이 필요할 것 같아요.
• Props 드릴링 이런게 자주 있게 되어서 불편한 경우가 있긴 했어요.
• 스펙변경 및 설계변경시에 커뮤니케이션 비용이 좀 있는거 같아요.
5. 서비스 적용 후기(네이버게임)
네이버 게임 서비스에서 VAC를 활용하여 개발한 회고
• FE, UI개발 관심사가 분리되어 불필요한 코드 파악이 줄어들었어요.
• UI를 재사용성하기 좋고 불필요한 마크업 개발이 줄어서 유지보수하기 좋습니다.
• UI 개발자가 VAC를 잘 설계하기 위해서는 FE배경 지식이 많이 필요합니다.
• 플리킹 같이 DOM을 직접 핸들링 하는 경우는 적용하기 쉽지 않습니다.
• 렌더링에 영향을 받는 속성이 많은 경우는 하위 컴포넌트로 계속 값을 내려줘야하는 등 관리
가 어렵습니다.
Thanks! End of Documents.

More Related Content

PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PPTX
リアルタイムレンダリングでのマテリアル表現
PPTX
UI아트 작업자를 위한 언리얼엔진4 UMG #1
PDF
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
PDF
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
PDF
스토리텔링(이인화 교수)
PPSX
Cucumber & gherkin language
PPTX
ゲームエンジンの文法【UE4】No.006 3次元座標(直交座標系) ,UE4の単位,アウトライナ,レイヤー
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
リアルタイムレンダリングでのマテリアル表現
UI아트 작업자를 위한 언리얼엔진4 UMG #1
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
스토리텔링(이인화 교수)
Cucumber & gherkin language
ゲームエンジンの文法【UE4】No.006 3次元座標(直交座標系) ,UE4の単位,アウトライナ,レイヤー

What's hot (20)

PDF
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
PPTX
NDC 11 자이언트 서버의 비밀
PPTX
Umg ,이벤트 바인딩, Invaidation Box
PDF
AADL: Architecture Analysis and Design Language
PPT
User centered Design
PPTX
User stories in agile software development
PDF
Workshop - Writing Good User Stories
PDF
Python 게임서버 안녕하십니까 : RPC framework 편
PDF
멀티스레드 렌더링 (Multithreaded rendering)
PPTX
Cvim saisentan 半精度浮動小数点数 half
PDF
UnityとVuforiaで始めるAR開発
PDF
서버학개론(백엔드 서버 개발자를 위한)
PPTX
PDF
Android NFCアプリハンズオン
PDF
새해 일어난 일
PPTX
software Prototyping model
PDF
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
PDF
ドメイン駆動設計をゲーム開発に活かす
PPTX
MVVM ( Model View ViewModel )
PDF
60fpsアクションを実現する秘訣を伝授 解析編
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
NDC 11 자이언트 서버의 비밀
Umg ,이벤트 바인딩, Invaidation Box
AADL: Architecture Analysis and Design Language
User centered Design
User stories in agile software development
Workshop - Writing Good User Stories
Python 게임서버 안녕하십니까 : RPC framework 편
멀티스레드 렌더링 (Multithreaded rendering)
Cvim saisentan 半精度浮動小数点数 half
UnityとVuforiaで始めるAR開発
서버학개론(백엔드 서버 개발자를 위한)
Android NFCアプリハンズオン
새해 일어난 일
software Prototyping model
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
ドメイン駆動設計をゲーム開発に活かす
MVVM ( Model View ViewModel )
60fpsアクションを実現する秘訣を伝授 解析編
Ad

Similar to React vac pattern (20)

PDF
원모먼트 Vue js 적용기
PDF
React, Redux 실전 적용기
PDF
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
PDF
[111217 아꿈사연말모임] 웹소켓과온라인게임
PDF
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
PDF
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
PPTX
Ahea Study reactive programming
PDF
Place site Design
PDF
Things Happend between JDBC and MySQL
PPTX
자바가 디비와 사귀기 까지 벌어지는 일들
PDF
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
PDF
2024년 5월 27일 개발자 이야기 - 2024년 자바 생태계 정리(by 뉴 렐릭) 외
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
PPTX
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
PPTX
처음 시작하는 라라벨
PDF
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
PDF
Spring boot와 docker를 이용한 msa
PPT
PDF
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
원모먼트 Vue js 적용기
React, Redux 실전 적용기
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
[111217 아꿈사연말모임] 웹소켓과온라인게임
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Ahea Study reactive programming
Place site Design
Things Happend between JDBC and MySQL
자바가 디비와 사귀기 까지 벌어지는 일들
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
2024년 5월 27일 개발자 이야기 - 2024년 자바 생태계 정리(by 뉴 렐릭) 외
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
처음 시작하는 라라벨
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
Spring boot와 docker를 이용한 msa
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Ad

More from NAVER Engineering (20)

PDF
디자인 시스템에 직방 ZUIX
PDF
진화하는 디자인 시스템(걸음마 편)
PDF
서비스 운영을 위한 디자인시스템 프로젝트
PDF
BPL(Banksalad Product Language) 무야호
PDF
이번 생에 디자인 시스템은 처음이라
PDF
날고 있는 여러 비행기 넘나 들며 정비하기
PDF
쏘카프레임 구축 배경과 과정
PDF
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
PDF
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
PDF
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
PDF
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
PDF
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
PDF
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
PDF
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
PDF
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
PDF
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
PDF
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
PDF
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
PDF
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
PDF
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
디자인 시스템에 직방 ZUIX
진화하는 디자인 시스템(걸음마 편)
서비스 운영을 위한 디자인시스템 프로젝트
BPL(Banksalad Product Language) 무야호
이번 생에 디자인 시스템은 처음이라
날고 있는 여러 비행기 넘나 들며 정비하기
쏘카프레임 구축 배경과 과정
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기

React vac pattern

  • 1. React VAC Pattern View 로직과 JSX의 의존성을 최소화 하자! NTS 프론트엔드개발 박우영
  • 2. Contents 1. React 협업 2. React 협업에서 어려운 점 3. VAC Pattern 4. 구현 예제(with VAC Debugger) 5. 서비스 적용 후기(네이버 게임)
  • 3. 1. React 협업 React 환경에서 Front-End 업무는 어떻게 분업화 되어 있나?
  • 4. 1. React 협업 React 환경에서 Front-End 업무는 어떻게 분업화 되어 있나?
  • 5. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 6. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 7. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 8. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 9. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 10. 2. React 협업에서 어려운 점 React 협업에서 무엇이 우리를 괴롭히는가?
  • 11. 3. VAC Pattern View 로직과 JSX를 격리해서 관리하자!
  • 12. 3. VAC Pattern View 로직과 JSX를 격리해서 관리하자! • 반복, 조건부 노출 등 스타일 제어 렌더링에 관련된 처리 만을 수행 • props를 통해서만 제어되며, 스스로의 상태를 관리하지 않는 stateless 컴포넌트 • 이벤트에 함수를 바인딩할 때 추가 처리 없이 적용
  • 13. 3. VAC Pattern View 로직과 JSX를 격리해서 관리하자! UI Functionality Business Logic Props, State Normal Pattern JSX Style Child Components UI Functionality Business Logic Props, State VAC Pattern Props Object VAC
  • 14. 3. VAC Pattern View 로직과 JSX를 격리해서 관리하자! Props Object
  • 15. 3. VAC Pattern View 로직과 JSX를 격리해서 관리하자! VAC
  • 16. 4. 구현 예제(with VAC Debugger) VAC Debugger를 활용해 VAC Pattern을 구현해보자.
  • 17. Todo List 예제로 VAC Pattern 적용 시연 https://oss.navercorp.com/fedev/example-vac
  • 18. 5. 서비스 적용 후기(네이버 게임) 네이버 게임 서비스에서 VAC를 활용하여 개발한 회고
  • 19. 5. 서비스 적용 후기(네이버게임) 네이버 게임 서비스에서 VAC를 활용하여 개발한 회고 • 마크업 소스와 분리되어 있어서 QA할 때 수정하는게 좀 편하긴 했어요. • 비지니스 로직이 모여있어서 다른 개발자들이 봐도 파악하기가 편해요. • 처음 도입하는 경우에는 스펙이나 환경 이해도가 많이 필요할 것 같아요. • Props 드릴링 이런게 자주 있게 되어서 불편한 경우가 있긴 했어요. • 스펙변경 및 설계변경시에 커뮤니케이션 비용이 좀 있는거 같아요.
  • 20. 5. 서비스 적용 후기(네이버게임) 네이버 게임 서비스에서 VAC를 활용하여 개발한 회고 • FE, UI개발 관심사가 분리되어 불필요한 코드 파악이 줄어들었어요. • UI를 재사용성하기 좋고 불필요한 마크업 개발이 줄어서 유지보수하기 좋습니다. • UI 개발자가 VAC를 잘 설계하기 위해서는 FE배경 지식이 많이 필요합니다. • 플리킹 같이 DOM을 직접 핸들링 하는 경우는 적용하기 쉽지 않습니다. • 렌더링에 영향을 받는 속성이 많은 경우는 하위 컴포넌트로 계속 값을 내려줘야하는 등 관리 가 어렵습니다.
  • 21. Thanks! End of Documents.