(오라클 SQL튜닝을 위한 쿼리문 작성법 강좌)오라클 SQL/쿼리 튜닝은 간단한 SQL구문 최적화 부터 시작을 하게되죠, SQL을 처음 사용할 때 부터 최적화 하는 방법에 주의해서 공부하시면 저절로 튜닝 됩니다. 본 PPT 강좌는 탑크리에듀(www.topcredu.co.kr), 오라클자바커뮤니티(ojc.asia)에서 제공하는 교육강좌 입니다.
(쿼리 변환, Query Transformation,서브쿼리푸시,SubQuery Pushing)SQL튜닝을 위해 서브쿼리의 드라이빙을 제어...탑크리에듀(구로디지털단지역3번출구 2분거리)
(개발시 SQL튜닝은 기본 입니다.)서브쿼리튜닝, 쿼리 변환(Query Transformation)에 대한 이해는 SQL튜닝의 핵심입니다. 서브쿼리 푸시 및 서브쿼리의 드라이빙을 제어할 수 있는 push_subq, no_push_subq 힌트에 대해 알아보고 실행방법에 따른 서브쿼리의 종류도 설명한 영상 입니다. SQL튜닝 교육은 탑크리에듀(www.topcredu.co.kr)에서 해결해 드리겠습니다.
안녕하세요!
2016년도에 작성한 문서입니다.
기존에 PHP5에 익숙하신 분들이 새로이 PHP7이 나오면서,
간략하게 나마 무엇이 바뀌었는지,
그리고 PHP 프레임워크를 시작하기 전에 표준적인 코딩은 어떤 것인지 알아보기 위해 문서를 작성하였습니다.
많은 분들에게 도움이 되길 바라며!! ^^
* 참고 : PHP 5.5.9 이상 버전에서도 위 예제코드가 됩니다! >.<
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019Kenneth Ceyer
올바른 코드 작성을 고민하는 연구자들을 위하여 - 클린코드는 여러분의 코드를 복잡한 패턴으로 구현하여 시간을 잡아먹는, 겉만 화려한 장식이 아닙니다. 모델을 구현하고, 또 그것을 테스트 할 때 이것이 정말 올바른 코드인지 궁금하셨나요? 이 세션에서는 연구 모델을 작성할 때 발견할 수 있는, 빈번한 코드 악취(Code smell)들과, 그것들을 어떻게 없앨 수 있을지에 대해서 알아봅니다. 코드에 영혼을 불어넣고, 그 어떤 코드라도 부끄럽지 않게 구현할 수 있는 연구자들이 되어봅시다!
(오라클 SQL튜닝을 위한 쿼리문 작성법 강좌)오라클 SQL/쿼리 튜닝은 간단한 SQL구문 최적화 부터 시작을 하게되죠, SQL을 처음 사용할 때 부터 최적화 하는 방법에 주의해서 공부하시면 저절로 튜닝 됩니다. 본 PPT 강좌는 탑크리에듀(www.topcredu.co.kr), 오라클자바커뮤니티(ojc.asia)에서 제공하는 교육강좌 입니다.
(쿼리 변환, Query Transformation,서브쿼리푸시,SubQuery Pushing)SQL튜닝을 위해 서브쿼리의 드라이빙을 제어...탑크리에듀(구로디지털단지역3번출구 2분거리)
(개발시 SQL튜닝은 기본 입니다.)서브쿼리튜닝, 쿼리 변환(Query Transformation)에 대한 이해는 SQL튜닝의 핵심입니다. 서브쿼리 푸시 및 서브쿼리의 드라이빙을 제어할 수 있는 push_subq, no_push_subq 힌트에 대해 알아보고 실행방법에 따른 서브쿼리의 종류도 설명한 영상 입니다. SQL튜닝 교육은 탑크리에듀(www.topcredu.co.kr)에서 해결해 드리겠습니다.
안녕하세요!
2016년도에 작성한 문서입니다.
기존에 PHP5에 익숙하신 분들이 새로이 PHP7이 나오면서,
간략하게 나마 무엇이 바뀌었는지,
그리고 PHP 프레임워크를 시작하기 전에 표준적인 코딩은 어떤 것인지 알아보기 위해 문서를 작성하였습니다.
많은 분들에게 도움이 되길 바라며!! ^^
* 참고 : PHP 5.5.9 이상 버전에서도 위 예제코드가 됩니다! >.<
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019Kenneth Ceyer
올바른 코드 작성을 고민하는 연구자들을 위하여 - 클린코드는 여러분의 코드를 복잡한 패턴으로 구현하여 시간을 잡아먹는, 겉만 화려한 장식이 아닙니다. 모델을 구현하고, 또 그것을 테스트 할 때 이것이 정말 올바른 코드인지 궁금하셨나요? 이 세션에서는 연구 모델을 작성할 때 발견할 수 있는, 빈번한 코드 악취(Code smell)들과, 그것들을 어떻게 없앨 수 있을지에 대해서 알아봅니다. 코드에 영혼을 불어넣고, 그 어떤 코드라도 부끄럽지 않게 구현할 수 있는 연구자들이 되어봅시다!
boost라이브러리 중에서 가장 많이 사용하는 기능인 BOOST_FOREACH()와 shared_ptr의 내부 구조를 분석합니다. 그리고 boost의 내부 구현에 사용된 이 기능을 프로그래밍에 응용하는 방법을 제시합니다.
* BOOST_FOREACH 구조 분석 및 응용
* shared_ptr 구조 분석 및 응용
7. 4. 테스트 결과 보고 받기
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
8. 즉,
테스트 메소드를 사용해
테스트를 정의하고
단언 메소드를 기대 값을 정하며
테스트 스위트를 지원하고
테스트 결과를 보고 받을 수 있는
테스트 자동 프레임워크를 xUnit이라 한다.
9. xUnit?
최소한 알아야 할 것
테스트 정의
픽스처fixture?
스위트suite 정의
테스트 실행, 결과
xUnit 내부
테스트 명령
테스트 스위트 객체
젃차적 세상에서의 xUnit
10. struct F {
F() : i( 0 ) { BOOST_TEST_MESSAGE( "setup fixture" ); }
~F() { BOOST_TEST_MESSAGE( "teardown fixture" ); }
int i;
};
BOOST_FIXTURE_TEST_CASE( test_case1, F ) {
BOOST_CHECK( i == 1 );
++i;
}
BOOST_FIXTURE_TEST_CASE( test_case2, F ) {
BOOST_CHECK_EQUAL( i, 1 );
}
이 소스코드를 예로 들어 설명
테스트 픽스처 설치
SUT 실행
단언 메소드 호출
테스트 픽스처 해체
11. struct F {
F() : i( 0 ) { BOOST_TEST_MESSAGE( "setup fixture" ); }
~F() { BOOST_TEST_MESSAGE( "teardown fixture" ); }
int i;
};
BOOST_FIXTURE_TEST_CASE( test_case1, F ) {
BOOST_CHECK( i == 1 );
++i;
}
BOOST_FIXTURE_TEST_CASE( test_case2, F ) {
BOOST_CHECK_EQUAL( i, 1 );
}
테스트 픽스처 설치
인라인 설치 In-line Setup
위임 설치 Delegated Setup
암묵적 설치 Implicit Setup
12. struct F {
F() : i( 0 ) { BOOST_TEST_MESSAGE( "setup fixture" ); }
~F() { BOOST_TEST_MESSAGE( "teardown fixture" ); }
int i;
};
BOOST_FIXTURE_TEST_CASE( test_case1, F ) {
BOOST_CHECK( i == 1 );
++i;
}
BOOST_FIXTURE_TEST_CASE( test_case2, F ) {
BOOST_CHECK_EQUAL( i, 1 );
} SUT 실행
13. struct F {
F() : i( 0 ) { BOOST_TEST_MESSAGE( "setup fixture" ); }
~F() { BOOST_TEST_MESSAGE( "teardown fixture" ); }
int i;
};
BOOST_FIXTURE_TEST_CASE( test_case1, F ) {
BOOST_CHECK( i == 1 );
++i;
}
BOOST_FIXTURE_TEST_CASE( test_case2, F ) {
BOOST_CHECK_EQUAL( i, 1 );
}
테스트 픽스처 해체
가비지 컬렉션 해체 Garbage-Collected Teardown
인라인 해체 In-line Teardown
암묵적 해체 Implicit Teardown
자동 해체 Automated Teardown
14. xUnit?
최소한 알아야 할 것
테스트 정의
픽스처fixture?
스위트suite 정의
테스트 실행, 결과
xUnit 내부
테스트 명령
테스트 스위트 객체
젃차적 세상에서의 xUnit
15. SUT를 실행하기 위해 준비해야 하는 모든 것
설치, 해체를 책임진다.
class FooTest : public ::testing::Test {
protected:
virtual void SetUp() { ... }
virtual void TearDown() { ... }
};
TEST_F(FooTest, Test1) {
...
}
TEST_F(FooTest, Test2) {
...
}
16. xUnit?
최소한 알아야 할 것
테스트 정의
픽스처fixture?
스위트suite 정의
테스트 실행, 결과
xUnit 내부
테스트 명령
테스트 스위트 객체
젃차적 세상에서의 xUnit
23. xUnit?
최소한 알아야 할 것
테스트 정의
픽스처fixture?
스위트suite 정의
테스트 실행, 결과
xUnit 내부
테스트 명령
테스트 스위트 객체
젃차적 세상에서의 xUnit
24. 테스트 스위트에는
테스트 케이스가 있을 수도
테스트 스위트가 있을 수도
Composite 패턴
같은 방식으로 취급
컨테이너와 원소
25. xUnit?
최소한 알아야 할 것
테스트 정의
픽스처fixture?
스위트suite 정의
테스트 실행, 결과
xUnit 내부
테스트 명령
테스트 스위트 객체
젃차적 세상에서의 xUnit
26. 젂역 프로시저인 테스트 메소드
테스트 스위트 프로시저
테스트 메소드들의 배열을 인자로
더 자세한 내용은
Working Effectively with Legacy Code : Chapter 19 참고
27. reference
• google test
– http://code.google.com/p/googletest/
• boost
– http://www.boost.org/
• 오픈 소스 C/C++ 유닛 테스트 도구, Part 1
– http://www.ibm.com/developerworks/kr/library/au-ctools1_boost/