SW 그리고 아빠 엔지니어링 중...

아는 만큼 보이고, 경험해봐야 알 수 있고, 자꾸 써야 내 것이 된다.

개발 22

mock object(모의 객체) 파일 자동 생성 툴

* 본 글은 모의 객체에 대한 설명이 아니기에 mock object에 대한 이해는 약식으로 정리한 others 혹은 참조 링크 내용에서 확인 부탁 드립니다. Unit Test를 한다면 마주하는 의존성 제거 문제 Unit Test를 진행하다 보면 의존성 제거를 위해 테스트가 원활하지 않은 경우가 있는데 이때 의존성 제거를 위해 gtest mock이 있지만 그냥은 사용할 수 없고 별도의 mock class(혹은 파일)을 우선 생성해야 한다. Android Studio와 같이 JAVA 기반 IDE를 써보면 새로운 파일 생성 시 자동으로 xxxTest 클래스를 생성하는 데, 이전 글(당신의 회사는 Test 도구가 있는가?)에서도 확인하였지만 VS는 테스트 도구를 Enterprise 버전부터 지원하기에 자체적을 ..

개발/환경구축 2023.09.12

코드 커버리지 설치 및 사용 방법(VS 2017+OpenCppCoverage)

코드 커버리지 란? 테스트 커버리지(test coverage)는 코드 커버리지(code coverage)라고도 하는데, 쉽게 말해 코드가 얼마큼 테스트되고 있는지를 나타내는 소프트웨어 품질 지표이다. 당신의 회사는 Test 도구가 있는가? 회사 VS에서 코드 커버리지를 확인해 보려는데 IDE에서 해당 기능을 지원하지 않았다. 이럴 수가!!!😨 찾아보니 VS는 Enterprise 버전부터 지원을 하고 있었다. (지금이 어떤 시대인데 이런 똑똑한 사람들 같으니라고..) https://visualstudio.microsoft.com/ko/vs/compare/ OpenCppCoverage 소개(코드 커버리지 툴) 다행히 GPL v3.0 License를 가진 코드 커버리지 툴이 있어서 소개하고자 한다. 👍👍👍 1..

개발/환경구축 2023.08.29

클린코드(clean code) - 약식 정리

Clean Code라는 단어는 굉장히 매력적이지만 실제로 대단한 임팩트는 없다. 하지만 레거시 코드를 어떻게 해야 할지에 대한 고민과 앞으로 유지보수가 힘들게 만드는 코드를 지양하기 위한 바로미터가 될 수 있다. 로버트 C 마틴의 지침 절대적으로 지켜야 하는 내용이 아니다. 팀이나 공동체에서 서로 동의하는 합리적인 원칙을 세우기 위한 소통 Clean Code는 소통을 위한 기초지식을 제공하고 생각할 거리를 던져주는 책 Robert C. Martin - Wikipedia From Wikipedia, the free encyclopedia American software consultant Robert Cecil Martin (born 5 December 1952), colloquially called "U..

개발 2023.08.22

TDD : Unit Test 환경 설정(Visual Studio 2017 + gtest)

들어가기 전 정~말 오랜만에 글을 쓴다. 최근 사내 프로젝트에 Visual Studio 2017에 gtest을 사용하여 Unit Test 환경을 구축하였다. 10년 전쯤 외국 프로젝트를 하면서 gtest를 처음 접하고 잠깐 맛만 봤었음에도 되게 불편했던(환경구축 및 사용이 쉽지 않았던) 기억이 있었다. 결론부터 얘기하자면 지금도 너무 힘들게 구축을 했다. 개발 방식도 10년 전과 크게 다르지 않고, C++ 컴파일의 탈을 쓴 C 언어식 구현 방식의 탓도 있겠지만 java의 Unit Test 환경과 너무 비교가 되었다. java 개발 IDE는 코드를 생성하면 자동으로 테스트 코드가 생성되는데 VS에서는 직접 코딩을 해서 TC를 추가해야 한다. 이 차이 너무 갭이 크다 ㅠㅠ 참고 : 2023.01.10 - [..

개발/환경구축 2023.03.22

TDD : Unit Test 환경 설정(IntelliJ + java + JUnit)

유닛테스트 프레임워크 가 있는데 언어별 가장 많이 사용되는 UnitTest 프레임워크는 다음과 같다. java -> JUnit C++ -> google test Python -> pytest 본 글에서는 Java에서 JUnit을 사용하여 Unit Test 환경을 구축해보고자 한다. 더보기 만약 환경 설정 없이 TDD를 해보고 싶으면 아래 글 참조 2022.12.14 - [개발] - 개발 환경 없이 TDD(test driven development) 연습 해보기 Unit Test를 위한 환경 세팅 : IntelliJ에서 maven으로 JUnit을 설치한다. * IDE를 IntelliJ를 쓰는 이유는 eclipse도 상관없긴 하지만 eclipse는 리팩터 기능이 별로 없다. (추가로 plug in 설치하고 ..

개발/환경구축 2023.01.10

[개념] TDD 란?

Agile 은 방법론이 아니라 하나의 철학이다. 더보기 . 업무를 작은 공략 단위로 정하고, 이를 자주 반복하는 방식으로 개발하는 접근 방식 Agile의 철학아래 여러 방법론이 존재한다. (Scrum, XP, LEAN) L 전 세계적으로 Scrum이 유행이고 한국은 거의 Scrum만 쓰는 것 같다. 이 Scrum은 개발에서만 쓰는 것이 아니라 이런 프로세스가 적합한 곳에서 두루 쓰이고 있다. 왜 Agile을 언급하는가? Agile의 행동 "실천" 방법론으로 XP를 발표했는데 이 XP 내용중 하나가 TDD 이기 때문이다. TMI : 이 TDD가 개발자 사이에서 각광받기 시작해서 따로 켄트백이 TDD를 더 자세히 책을 썼다고한다. TDD를 영접하기 전에 TDD 창시자는 켄트 백이다. 더보기 켄트 백 . XP..

개발/TDD 2022.12.22

개발 환경 없이 TDD(test driven development) 연습 해보기

아래 사이트는 TDD 써보고 싶긴, 한데 TDD 좋은 것 같긴 한데, TDD를 훈련해보기 위한 TDD 계의 백준이다. 더보기 실제로 TDD 연습을 한다고 할 때 - 코드를 작성해야 하고 - 이 코드를 실행할 수 있는 SDK가 있어야 하고 - TDD를 지원하는 framework가 있어야 한다. 이렇듯 아무리 TDD 연습을 해보려고 마음먹어도 이런 환경이 갖추어져 있지 않으면 연습해보기가 만만치 않기에 이런 사이트가 얼마나 고마운 일인지 모른다. 만약 여러분이 이 사이트를 통해서 TDD 경험을 쌓는 데 많은 도움을 받았다면 donate를 통해 개발자에게 마음을 전해주시기 바랍니다. https://cyber-dojo.org/creator/home cyber-dojo a place to practice prog..

개발/TDD 2022.12.14

[C/C++]VSCode + MinGW + makefile 환경 설정 하기

VS code는 java에 eclipse 같은 소스 편집기 툴인데 다양한 plug In을 추가하여 추가하여 강력한 IDE로 사용할 수 있다. C++로 밥 벌어먹는 사람으로서 간단한 C++ 코드를 빌드를 해보기 위해 무료 편집기인 VSCode를 설치해보았다. https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorit..

개발/환경구축 2022.12.11

[Raspberry PI] 커널 모듈 빌드를 위한 환경 셋팅

커널에 모듈을 추가하기 위해선 현재 시스템과 동일한 리눅스 커널 헤더가 있어야 한다. 우선 /usr/src 에 리눅스 커널 헤더가 있는지 확인해 본다. pi@raspberrypi:/usr/src $ ls sense-hat 제가 가지고 있는 라즈베리 파이에는 리눅스 커널 헤더가 없어서 다운로드하였다. pi@raspberrypi:/usr/src $ sudo apt-get install linux-headers 더보기 pi@raspberrypi:/usr/src $ sudo apt-get install linux-headers Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, s..

개발/환경구축 2022.11.27
320x100