SlideShare a Scribd company logo
“NHN&TDD”NHN 생산성혁신랩정상혁 과장, 차민창 과장
얘기꺼리NHN 개발자 정말 TDD하고 있나요?NHN에서 TDD하면 팀장이 좋아하나요?NHN에서는 이런 코드도 테스트하나요?NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?골라보세요!
NHN 개발자 정말 TDD하고 있나요?
현황TDD를 잘 활용하는 개발자가 많은 것은 아님코드 작성 후 테스트 코드를 작성하는 개발자도 많음전반적으로 TDD에 대한 개발자들의 인식은 긍정적이고 매우 적극적임

Recommended for you

[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스

2016.6.29에 발표했던 AUG 자료

jirasoftware testingqa
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법

NHN NEXT 휴먼 디자인 프로젝트 for 게임 과목의 스터디 자료입니다.

c++code quality코드 품질
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
활동TDD를 포함한 품질 개선 활동을 장려하고 확산하는 지원 조직 ‘생산성혁신랩’ 신설교육(Live Coding), 기술지원(짝 프로그래밍), 프로젝트 파견(테스트 인프라 구축) 등을 통해 현장지원 수행
결과TDD에 대한 다양한 지원으로 현업에서도 TDD를 수행하는 개발자가 점점 증가하는 추세새롭게 TDD를 수행하는 개발자는 해당 조직 내에서 Seed 역할최근 TDD를 넘어 ATDD도 확산
NHN에서 TDD하면 팀장이 좋아하나요?
현황전사적 품질 활동(Quality Practice, 줄여서 QP) 도입 전/후가 다름도입 전, 팀장의 성향에 따라 TDD활동에 대한 시각이 엇갈림도입 후, 인식의 변화로 긍정적인 시각의 팀장 증가

Recommended for you

애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유

tk

agilekorea2011
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질

테스트 케이스는 SW 품질의 필수이다. 테스트 케이스 없이 SW품질을 추구할 수 없다.

테스트 케이스sw 품질설계
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례

좋은 테스트와 테스트코드에 대해 실제 프로젝트에서 개선하면서 겪었던 사례 기반으로 설명해 봤습니다.

사례기반junittip
활동2009년 전사적 품질활동 본격적으로 도입여러 품질활동 중 ‘테스트 자동화’ 를 특별히 강조품질활동을 통해 산출 된 수치 및 정성적 평가가 성과로 연결
결과TDD 결과로 서비스의 품질과 팀의 성과에 긍정적인 작용을 함팀장이 인정하지 않더라도 개발자가 TDD를 해야 한다고 주장할 수 있는 강력한 근거가 생김
NHN에서는 이런 코드도 테스트하나요?
현황NHN내의 개발자 사이에서 테스트 작성범위에 대한 논쟁이 있음테스트 커버리지 100% 달성해야 하는가? Mock 어디까지 사용해야 하는가?Action(혹은 Controller) 테스트 해야 하는가?

Recommended for you

플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto

'플리토 모바일팀의 코드리뷰 & IDE로 Intelligent 리팩토링' 사내세미나 발표자료입니다.

codereviewtdd. shortcutsgithub
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming

at GDG Korea Campus Meetup Nov, 2016

software testingagile software development
C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD

휴먼 디자인 프로젝트 스터디 자료

c++tdd테스트주도개발
현황(Cont`) - 예시public void joinToCafebook(Cafebook book,  Article relatedArticle, CafeUsercurrentUser) {cafeBookDAO.insert(book);articleDAO.insert(relatedArticle);cafeUserDAO.insert(currentUser);}이런 코드도 Mock을 이용해서 단위 테스트 해야 하나?* 위 예는 실제 서비스 코드와 유사한 가상코드입니다.
활동각 서비스 별 코드리뷰 혹은 단체 토론 교육을 통해 실제 서비스 상황 중심으로 테스트에 관한 심층적 논의논의를 하다 보면 아래 단어가 자주 등장 ROI유지보수성통합테스트,Acceptance Test상태검증, 행위검증, Mock
결과아직 전사적으로 뚜렷한 합의점은 찾지 못한 상태‘서비스의 품질을 향상시킨다’라는 관점을 견지하며 지속적으로 고민하고 있는 상황
NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?

Recommended for you

Tdd
TddTdd
Tdd
tdd
Game qa
Game qaGame qa
Game qa

GAME QA에 대한 소개와 QA를 잘하기 위한 자세를 설명하고 있습니다. 2010년 KGC발표 자료

gameqagameqa
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법

소프트웨어 개발 프로젝트 XXX에 적용하고 싶은 개발 방법을 기술. 행복하게 개발하기가 목적.

xpagile
현황품질활동을 시작하며 각 서비스 별 테스트 커버리지 수치를 측정해당 수치는 서비스 품질의 대표성을 갖기 때문에 해당 수치를 보며 품질향상에 대한 의욕이 고취되는 개발자도 있음반면 서비스의 품질을 높이려는 본래 의도와는 달리 테스트 커버리지 수치만 올리려는 개발자도 있음
활동단순 수치의 달성이 아닌 품질향상이라는 본질적 의미를 반복적으로 강조정기적으로 서비스 별 품질활동 상황을 확인생산성혁신랩의지원 활동으로 현장에서는 서비스 품질 향상에 더욱 집중할 수 있게 함예)품질활동 제도 정비, 도구 지원및 개선 등
결과더 좋은 테스트 혹은 효과적인 테스트에 대한 개발자의 관심이 커짐품질향상에 집중함으로 인해 높은 커버리지를 달성한 서비스는 자긍심을 가짐
결과(Cont`)반복되는 강조에도 여전히 본질인 품질에 집중하는 개발자와 그렇지 않은 개발자로 나뉨높은 테스트 커버리지 수치가 품질을 보장하지 않음수치는 품질의 부산물

Recommended for you

유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발

개발자를 불행하게 하는 유지보수를 고려한 개발에 대한 얘기들입니다. 개인적인 경험에 근거한 주관적인 내용입니다. 논의의 꺼리로서 정도의 의미입니다.

패키징브랜치저장소
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는

c개발자에게 java 개발자들의 성향을 설명하는 내용.

cjava java
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
code reviewgerritkorean

More Related Content

What's hot

IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
Taeyeop Kim
 
Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basic
Curt Park
 
Tdd with JUnit 1
Tdd with JUnit 1Tdd with JUnit 1
Tdd with JUnit 1
Junyoung Lee
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
철민 신
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
선협 이
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
guest7178884
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
agilekorea
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질
도형 임
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례
SangIn Choung
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
Yongjun Kim
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming
Jongchan Kim
 
C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
선협 이
 
Game qa
Game qaGame qa
Game qa
원철 정
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
도형 임
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
도형 임
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는
도형 임
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
Young-Ho Cha
 

What's hot (18)

IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
 
Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basic
 
Tdd with JUnit 1
Tdd with JUnit 1Tdd with JUnit 1
Tdd with JUnit 1
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming
 
C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
 
Tdd
TddTdd
Tdd
 
Game qa
Game qaGame qa
Game qa
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
 

Similar to E1_Deview nhn애자일개발 tdd_질문답

클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정
VMware Tanzu Korea
 
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
Atlassian 대한민국
 
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
Hyunjung Kim
 
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designerITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
Department of Digital Contents Convergence, Seoul National Univercity
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
CURVC Corp
 
그로스 해킹 - Growth Hacking
그로스 해킹 - Growth Hacking그로스 해킹 - Growth Hacking
그로스 해킹 - Growth Hacking
Wooseok Seo
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
태준 문
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험
Jihye OK
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
Open Source Consulting
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
Sunghyouk Bae
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction
영기 김
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
Bokyung Choi
 
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
PAP (Product Analytics Playground)
 
DevOps - Mousoft
DevOps - MousoftDevOps - Mousoft
DevOps - Mousoft
Atlassian 대한민국
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
DomainDriven DomainDriven
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
Young-Hyuk Yoo
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
Taeyoung Kim
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개
Brian HAN 한진규
 
Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토
keesung kim
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
SangIn Choung
 

Similar to E1_Deview nhn애자일개발 tdd_질문답 (20)

클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정
 
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명 / 고객과 소통하는 SW 유지보수 프로세스 구축 - 인베슘
 
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
더 나은 사용자 경험과 비즈니스를 만들기 위한 프로덕트 매니저로 일하기
 
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designerITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
ITCT 사용자 중심 디자인 특강 - spoqa 남유정 UX designer
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
SonarQube와 함께하는 소프트웨어 품질 세미나 - 소프트웨어 품질의 중요성
 
그로스 해킹 - Growth Hacking
그로스 해킹 - Growth Hacking그로스 해킹 - Growth Hacking
그로스 해킹 - Growth Hacking
 
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
DEVOPS 에 대한 전반적인 소개 및 자동화툴 소개
 
프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험프로덕트 매니저 8년의 경험
프로덕트 매니저 8년의 경험
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
 
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
 
DevOps - Mousoft
DevOps - MousoftDevOps - Mousoft
DevOps - Mousoft
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개
 
Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
NAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
NAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
NAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
NAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
NAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

E1_Deview nhn애자일개발 tdd_질문답

  • 2. 얘기꺼리NHN 개발자 정말 TDD하고 있나요?NHN에서 TDD하면 팀장이 좋아하나요?NHN에서는 이런 코드도 테스트하나요?NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?골라보세요!
  • 3. NHN 개발자 정말 TDD하고 있나요?
  • 4. 현황TDD를 잘 활용하는 개발자가 많은 것은 아님코드 작성 후 테스트 코드를 작성하는 개발자도 많음전반적으로 TDD에 대한 개발자들의 인식은 긍정적이고 매우 적극적임
  • 5. 활동TDD를 포함한 품질 개선 활동을 장려하고 확산하는 지원 조직 ‘생산성혁신랩’ 신설교육(Live Coding), 기술지원(짝 프로그래밍), 프로젝트 파견(테스트 인프라 구축) 등을 통해 현장지원 수행
  • 6. 결과TDD에 대한 다양한 지원으로 현업에서도 TDD를 수행하는 개발자가 점점 증가하는 추세새롭게 TDD를 수행하는 개발자는 해당 조직 내에서 Seed 역할최근 TDD를 넘어 ATDD도 확산
  • 8. 현황전사적 품질 활동(Quality Practice, 줄여서 QP) 도입 전/후가 다름도입 전, 팀장의 성향에 따라 TDD활동에 대한 시각이 엇갈림도입 후, 인식의 변화로 긍정적인 시각의 팀장 증가
  • 9. 활동2009년 전사적 품질활동 본격적으로 도입여러 품질활동 중 ‘테스트 자동화’ 를 특별히 강조품질활동을 통해 산출 된 수치 및 정성적 평가가 성과로 연결
  • 10. 결과TDD 결과로 서비스의 품질과 팀의 성과에 긍정적인 작용을 함팀장이 인정하지 않더라도 개발자가 TDD를 해야 한다고 주장할 수 있는 강력한 근거가 생김
  • 11. NHN에서는 이런 코드도 테스트하나요?
  • 12. 현황NHN내의 개발자 사이에서 테스트 작성범위에 대한 논쟁이 있음테스트 커버리지 100% 달성해야 하는가? Mock 어디까지 사용해야 하는가?Action(혹은 Controller) 테스트 해야 하는가?
  • 13. 현황(Cont`) - 예시public void joinToCafebook(Cafebook book, Article relatedArticle, CafeUsercurrentUser) {cafeBookDAO.insert(book);articleDAO.insert(relatedArticle);cafeUserDAO.insert(currentUser);}이런 코드도 Mock을 이용해서 단위 테스트 해야 하나?* 위 예는 실제 서비스 코드와 유사한 가상코드입니다.
  • 14. 활동각 서비스 별 코드리뷰 혹은 단체 토론 교육을 통해 실제 서비스 상황 중심으로 테스트에 관한 심층적 논의논의를 하다 보면 아래 단어가 자주 등장 ROI유지보수성통합테스트,Acceptance Test상태검증, 행위검증, Mock
  • 15. 결과아직 전사적으로 뚜렷한 합의점은 찾지 못한 상태‘서비스의 품질을 향상시킨다’라는 관점을 견지하며 지속적으로 고민하고 있는 상황
  • 16. NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?
  • 17. 현황품질활동을 시작하며 각 서비스 별 테스트 커버리지 수치를 측정해당 수치는 서비스 품질의 대표성을 갖기 때문에 해당 수치를 보며 품질향상에 대한 의욕이 고취되는 개발자도 있음반면 서비스의 품질을 높이려는 본래 의도와는 달리 테스트 커버리지 수치만 올리려는 개발자도 있음
  • 18. 활동단순 수치의 달성이 아닌 품질향상이라는 본질적 의미를 반복적으로 강조정기적으로 서비스 별 품질활동 상황을 확인생산성혁신랩의지원 활동으로 현장에서는 서비스 품질 향상에 더욱 집중할 수 있게 함예)품질활동 제도 정비, 도구 지원및 개선 등
  • 19. 결과더 좋은 테스트 혹은 효과적인 테스트에 대한 개발자의 관심이 커짐품질향상에 집중함으로 인해 높은 커버리지를 달성한 서비스는 자긍심을 가짐
  • 20. 결과(Cont`)반복되는 강조에도 여전히 본질인 품질에 집중하는 개발자와 그렇지 않은 개발자로 나뉨높은 테스트 커버리지 수치가 품질을 보장하지 않음수치는 품질의 부산물