일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Javascript
- 수학
- dataframe
- c
- Prefix Sums
- 소수
- align-items
- c++
- SK바이오사이언스
- Flexbox
- 강화학습
- Gap
- pandas
- stl
- Codility
- 확률
- series
- skt membership
- Design Pattern
- CSS
- spring
- 통신사할인
- 상태
- grid
- 백준
- 포토샵
- 알고리즘
- Photoshop
- 에라토스테네스의 체
- margin
- Today
- Total
목록CS/C++ (61)
sliver__

TDD 접근 방식을 따르는 RPN(Reverse Polish Notation) 계산기 애플리케이션을 개발하는 방법을 살펴보겠습니다. RPN은 후위 표기법이라고도 합니다. RPN 계산기 애플리케이션에서 기대하는 것은 후위 수학 표현식을 입력으로 받아들이고 평가된 결과를 출력으로 반환하는 것입니다. 단계별로 애플리케이션을 개발하는 동안 TDD 접근 방식을 따를 수 있는 방법을 보여주고 싶습니다. googletest 폴더는 필요한 gtest 및 gmock 헤더 파일이 있는 gtest 테스트 라이브러리입니다. 이제 libgtest.a는 이전 연습에서 만든 Google 테스트 정적 라이브러리입니다. make 유틸리티를 사용하여 프로젝트를 빌드할 것이므로 Makefile을 배치했습니다. src 디렉토리는 프로덕션 ..

Google 테스트 프레임워크는 꽤 많은 플랫폼에서 작동하는 오픈 소스 테스트 프레임워크입니다. TDD는 단위 테스트와 어느 정도의 통합 테스트에만 중점을 두지만 Google 테스트 프레임워크는 다양한 테스트에 사용할 수 있습니다. 테스트 케이스를 소형, 중형, 대형, 충실도, 복원력, 정밀도 및 기타 유형의 테스트 케이스로 분류합니다. 단위 테스트 사례는 소형, 통합 테스트 사례는 중간, 복잡한 기능 및 승인 테스트 사례는 대규모 범주에 속합니다. 또한 그 일부로 Google 모의 프레임워크를 번들로 제공합니다. 그러나 Google 모의 프레임워크는 CppUnit과 같은 다른 테스트 프레임워크와 함께 사용할 수 있습니다. [Installing Google test framework on Ubuntu] ..

테스트 주도 개발(TDD)은 extreme 프로그래밍 방식입니다. TDD에서는 테스트 사례로 시작하여 테스트 사례를 성공시키는 데 필요한 프로덕션 코드를 작성합니다. 아이디어는 한 번에 하나의 테스트 케이스 또는 시나리오에 집중하고 테스트 케이스가 통과하면 다음 시나리오로 넘어갈 수 있다는 것입니다. 이 과정에서 새로운 테스트 케이스가 통과되면 프로덕션 코드를 수정해서는 안됩니다. 즉, 새로운 기능을 개발하거나 버그를 수정하는 과정에서 우리는 두 가지 이유로만 프로덕션 코드를 수정할 수 있습니다. 테스트 케이스가 통과하는지 확인하거나 코드를 리팩터링하기 위해서입니다. TDD의 주요 초점은 단위 테스트입니다. 그러나 어느 정도 통합 및 상호 작용 테스트로 확장될 수 있습니다. TDD를 따를 때 코드의 기능..
동시성 지원 모듈은 작업이라는 개념을 지원합니다. 작업은 여러 스레드에서 동시에 발생하는 작업입니다. packaged_task 클래스를 사용하여 동시 작업을 만들 수 있습니다. packaged_task 클래스는 스레드 함수, 해당 약속 및 기능 개체를 편리하게 연결합니다. 간단한 예제를 통해 packaged_task의 사용법을 이해해 봅시다. 다음 프로그램은 람다 식과 함수를 사용하여 약간의 함수형 프로그래밍을 맛볼 수 있는 기회를 제공합니다. #include #include #include #include #include using namespace std; int main ( ) { packaged_task addTask ( [] ( int firstInput, int secondInput ) { r..
#include #include using namespace std; void sayHello( promise promise_ ) { promise_.set_value ( "Hello Concurrency support library!" ); } int main ( ) { promise promiseObj; future futureObj = promiseObj.get_future( ); async ( launch::async, sayHello, move( promiseObj ) ); cout
모든 최신 프로그래밍 언어는 동시성을 지원하여 많은 작업을 동시에 실행할 수 있는 고급 API를 제공합니다. C++는 C++11부터 동시성을 지원하며 C++14 및 C++17에는 더 정교한 API가 추가되었습니다. C++ 스레드 지원 라이브러리는 멀티스레딩을 허용하지만 복잡한 동기화를 사용하여 긴 코드를 작성해야 합니다. 그러나 동시성을 통해 독립적인 작업을 실행할 수 있습니다. 루프 반복도 복잡한 코드를 작성하지 않고도 동시에 실행할 수 있습니다. 결론은 동시성을 통해 병렬화가 더 쉬워진다는 것입니다. 동시성 지원 라이브러리는 C++ 스레드 지원 라이브러리를 보완합니다. 이 두 가지 강력한 라이브러리를 함께 사용하면 C++에서 동시 프로그래밍이 더 쉬워집니다. #include #include using..