SlideShare a Scribd company logo
1 of 187
Download to read offline
NHN NEXT	

이선협
C++
관리
 
 비법
코드
 품질
지피지기면 백전백승이라는데…!
!
도대체 코드 품질이 뭐야?
‘코드 품질’에 대해 따로 정의된 문서는 없다
그래서 찾아봤습니다
http://stackoverflow.com/questions/405243/how-do-we-define-code-quality

코드 품질에 대한 어느 외국인의 생각
어려운 영어보다는 쉬운 그림으로 봅시다
Bad code.. 나쁜 코드가 있습니다
Good code!
Bad code..
코드를 Perfect하게 만듭시다
Good code!
Bad code..
How?
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
5가지 원칙을 적용
How?
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
5가지 원칙을 적용
Refactoring!
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
5가지 원칙을 적용
5가지 원칙에 따라 리팩토링을 하면 좋은 코드가 됩니다.
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
5가지 원칙을 적용
Refactoring!
뭔소리야?
StepByStep
천리길도한걸음부터
- 모든 예제는 다음 환경에서 제작됬습니다 -!
!
Visual Studio 2013!
Windows 8
!
!
보기 좋은 떡이 먹기도 좋다고!
!
보기 좋은 코드를 만듭시다
Legible
Many
void func( int value ) {
/*
…
*/

}
void func( int value )
{
/*
…
*/

}
void func(int Value) {
/*
…
*/

}
void func(int value){
/*
…
*/

}
void Func(int Value){
/*
…
*/

}
void func( int iValue )
{
/*
…
*/

}
void Func( int iValue )
{
/*
…
*/

}
void FUNC( int VALUE )
{
/*
…
*/

}
class CPeopleState {
public:
CPeopleState();
~CPeopleState();
!
/*
…
*/

}
class PeopleState
{
public:
PeopleState();
~PeopleState();
!
/*
…
*/

}
class peopleState {
public:
peopleState();
~peopleState();
!
/*
…
*/

}
class people_state
{
public:
people_state();
~people_state();
!
/*
…
*/

}
이 세상에는 정말 많은 코딩 스타일이 있습니다
그 수많은 코딩 스타일에 적응하기엔 좀…
다들 표준 표준 하는 이유가 있습니다.
Good code! Bad code..
코딩 컨벤션 정하기
정했으면 각자 코딩
코 딩 완 료 !
다같이 코드 리뷰…
리팩토링
Good code! Bad code..
코딩 컨벤션 정하기
정했으면 각자 코딩
코 딩 완 료 !
다같이 코드 리뷰…
리팩토링
좋은 방법 입니다. But…
Good code! Bad code..
코딩 컨벤션 정하기
정했으면 각자 코딩
코 딩 완 료 !
다같이 코드 리뷰…
리팩토링
좋은 방법 입니다. But…
Good code! Bad code..
코딩 컨벤션 정하기
정했으면 각자 코딩
코 딩 완 료 !
급한 상황에 무슨 코드 리뷰!!
리팩토링
좋은 방법 입니다. But…
Good code! Bad code..
코딩 컨벤션 정하기
정했으면 각자 코딩
코 딩 완 료 !
급한 상황에 무슨 코드 리뷰!!좋은 방법 입니다. But…
망함
이럴땐 툴을 사용해 봅시다.
CppCheck
Google CppLint
잠재적 오류 검출
코딩 스타일 체크
CppCheck
Google CppLint
잠재적 오류 검출
코딩
CppCheck
• 공짜
• 위험한 코드를 지적해주는 도구
• 여러 IDE 지원!
• Hudson, Jenkins와 같은 CI 도구에도 사용가능
• IDE와 별도로 진단 도구 지원
• http://cppcheck.sourceforge.net/
http://cppcheck.sourceforge.net/
설치 파일
CI 도구 연동 가능
Visual Studio 연동 가능
디렉토리 단위로 검사 가능
Visual Studio 2013과 연동한 모습
위험한 코드를 작성할 경우 아래과 같이 알려줍니다
위험한 코드를 제거했을 경우 사라집니다
다양한 경우를 체크해줍니다
http://cppcheck.sourceforge.net/manual.pdf
자세한 것은
CppCheck
Google CppLint
잠재적
코딩 스타일 체크
Google CppLint
• 공짜
• 구글의 C++ 코딩 컨벤션인지 검사하는 도구
• 파이썬으로 제작됨
• 구글 컨벤션을 사용할 것이 아니라면 사용 X
• http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
• http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
python으로 제작됨
간단한 코드가 있습니다
* 이 항목은 Mac OS 환경에서 작업했습니다
스크립트 실행
* 이 항목은 Mac OS 환경에서 작업했습니다
스크립트 실행
구글 C++ 컨벤션에 맞지 않는 항목을 전부 출력
* 이 항목은 Mac OS 환경에서 작업했습니다
컨벤션에 맞춰 수정된 코드
* 이 항목은 Mac OS 환경에서 작업했습니다
!
!
어떤 상황이 오더라도 수정 가능한!
!
유연성 있는 코드를 만듭시다
Flexible
양 한 마리를 그려줘!
고갱님
음 금방 만들겠군
나
고객님 원하시는 양 나왔습니다~
void sheep() {!
! printf(“양”);

}
생각해보니 돼지도 필요해!
고갱님
뭐 그 정도 쯤이야
고객님 원하시는 돼지 나왔습니다~
void pig() {!
! printf(“돼지”);

}
void sheep() {!
! printf(“양”);

}
생각해보니 소, 닭, 말, …, 개도 필요해!
고갱님
;;;;;;;;;;
나
.
.
.
도대체 언제 만들어???
접고 튈까..
이대로는 안된다!
대책을 세우자
원하는 걸 전부 하드코딩 할 수는 없다
요구사항은 계속 바뀌고 늘어나기 때문
Solution
유연한(Flexible)!
코드를 제작하자
고객님 원하시는 건 이 상자에 있습니다.
알아서 상상해서 가져가세요~
void box(char* animal) {!
! printf(“%s”, animal);

}
내가 원하던게 이거야!
고갱님
나
결국 유연성있는 코드는 시간단축의 지름길!
But..
유연성 있는 코드는 초기에 제작할 때 오래걸림
(여러 상황 분석 및 필요한 코드 패턴 조사 등… 시간이 필요한 요소가 존재하기 때문)
But..
유연성 있는 코드는 초기에 제작할 때 오래걸림
Then
자주 바뀔 가능성이 있는 코드만 유연하게 제작
(여러 상황 분석 및 필요한 코드 패턴 조사 등… 시간이 필요한 요소가 존재하기 때문)
But..
유연성 있는 코드는 초기에 제작할 때 오래걸림
Then
자주 바뀔 가능성이 있는 코드만 유연하게 제작
(여러 상황 분석 및 필요한 코드 패턴 조사 등… 시간이 필요한 요소가 존재하기 때문)
결국 자주 바뀐다는 것은 그만큼 시간을 소비하는 것이기 때문에!
자주 바뀔 가능성 있는 부분은 유연하게 제작하는게 시간을 더 절약 할 수있다.
미리 간단한 설계를 하는 것이 좋습니다
손으로 그려도 좋고
UML 도구를 사용해도 좋습니다
설계하기
설계하기
코 딩
설계하기
코 딩
??????
제대로 가고있나..?
이럴땐 툴을 사용해 봅시다.
Visual Studio UML Viewer
• 작성된 코드를 UML로 볼 수 있음
• 클래스가 많으면 로딩이 좀 걸린다
*쉽게*
클래스 다이어그램을 볼 수 있습니다.
설계하기
코 딩
Good code! Bad code..
확인하기
리팩토링
설계하기
코 딩
Good code! Bad code..
확인하기
리팩토링
프로젝트 진행하면서 생각날때마다

겸사겸사 확인해봅시다
!
!
검증하는데 시간 많이 투자 하지 말고!
!
테스트가 쉬운 코드를 만듭시다
Testable
TDD(Test-Driven Development)
TDD의 장점
TDD의 장점
하도 유명해서 검색만 해도 많이 나옴
(해보세요)
단,TDD가 부정적인 효과를 불러오는 프로젝트는!
!
과감하게 생략하기!
EX) 게임 컨텐츠에서 매직 넘버 찾기?
코 딩
Good code! Bad code..
테스트
리팩토링
코 딩
Good code! Bad code..
테스트
리팩토링
이 과정이 오래걸리면 안됨!
어떻게 테스트를 하지?
어떻게 테스트를 단축하지?
이럴땐 툴을 사용해 봅시다.
Visual Studio CppUnit
• 테스트 자동화 가능
• 테스트 프로젝트로 분리 가능
• Visual Studio Professional 이상 필요
Visual Studio에서 CppUnit을 사용 하는 방법은 다음 링크 참조
http://www.slideshare.net/sunhyouplee/c-tdd
!
!
쓸데없는 지출은 패가망신하기 좋은 지름길 입니다!
!
메모리, CPU 사용량을 절약하며 코딩합시다
Economic
Case 1
Memory Leak
메모리를 사용한 후 반환하지 않는 것
프 로 세 스 시 작
메모리 누수 발생
성능 저하 / 버그
프 로 세 스 시 작
메모리 누수 발생
성능 저하 / 버그
특히나 C++은 메모리 사용에 민감!
http://msdn.microsoft.com/ko-kr/library/x98tx3cf.aspx
MSDN 짱짱맨
메모리 누수 확인 및 중단점 설정
C++의
 메모리
 관리
 방법
 1
혹은 스마트 포인터를 사용해도 됩니다
std::shared_ptr
C++의
 메모리
 관리
 방법
 2
레퍼런스 카운트 방식을 직접 코딩해도 상관 X
C++의
 메모리
 관리
 방법
 3
특수한 경우를 제외하면

그냥 스마트 포인터 쓰는게 편하다
cocos2d-x와 objective-c가 그렇게 관리합니다
C++의
 메모리
 관리
 방법
 4
비싼 툴을 사용하자!
써본적이 없어서 사실 잘 몰라요..
Case 2
프 로 세 스 시 작
CPU 사용량 증가
성능저하/유저이탈
중간에 걸리는 성능 저하의 원인이 뭘까?
이럴땐 툴을 사용해 봅시다.
Visual Studio Profiler
• 성능 측정 도구
• 메모리 사용량은 측정 불가능!
• Visual Studio Professional 이상 필요
• 대체로 프로파일러 도구는 비싸다!
• 드림스파크 덕분에 사용가능 ㅜㅜ
프로파일링 해볼 프로그램부끄러운 고등학교 습작…
메인 메뉴 시놉시스
상점
스테이지 1
스테이지 2게임오버 후 메인
이렇게 진행 해보겠습니다
게임오버 스샷을 못찍음;;
상단 메뉴 - 분석 - 성능 분석 시작
(한국어 기준)
분석방법
분석방법
상단 메뉴 - 분석 - 성능 분석 시작
(한국어 기준)
다양한 분석 가능
분석결과
분석결과
메인 메뉴 / 시놉시스
분석결과
메인 메뉴 / 시놉시스 스테이지 1
분석결과
메인 메뉴 / 시놉시스 스테이지 1 상점
분석결과
메인 메뉴 / 시놉시스 스테이지 1 상점
스테이지 2
분석결과
메인 메뉴 / 시놉시스 스테이지 1 상점
스테이지 2
게임오버 / 메인메뉴
분석결과
메인 메뉴 / 시놉시스 스테이지 1 상점
스테이지 2
게임오버 / 메인메뉴
CPU 사용량이 많은 부분
분석결과
분석결과
해당 영역만 필터링 가능
분석결과
해당 영역만 필터링 가능
분석결과
해당 영역만 필터링 가능
매번 호출되는 함수를 제외하고

파티클 관련된 부분이 상당히 많이 호출됨
분석결과
해당 영역만 필터링 가능
매번 호출되는 함수를 제외하고

파티클 관련된 부분이 상당히 많이 호출됨
실제로 상점에서 산 무기가 파티클을 상당히 많이 사용함
그리고 렌더타겟 텍스쳐를 잘못사용하여 메모리도 많이 사용함!
분석결과
해당 영역만 필터링 가능
매번 호출되는 함수를 제외하고

파티클 관련된 부분이 상당히 많이 호출됨
실제로 상점에서 산 무기가 파티클을 상당히 많이 사용함
이 불꽃 부분입니다.!
!
실제로 개선하는 것은 생략
그리고 렌더타겟 텍스쳐를 잘못사용하여 메모리도 많이 사용함!
!
!
아무리 보기 좋고 잘만든 코드여도!
!
만들고자 했던 코드가 아니면 무용지물!
Compliant
아니 만들고자 했던 코드말고 다른 코드 만드는 개발자도 있나?!
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
실제로 일어날 수 있는 가능한 얘기
여기 두 개발자가 있습니다
음 앞으로 만들어야하는 클래스에

A기능을 사용한 B기능이 필요하겠군
B기능을 가지고있는 클래스를 작성해주세요
B기능을 어떻게 만들지?
음.. C기능을 사용해서 만들어야겠다.
B기능을 가지고있는 클래스를 작성해주세요
B기능을 가진 클래스를 만들었습니다
며칠 뒤
제가 원한건 이게 아닌데요??? 네???
제가 원한건 이게 아닌데요??? 네???
?
왜 이런걸까요?
커뮤니케이션의 부재!
왜 이런걸까요?
커뮤니케이션의 부재!
팀내 의견 불일치!
왜 이런걸까요?
커뮤니케이션의 부재!
팀내 의견 불일치!
의사전달 부족!
왜 이런걸까요?
커뮤니케이션의 부재!
팀내 의견 불일치!
의사전달 부족!
기획서 버전 불일치!
왜 이런걸까요?
커뮤니케이션의 부재!
팀내 의견 불일치!
의사전달 부족!
기획서 버전 불일치!
기획 의도 불이해
왜 이런걸까요?
잘못된 코드
커뮤니케이션의 부재!
팀내 의견 불일치!
의사전달 부족!
기획서 버전 불일치!
기획 의도 불이해
왜 이런걸까요?
어떻게 해결해야 할까요?
커뮤니케이션의 활성!
어떻게 해결해야 할까요?
어떻게 해결해야 할까요?
커뮤니케이션의 활성!
팀내 의견 통일!
어떻게 해결해야 할까요?
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
어떻게 해결해야 할까요?
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
기획서 버전 관리 / 일치!
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
기획서 버전 관리 / 일치!
기획 의도 이해
어떻게 해결해야 할까요?
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
기획서 버전 관리 / 일치!
기획 의도 이해
어떻게 해결해야 할까요?
정상적인 코드
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
기획서 버전 관리 / 일치!
기획 의도 이해
어떻게 해결해야 할까요?
정상적인 코드
결국 ‘팀 프로젝트’라는 것을 이해해야 합니다
커뮤니케이션의 활성!
팀내 의견 통일!
의사전달 확실하게!
기획서 버전 관리 / 일치!
기획 의도 이해
어떻게 해결해야 할까요?
정상적인 코드
결국 ‘팀 프로젝트’라는 것을 이해해야 합니다
근데 어떻게 해결해???
커뮤니케이션 오해
회 의 합 시 다 !
길 어 지 는 회 의 …
피로 누적  집중력 저하
하고 싶어도 힘들다…
커뮤니케이션 오해
회 의 합 시 다 !
길 어 지 는 회 의 …
피로 누적  집중력 저하
이제는 Web의 시대!
Web을 이용하여 커뮤니케이션을 원활하게 해봅시다
이럴땐 툴을 사용해 봅시다.
Github
• git을 이용한 버전관리 시스템을 제공해주는 웹 서비스
• 소스를 오픈하면 무료로 사용 가능
• 공짜로 private을 이용하고 싶다면 bitbucket을 사용
• README.md를 통해 문서화도 가능
관리자
클라이언트 프로그래머서버 프로그래머
이슈 및 마일스톤(일정) 관리
이슈 체크 및!
마일스톤에따라 개발 진행
서버 코드 혹은 문서를 보며!
클라이언트 프로그래밍 진행
EX)
Google docs
• 여러 사용자가 동시에 문서 편집이 가능
• 스프레드시트, 워드프로세스, 프레젠테이션 전부 제공
• 회의록을 동시에 보며 작성할 수 있다.
• 코멘트 작성 가능
기획 문서 작성
소요 시간, 난이도!
코멘트 작성
개발자 기획자
EX)
PM
검토 후!
실행 여부 결정
5가지 원칙을 지킨 결과…
덕분에 코드 품질이 좋아졌습니다!
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
But.. 아무리 좋은 코드, 개발자여도 해석에는 시간이 걸립니다

팀내 모든 개발자들과 공유하려면 시간이 오래 걸리겠죠?
Good code!
Legible TestableFlexible CompliantEconomic
Bad code..
Solution ?
Good code!
Good code!
문서화
잘 만들어진 코드에!
!
‘문서’라는 조미료를 넣어봅시다
잘 만들어진 코드에!
!
‘문서’라는 조미료를 넣어봅시다
설계 및 규칙 정하기
각 자 코 딩 하 기
Good code! Bad code..
툴을 이용하여 확인
리팩토링문서화
설계 및 규칙 정하기
각 자 코 딩 하 기
Good code! Bad code..
툴을 이용하여 확인
리팩토링문서화
별로 문제 없어 보인다
설계 및 규칙 정하기
각 자 코 딩 하 기
Good code! Bad code..
툴을 이용하여 확인
리팩토링문서화
별로 문제 없어 보인다
설계 및 규칙 정하기
각 자 코 딩 하 기
Good code! Bad code..
툴을 이용하여 확인
리팩토링문서화 할 시간이!
어디있어;;
문제 발생
설계 및 규칙 정하기
각 자 코 딩 하 기
Good code! Bad code..
툴을 이용하여 확인
리팩토링문서화 할 시간이!
어디있어;;
문제 발생
신입 개발자
양이 너무 많아;;!
뭐가 뭔지 모르겠다..
Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!
소 스 코 드 뭉 텅 이 들
신입 개발자
에라 모르겠다!
래핑* 시켜버리자!
래핑*: 원 소스를 자신의 소스로 덮어버리는 것
Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Bad code.. Bad code..
Wrapping!
Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!Good code! Good code!
소 스 코 드 뭉 텅 이 들

More Related Content

What's hot

[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
 
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014devCAT Studio, NEXON
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~UnityTechnologiesJapan002
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵devCAT Studio, NEXON
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 

What's hot (20)

[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
 
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Iocp advanced
Iocp advancedIocp advanced
Iocp advanced
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 

Viewers also liked

C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기Heo Seungwook
 
C++과 Lua script연동
C++과 Lua script연동C++과 Lua script연동
C++과 Lua script연동선협 이
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDonghyun Seo
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례선협 이
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
Functional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwiftFunctional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwift선협 이
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험Ohgyun Ahn
 
Tour of Vue.js
Tour of Vue.jsTour of Vue.js
Tour of Vue.js선협 이
 
시작하자 단위테스트
시작하자 단위테스트시작하자 단위테스트
시작하자 단위테스트YongEun Choi
 
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008Andrea Francia
 
구글테스트
구글테스트구글테스트
구글테스트진화 손
 
Operation & maintenance aspects of a Water treatment plant.
Operation & maintenance aspects of a Water treatment plant.Operation & maintenance aspects of a Water treatment plant.
Operation & maintenance aspects of a Water treatment plant.Home
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
SonarQube 로 Unity 프로젝트 관리
SonarQube 로 Unity 프로젝트 관리SonarQube 로 Unity 프로젝트 관리
SonarQube 로 Unity 프로젝트 관리EG Lim
 
[Gpg2권 박민근] 1.13 스택 와인딩
[Gpg2권 박민근] 1.13 스택 와인딩[Gpg2권 박민근] 1.13 스택 와인딩
[Gpg2권 박민근] 1.13 스택 와인딩MinGeun Park
 
Av foundation record
Av foundation recordAv foundation record
Av foundation recordEunjoo Im
 

Viewers also liked (20)

C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
 
C++과 Lua script연동
C++과 Lua script연동C++과 Lua script연동
C++과 Lua script연동
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
C++11
C++11C++11
C++11
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Functional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwiftFunctional Reactive Programming With RxSwift
Functional Reactive Programming With RxSwift
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험
 
Tour of Vue.js
Tour of Vue.jsTour of Vue.js
Tour of Vue.js
 
시작하자 단위테스트
시작하자 단위테스트시작하자 단위테스트
시작하자 단위테스트
 
HTML5 Tutorial(Korean)
HTML5 Tutorial(Korean)HTML5 Tutorial(Korean)
HTML5 Tutorial(Korean)
 
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008
 
구글테스트
구글테스트구글테스트
구글테스트
 
Operation & maintenance aspects of a Water treatment plant.
Operation & maintenance aspects of a Water treatment plant.Operation & maintenance aspects of a Water treatment plant.
Operation & maintenance aspects of a Water treatment plant.
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
SonarQube 로 Unity 프로젝트 관리
SonarQube 로 Unity 프로젝트 관리SonarQube 로 Unity 프로젝트 관리
SonarQube 로 Unity 프로젝트 관리
 
[Gpg2권 박민근] 1.13 스택 와인딩
[Gpg2권 박민근] 1.13 스택 와인딩[Gpg2권 박민근] 1.13 스택 와인딩
[Gpg2권 박민근] 1.13 스택 와인딩
 
Av foundation record
Av foundation recordAv foundation record
Av foundation record
 
D2 ppt
D2 pptD2 ppt
D2 ppt
 

Similar to C++ 코드 품질 관리 비법

131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
소스리딩워크샵 - NHN NEXT
소스리딩워크샵 - NHN NEXT소스리딩워크샵 - NHN NEXT
소스리딩워크샵 - NHN NEXTMinsuk Lee
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기Sehun Kim
 
스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기Mijeong Park
 
레거시 프로젝트 개선기 (사내 발표 자료)
레거시 프로젝트 개선기 (사내 발표 자료)레거시 프로젝트 개선기 (사내 발표 자료)
레거시 프로젝트 개선기 (사내 발표 자료)SungChanHwang
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화Jaehoon Choi
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다이상한모임
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote진수 한
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 
3주차 language
3주차 language3주차 language
3주차 language준혁 이
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013호정 이
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기Ahreum Kim
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할Hoyoung Choi
 

Similar to C++ 코드 품질 관리 비법 (20)

131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
소스리딩워크샵 - NHN NEXT
소스리딩워크샵 - NHN NEXT소스리딩워크샵 - NHN NEXT
소스리딩워크샵 - NHN NEXT
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기
 
스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기스위처를 만드는 아이오의 개발팀 이야기
스위처를 만드는 아이오의 개발팀 이야기
 
레거시 프로젝트 개선기 (사내 발표 자료)
레거시 프로젝트 개선기 (사내 발표 자료)레거시 프로젝트 개선기 (사내 발표 자료)
레거시 프로젝트 개선기 (사내 발표 자료)
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote
 
ecdevday7
ecdevday7ecdevday7
ecdevday7
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
3주차 language
3주차 language3주차 language
3주차 language
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 

More from 선협 이

웹 개발을 위해 꼭 알아야하는 보안 공격
웹 개발을 위해 꼭 알아야하는 보안 공격웹 개발을 위해 꼭 알아야하는 보안 공격
웹 개발을 위해 꼭 알아야하는 보안 공격선협 이
 
MongoDB 이해하기
MongoDB 이해하기MongoDB 이해하기
MongoDB 이해하기선협 이
 
Deep dive into Vue.js
Deep dive into Vue.jsDeep dive into Vue.js
Deep dive into Vue.js선협 이
 
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막선협 이
 
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017선협 이
 
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2ndVue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd선협 이
 
Reactive Programming With Swift
Reactive Programming With SwiftReactive Programming With Swift
Reactive Programming With Swift선협 이
 
왜 Swift를 해야할까요?
왜 Swift를 해야할까요?왜 Swift를 해야할까요?
왜 Swift를 해야할까요?선협 이
 
MSBuild + Git + Jenkins
MSBuild + Git + JenkinsMSBuild + Git + Jenkins
MSBuild + Git + Jenkins선협 이
 
Post Effect 테스트
Post Effect 테스트Post Effect 테스트
Post Effect 테스트선협 이
 

More from 선협 이 (10)

웹 개발을 위해 꼭 알아야하는 보안 공격
웹 개발을 위해 꼭 알아야하는 보안 공격웹 개발을 위해 꼭 알아야하는 보안 공격
웹 개발을 위해 꼭 알아야하는 보안 공격
 
MongoDB 이해하기
MongoDB 이해하기MongoDB 이해하기
MongoDB 이해하기
 
Deep dive into Vue.js
Deep dive into Vue.jsDeep dive into Vue.js
Deep dive into Vue.js
 
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
오픈소스를 여행하는 히치하이커를 위한 안내서 - 자막
 
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
Metal 기반 특별한 UI/UX 제공하기 - Let'Swift 2017
 
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2ndVue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
Vue.js와 Reactive Programming 자막 :: Vuetiful Korea 2nd
 
Reactive Programming With Swift
Reactive Programming With SwiftReactive Programming With Swift
Reactive Programming With Swift
 
왜 Swift를 해야할까요?
왜 Swift를 해야할까요?왜 Swift를 해야할까요?
왜 Swift를 해야할까요?
 
MSBuild + Git + Jenkins
MSBuild + Git + JenkinsMSBuild + Git + Jenkins
MSBuild + Git + Jenkins
 
Post Effect 테스트
Post Effect 테스트Post Effect 테스트
Post Effect 테스트
 

C++ 코드 품질 관리 비법