SlideShare a Scribd company logo
1 of 38
Download to read offline
웹-워크플로우 베스트 프랙티스 
김태훈 kishu@nhn.com 
프론트엔드개발그룹
김태훈 kishu@nhn.com 
NHN Technology Services 
프론트엔드개발팀장 
SADI HTML5 초빙교수 
Project Management Professional(PMP) 
페이스북 프론트엔드개발그룹 운영 
wit.nts-corp.com 
facebook.com/groups/webfrontend
코드 품질 
컨벤션에 맞는 코드 작성 
코드의 문법과 유효성 보장 
안티 패턴 제거 / 잠재적 에러 발생 코드 제거 
기능 품질 
사용자의 요구사항에 부합하는 기능 구현 
다양한 실행 환경에서 동일한 기능 수행(크로스브라우징) 
사실상 완성된 제품의 품질을 의미 
성능 품질 
네트워크 속성을 고려한 요청/응답 속도 최적화 
브라우저 렌더링 속도 보장 
사용자 인터렉션에 대한 반응 속도 보장 
Ñ 
웹어플리케이션 품질요소
효율성 증가 
단순 반복 작업 자동화 
생산성 및 효율성 향상 
더 중요한 것에 투자 
커뮤니케이션 
공통 프로세스/가이드 커뮤니케이션 비용절감 
품질 보증 
버그 발생 코드 방지 잠재적 에러 가능성 낮춤 
업무 고도화 
지속적 BP 적용 
특정 수준 품질 보증 
업무 고도화 
Ñ 
베스트 프랙티스가 필요한 이유
프로젝트에 필요한 것 
개발환경 
프레임워크/라이브러리 
품질 측정 
자동화 
테스트 
디렉토리 구조 
IDE 
저장소 
라이브러리 
프리 프로세서 
프레임 워크 
개발스택 
모듈 관리 
코딩 컨벤션 
코드 최적화 
접근성 검사 
유휴성 검사 
품질지표 리포팅 
태스크 자동화 
테스트 
프레임워크 
jenkins 
CI 
테스트 러너 
성능 최적화
grunt를 통해 각종 품질 요소를 자동으로 검사하고 리포팅 
profiling을 통해 성능 최적화 
로컬 커밋 정리 후 리모트 저장소에 커밋 
최종 품질 검사 및 
코드 최적화 
빌드/배포 스크립트를 통한 배포 자동화 
scafolding 
품질검사 
코딩 
CI/빌드/배포 
CVS 
팀/프로젝트 별로 정의된 템플릿을 grunt-init을 통해 설정에 맞게 자동 다운로드 
라이브러리 관리 
지정됐거나 선호하는 IDE로 컨벤션 및 가이드를 준수하며 코딩 
그리고 리펙토링 
워크 플로우 및 개발도구 
로컬 커밋 정리 후 리모트 저장소에 커밋 
테스트
SCAFFOLDING
CODING
QUALITY
코드리뷰 
컨벤션 체크 
각종 Lint 
Validation 
N-Wax 
YSlow 성능측정 도구 
Unused CSS minification 
코드 품질 
유효성, 접근성 
성능 
품질 개선 요소 
Grunt Task 설정을 통한 자동화
코드리뷰는 가급적 온라인으로 오프라인으로는 싸우고 삐짐 시도때도 없이 NO 일주일에 한두번 날잡아 30분정도 팀원 전체가 집중 리뷰 설계, 로직을 리뷰하는게 아님 컨벤션, 안티패턴 등등을 리뷰
성능최적화 도구가 제공하는 가이드 라인만 준수해도 최적화 작업의 70~80% 완료
CVS
git 도입 비용은 예상보다 높음 
팀/프로젝트 별로 git workflow가 있어야 함 
도입전략 
svn과 git을 같이 사용하는 중간과정을 통해 git 도입 
git workflow를 같이 개발하고 교육 
높은 분들의 확고한 의지와 인내
Create New Project 
• Setting Project 
• Setting Permission 
Integration 
• Code Review 
• Accept Merge Request 
Fork Repository 
• Fork blessed Project in gitlab 
• Add intergration manager to member 
Developer Private Setting 
• Clone Fork Repository 
• add remote upstream 
5 
7 
6 
: 
Deploy 
Pull from upstream 
• Rewriting History 
• Push to fork repository 
• New Merge Request 
Project Member 
• Project Source View 
• Compare Source Code 
6 
: 
Integration Manager 
Developer 
Project Role
TEST/CI
CI(Continuous Integration) 
각자가 작업한 성과물을 한곳에 모아 통합하고 동작하게 
모든 소스코드를 한곳에 모음 
의존 라이브러리 등에 경로가 연결 
필요한 경우 컴파일 
품질 측정 
유닛 테스트 및 통합 테스트
수많은 방법과 도구 및 프로세스가 있다. 팀/프로젝트 상황에 맞게 tailoring! 베스트 프랙티스를 통해 완벽한 품질을 보장하지는 않지만, 최소한의 품질은 보장하자! 점진적으로 도입하고 지속적으로 개선!
Gracias!

More Related Content

What's hot

Javascript and Web Performance
Javascript and Web PerformanceJavascript and Web Performance
Javascript and Web PerformanceJonathan Jeon
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!SangHoon Han
 
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?미래웹기술연구소 (MIRAE WEB)
 
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS미래웹기술연구소 (MIRAE WEB)
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망NAVER Engineering
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer ModelHan Lee
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기Suan Lee
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해tailofmoon
 
프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)Woncheol Lee
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기jbugkorea
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5Manyoung Cho
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해Leehooan
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
 

What's hot (20)

Javascript and Web Performance
Javascript and Web PerformanceJavascript and Web Performance
Javascript and Web Performance
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?
Sencha 가 기업용 WebApps 를 위한 최적의 솔루션인 이유는?
 
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS
엔터프라이즈 웹애플리케이션 개발 솔루션 Sencha ExtJS
 
hexa core
hexa corehexa core
hexa core
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기
 
HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해
 
프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 

Viewers also liked

김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]
김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]
김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]WSConf.
 
[데이터저널리즘 세미나] LLG in Seoul Module 3 Review
[데이터저널리즘 세미나] LLG in Seoul Module 3 Review[데이터저널리즘 세미나] LLG in Seoul Module 3 Review
[데이터저널리즘 세미나] LLG in Seoul Module 3 ReviewNewsjelly
 
Eyes web site progect
Eyes web site progectEyes web site progect
Eyes web site progectKIM HEE JAE
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web ComponentsEunYoung Kim
 
Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchTaylor Lovett
 
Google AMP는 어떻게 빠른 성능을 내나?
Google AMP는 어떻게 빠른 성능을 내나?Google AMP는 어떻게 빠른 성능을 내나?
Google AMP는 어떻게 빠른 성능을 내나?Tai Hoon KIM
 
Kt&g 포트폴리오 최종_그린나래
Kt&g 포트폴리오  최종_그린나래Kt&g 포트폴리오  최종_그린나래
Kt&g 포트폴리오 최종_그린나래Hyeonju Lee
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
무지개 프로젝트 Final
무지개 프로젝트 Final무지개 프로젝트 Final
무지개 프로젝트 Final다운 이
 
[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"oeclab
 
매닛컬쳐 사업계획서
매닛컬쳐 사업계획서매닛컬쳐 사업계획서
매닛컬쳐 사업계획서Sangwon Lee
 
퍼블릭랩 착수발표
퍼블릭랩 착수발표퍼블릭랩 착수발표
퍼블릭랩 착수발표peptres
 
Xem2014 발표자료
Xem2014 발표자료Xem2014 발표자료
Xem2014 발표자료devxinics
 
Presentation Skill
Presentation SkillPresentation Skill
Presentation SkillManyong Han
 
클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트licubeclub
 
큐스 사업계획서
큐스 사업계획서큐스 사업계획서
큐스 사업계획서만수 신
 
[E조] 미디어프로젝트
[E조] 미디어프로젝트[E조] 미디어프로젝트
[E조] 미디어프로젝트heeyoungkimlisa
 

Viewers also liked (20)

김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]
김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]
김태훈 - Google AMP는 어떻게 빠른 성능을 내나 [WSConf. Seoul 2016/2017]
 
[데이터저널리즘 세미나] LLG in Seoul Module 3 Review
[데이터저널리즘 세미나] LLG in Seoul Module 3 Review[데이터저널리즘 세미나] LLG in Seoul Module 3 Review
[데이터저널리즘 세미나] LLG in Seoul Module 3 Review
 
Eyes web site progect
Eyes web site progectEyes web site progect
Eyes web site progect
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
How AMP Work?
How AMP Work? How AMP Work?
How AMP Work?
 
Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with Elasticsearch
 
Google AMP는 어떻게 빠른 성능을 내나?
Google AMP는 어떻게 빠른 성능을 내나?Google AMP는 어떻게 빠른 성능을 내나?
Google AMP는 어떻게 빠른 성능을 내나?
 
Kt&g 포트폴리오 최종_그린나래
Kt&g 포트폴리오  최종_그린나래Kt&g 포트폴리오  최종_그린나래
Kt&g 포트폴리오 최종_그린나래
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
무지개 프로젝트 Final
무지개 프로젝트 Final무지개 프로젝트 Final
무지개 프로젝트 Final
 
[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"
 
매닛컬쳐 사업계획서
매닛컬쳐 사업계획서매닛컬쳐 사업계획서
매닛컬쳐 사업계획서
 
퍼블릭랩 착수발표
퍼블릭랩 착수발표퍼블릭랩 착수발표
퍼블릭랩 착수발표
 
Xem2014 발표자료
Xem2014 발표자료Xem2014 발표자료
Xem2014 발표자료
 
Lazybuster
LazybusterLazybuster
Lazybuster
 
Presentation Skill
Presentation SkillPresentation Skill
Presentation Skill
 
클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트
 
큐스 사업계획서
큐스 사업계획서큐스 사업계획서
큐스 사업계획서
 
[E조] 미디어프로젝트
[E조] 미디어프로젝트[E조] 미디어프로젝트
[E조] 미디어프로젝트
 

Similar to 웹-워크플로우 베스트프랙티스

Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브Atlassian 대한민국
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션SangIn Choung
 
베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개BESPIN GLOBAL
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성CURVC Corp
 
[Atlassian meets dev ops and itsm] infrastructure for devops
[Atlassian meets dev ops and itsm] infrastructure for devops[Atlassian meets dev ops and itsm] infrastructure for devops
[Atlassian meets dev ops and itsm] infrastructure for devopsOpen Source Consulting
 
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료웹스트리밍동영상보안자료
웹스트리밍동영상보안자료시온시큐리티
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
더 나은 SW프로젝트를 위해
 더 나은 SW프로젝트를 위해 더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해지수 윤
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크InGuen Hwang
 
Application Lifecycle Management - CURVC
Application Lifecycle Management - CURVCApplication Lifecycle Management - CURVC
Application Lifecycle Management - CURVCAtlassian 대한민국
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표ChangGyum Kim
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드Justin Park
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...BESPIN GLOBAL
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online SeriesAmazon Web Services Korea
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답SangIn Choung
 
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅Atlassian 대한민국
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)JiandSon
 
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...Hannah Kim
 

Similar to 웹-워크플로우 베스트프랙티스 (20)

Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션
 
베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
 
[Atlassian meets dev ops and itsm] infrastructure for devops
[Atlassian meets dev ops and itsm] infrastructure for devops[Atlassian meets dev ops and itsm] infrastructure for devops
[Atlassian meets dev ops and itsm] infrastructure for devops
 
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료웹스트리밍동영상보안자료
웹스트리밍동영상보안자료
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
더 나은 SW프로젝트를 위해
 더 나은 SW프로젝트를 위해 더 나은 SW프로젝트를 위해
더 나은 SW프로젝트를 위해
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크
 
Application Lifecycle Management - CURVC
Application Lifecycle Management - CURVCApplication Lifecycle Management - CURVC
Application Lifecycle Management - CURVC
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답
 
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅
[AIS 2018] [Team Tools_Advanced] Altassian 기능 확장과 구축사례 - 한국정보컨설팅
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
 
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
2015.03.25 테크니컬 세미나 - SonarQube를 활용한 코드 품질 시각화(김모세)
 
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle M...
 

웹-워크플로우 베스트프랙티스

  • 1. 웹-워크플로우 베스트 프랙티스 김태훈 kishu@nhn.com 프론트엔드개발그룹
  • 2. 김태훈 kishu@nhn.com NHN Technology Services 프론트엔드개발팀장 SADI HTML5 초빙교수 Project Management Professional(PMP) 페이스북 프론트엔드개발그룹 운영 wit.nts-corp.com facebook.com/groups/webfrontend
  • 3. 코드 품질 컨벤션에 맞는 코드 작성 코드의 문법과 유효성 보장 안티 패턴 제거 / 잠재적 에러 발생 코드 제거 기능 품질 사용자의 요구사항에 부합하는 기능 구현 다양한 실행 환경에서 동일한 기능 수행(크로스브라우징) 사실상 완성된 제품의 품질을 의미 성능 품질 네트워크 속성을 고려한 요청/응답 속도 최적화 브라우저 렌더링 속도 보장 사용자 인터렉션에 대한 반응 속도 보장 Ñ 웹어플리케이션 품질요소
  • 4. 효율성 증가 단순 반복 작업 자동화 생산성 및 효율성 향상 더 중요한 것에 투자 커뮤니케이션 공통 프로세스/가이드 커뮤니케이션 비용절감 품질 보증 버그 발생 코드 방지 잠재적 에러 가능성 낮춤 업무 고도화 지속적 BP 적용 특정 수준 품질 보증 업무 고도화 Ñ 베스트 프랙티스가 필요한 이유
  • 5. 프로젝트에 필요한 것 개발환경 프레임워크/라이브러리 품질 측정 자동화 테스트 디렉토리 구조 IDE 저장소 라이브러리 프리 프로세서 프레임 워크 개발스택 모듈 관리 코딩 컨벤션 코드 최적화 접근성 검사 유휴성 검사 품질지표 리포팅 태스크 자동화 테스트 프레임워크 jenkins CI 테스트 러너 성능 최적화
  • 6. grunt를 통해 각종 품질 요소를 자동으로 검사하고 리포팅 profiling을 통해 성능 최적화 로컬 커밋 정리 후 리모트 저장소에 커밋 최종 품질 검사 및 코드 최적화 빌드/배포 스크립트를 통한 배포 자동화 scafolding 품질검사 코딩 CI/빌드/배포 CVS 팀/프로젝트 별로 정의된 템플릿을 grunt-init을 통해 설정에 맞게 자동 다운로드 라이브러리 관리 지정됐거나 선호하는 IDE로 컨벤션 및 가이드를 준수하며 코딩 그리고 리펙토링 워크 플로우 및 개발도구 로컬 커밋 정리 후 리모트 저장소에 커밋 테스트
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 15.
  • 16.
  • 17.
  • 19. 코드리뷰 컨벤션 체크 각종 Lint Validation N-Wax YSlow 성능측정 도구 Unused CSS minification 코드 품질 유효성, 접근성 성능 품질 개선 요소 Grunt Task 설정을 통한 자동화
  • 20. 코드리뷰는 가급적 온라인으로 오프라인으로는 싸우고 삐짐 시도때도 없이 NO 일주일에 한두번 날잡아 30분정도 팀원 전체가 집중 리뷰 설계, 로직을 리뷰하는게 아님 컨벤션, 안티패턴 등등을 리뷰
  • 21.
  • 22.
  • 23. 성능최적화 도구가 제공하는 가이드 라인만 준수해도 최적화 작업의 70~80% 완료
  • 24.
  • 25.
  • 26.
  • 27. CVS
  • 28. git 도입 비용은 예상보다 높음 팀/프로젝트 별로 git workflow가 있어야 함 도입전략 svn과 git을 같이 사용하는 중간과정을 통해 git 도입 git workflow를 같이 개발하고 교육 높은 분들의 확고한 의지와 인내
  • 29.
  • 30. Create New Project • Setting Project • Setting Permission Integration • Code Review • Accept Merge Request Fork Repository • Fork blessed Project in gitlab • Add intergration manager to member Developer Private Setting • Clone Fork Repository • add remote upstream 5 7 6 : Deploy Pull from upstream • Rewriting History • Push to fork repository • New Merge Request Project Member • Project Source View • Compare Source Code 6 : Integration Manager Developer Project Role
  • 32.
  • 33.
  • 34.
  • 35. CI(Continuous Integration) 각자가 작업한 성과물을 한곳에 모아 통합하고 동작하게 모든 소스코드를 한곳에 모음 의존 라이브러리 등에 경로가 연결 필요한 경우 컴파일 품질 측정 유닛 테스트 및 통합 테스트
  • 36.
  • 37. 수많은 방법과 도구 및 프로세스가 있다. 팀/프로젝트 상황에 맞게 tailoring! 베스트 프랙티스를 통해 완벽한 품질을 보장하지는 않지만, 최소한의 품질은 보장하자! 점진적으로 도입하고 지속적으로 개선!