SlideShare a Scribd company logo
iOS UnitTest
김창기
Naver Labs
UnitTest를 글로 배웠
어요
왜 UnitTest를 작성하나
요?
UnitTest를 작성하면
버그가 줄어드나요?
우리는 모두
Clean Code를 원해요
하지만 Refactoring 할
시간이 없어요
왜?
수정하고
수정하고 - 테스트하고
수정하고 - 테스트하고 -
사이드 이펙트 나고
수정하고 - 테스트하고 -
사이드 이펙트 나고 - 디버
깅하고
수정하고 - 테스트하고 - 사
이드 이펙트 나고 - 디버깅
하고 - 수정하고
수정하고 - 테스트하고 - 사
이드 이펙트 나고 - 디버깅
하고 - 수정하고 - 테스트하
고
수정하고 - 테스트하고 - 사이
드 이펙트 나고 - 디버깅하고 -
수정하고 - 테스트하고 - 사이
드 이펙트 나고
수정하고 - 테스트하고 - 사이드 이
펙트 나고 - 디버깅하고 - 수정하고
- 테스트하고 - 사이드 이펙트 나고
- 디버깅하고
수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 -
사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -
수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이
펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 -
테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이
펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -
테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 -
디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 - 테스트하고
- 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이펙트 나고 - 디
버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 -
사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -
테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 - 테스트하고 - 사이드 이
펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -
수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이
펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고
- 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고
UnitTest를 이용하면
Ultra Fast Refactoring
Test 가능한 Code
Test 가능한 Code
간결하고 명확한 Code
Bug Free는 덤으로
하지만 UI가 있는 iOS에
서는 UnitTest하기가 힘
들어요
뜻이 있는 곳에 길이 있
다
Demo
FAQ
Q: CI 서버는 필요한가요?
A: 있으면 좋지만 그런데 힘 빼지
말아요.
Q: Coverage는 얼마나?
A: Coverage는 목적이 아니라 결
과.
간결한 코드를 작성하면 높아져
요.
Q: Coverage는 얼마나?
A: Coverage는 목적이 아니라 결
과.
간결한 코드를 작성하면 높아져
요.
반대로 높이려는 노력을 하다보
면 더욱 간결한 코드가 나와요.
Q: TDD는 어떨까요?
A: 처음에는 무리일 수 있어요.
일단 UnitTest에 익숙해지게…
하지면 경우에 따라 훨씬 더 빨리
작업할 수 있어요.
Q: 어떤 부분을 함께 공부해야
하나요?
A: Clean Code, Refactoring,
Design Pattern, 덤으로 TDD
Q: Test가 불가능한 부분도 있지
않나요?
A: Mocking과 Dependencey
Injection이 있어요
Q: UnitTest에 가장 큰 장애요소
는 무엇인가요?
A: 자기자신
Q: UnitTest에 가장 큰 장애요소
는 무엇인가요?
A: UnitTest에 대한 경험과 신뢰
가 없는 자기자신
감사합니다

More Related Content

Viewers also liked

Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in Swift
SeongGyu Jo
 
Swift server-side-let swift2016
Swift server-side-let swift2016Swift server-side-let swift2016
Swift server-side-let swift2016
Eric Ahn
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
NAVER D2
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
NAVER D2
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
NAVER D2
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
NAVER D2
 
Swift internals
Swift internalsSwift internals
Swift internals
Jung Kim
 
Swift and Xcode8
Swift and Xcode8Swift and Xcode8
Swift and Xcode8
Hyuk Hur
 
Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0
Sehyun Park
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기
Wanbok Choi
 
Swift package manager
Swift package managerSwift package manager
Swift package manager
성관 윤
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
Yongha Yoo
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
병한 유
 
Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기
YoonBong Steve Kim
 
Everything You (N)ever Wanted to Know about Testing View Controllers
Everything You (N)ever Wanted to Know about Testing View ControllersEverything You (N)ever Wanted to Know about Testing View Controllers
Everything You (N)ever Wanted to Know about Testing View Controllers
Brian Gesiak
 
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
Jong-Hyun Kim
 
Test driven developement
Test driven developementTest driven developement
Test driven developementBhavik Panchal
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
Yongjun Kim
 
TDD: Test Driven Development 첫번째 이야기
TDD: Test Driven Development 첫번째 이야기TDD: Test Driven Development 첫번째 이야기
TDD: Test Driven Development 첫번째 이야기
Ji Heon Kim
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이
HYUNJEONG KIM
 

Viewers also liked (20)

Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in Swift
 
Swift server-side-let swift2016
Swift server-side-let swift2016Swift server-side-let swift2016
Swift server-side-let swift2016
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
 
Swift internals
Swift internalsSwift internals
Swift internals
 
Swift and Xcode8
Swift and Xcode8Swift and Xcode8
Swift and Xcode8
 
Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기
 
Swift package manager
Swift package managerSwift package manager
Swift package manager
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
 
Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기
 
Everything You (N)ever Wanted to Know about Testing View Controllers
Everything You (N)ever Wanted to Know about Testing View ControllersEverything You (N)ever Wanted to Know about Testing View Controllers
Everything You (N)ever Wanted to Know about Testing View Controllers
 
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
국립 부산기계공고 아이폰 애플리케이션 개발 멘토링 발표회 자료
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 
TDD: Test Driven Development 첫번째 이야기
TDD: Test Driven Development 첫번째 이야기TDD: Test Driven Development 첫번째 이야기
TDD: Test Driven Development 첫번째 이야기
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이
 

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인가?
 

D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

  • 10. 수정하고 - 테스트하고 - 사이드 이펙트 나고
  • 11. 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버 깅하고
  • 12. 수정하고 - 테스트하고 - 사 이드 이펙트 나고 - 디버깅 하고 - 수정하고
  • 13. 수정하고 - 테스트하고 - 사 이드 이펙트 나고 - 디버깅 하고 - 수정하고 - 테스트하 고
  • 14. 수정하고 - 테스트하고 - 사이 드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이 드 이펙트 나고
  • 15. 수정하고 - 테스트하고 - 사이드 이 펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고
  • 16. 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이 펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이 펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이펙트 나고 - 디 버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -수정하고 - 테스트하고 - 사이드 이 펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이 펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고 -테스트하고 - 사이드 이펙트 나고 - 디버깅하고 - 수정하고 - 테스트하고 - 사이드 이펙트 나고 - 디버깅하고
  • 21. 하지만 UI가 있는 iOS에 서는 UnitTest하기가 힘 들어요
  • 22. 뜻이 있는 곳에 길이 있 다
  • 23. Demo
  • 24. FAQ
  • 25. Q: CI 서버는 필요한가요? A: 있으면 좋지만 그런데 힘 빼지 말아요.
  • 26. Q: Coverage는 얼마나? A: Coverage는 목적이 아니라 결 과. 간결한 코드를 작성하면 높아져 요.
  • 27. Q: Coverage는 얼마나? A: Coverage는 목적이 아니라 결 과. 간결한 코드를 작성하면 높아져 요. 반대로 높이려는 노력을 하다보 면 더욱 간결한 코드가 나와요.
  • 28. Q: TDD는 어떨까요? A: 처음에는 무리일 수 있어요. 일단 UnitTest에 익숙해지게… 하지면 경우에 따라 훨씬 더 빨리 작업할 수 있어요.
  • 29. Q: 어떤 부분을 함께 공부해야 하나요? A: Clean Code, Refactoring, Design Pattern, 덤으로 TDD
  • 30. Q: Test가 불가능한 부분도 있지 않나요? A: Mocking과 Dependencey Injection이 있어요
  • 31. Q: UnitTest에 가장 큰 장애요소 는 무엇인가요? A: 자기자신
  • 32. Q: UnitTest에 가장 큰 장애요소 는 무엇인가요? A: UnitTest에 대한 경험과 신뢰 가 없는 자기자신