이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

반응형

코딩 26

"\n" 과 "endl" 의 차이점

"\n" 과 "endl" 의 차이점 \n과 endl 모두 출력할 때 개행(줄 띄움)을 위해 사용한다. 둘의 차이는 endl은 출력 버퍼를 비워주는 과정(flush)이 들어가 있어서 \n보다 느리다. 버퍼는 입출력을 프로그램에 바로 전달하지 않고 임시 메모리 공간에 저장한 후 한번에 전송하는 역할을 한다. 버퍼를 즉시 비우고 싶다면 endl을 그렇지 않다면 \n을 사용한다. 하지만 구현체(ex printf, println, cout 등등의 출력 함수)에 따라서 "\n"도 버퍼를 비우도록 처리하는 경우도 있다고 한다.

코딩/C and C++ 2022.10.03

malloc calloc realloc의 차이점

malloc calloc realloc의 차이점 malloc 리턴 타입이 void* 즉 보이드 포인터다. 동적할당의 경우 어떤값을 리턴할지 명시해놓을 수 없기 때문에 void 로 리턴함. 할당된 메모리를 초기화하지 않기 때문에 쓰레기값이 그대로 들어가있다. calloc 리턴 타입이 void* 즉 보이드 포인터다. malloc 과는 다르게 할당된 메모리를 0으로 초기화 한다. realloc malloc 이나 calloc 을 통해 할당된 메모리의 공간을 더 늘리거나 줄이기 위해 사용된다. 무조건 필요한 만큼 메모리 공간이 있다는 가정하에 해야한다. 만약에 기존의 공간이 충분하지 않은경우를 예로 설명을 하자면 malloc 으로 10의 공간을 할당한 후에 realloc 으로 5만큼의 공간을 늘리려는데 mallo..

코딩/C and C++ 2022.10.03

C++ gtest

C++ gtest gtest란? Google Test Framework로 유닛 테스트에 사용됨. Google Test는 Google의 특정 요구사항 및 제약사항을 기반으로 테스트 기술팀에서 개발한 Testing 프레임워크임. gtest Git 링크 https://github.com/google/googletest 컴파일러 C ++ 11 표준 이상을 준수하는 코드베이스 및 컴파일러가 필요함. gcc 5.0 이상 clang 5.0 이상 MSVC 2015+ 사용 가능 OS Linux, Windows, Mac 왜 Google Test를 사용해야 하나? 1. 테스트는 독립적이고 반복가능해야 합니다. gtest는 디버깅을 빠르게 할 수 있도록 테스트를 분리시켜 실행할 수 있도록 해 줌. 2. 테스트는 조직화가 잘 ..

코딩/C and C++ 2022.01.02

Golang gtest

Golang gtest gtest란? Golang의 장점 중에 하나는 코드를 테스트하기 위해 별도의 환경을 구축할 필요가 없다는 점임. Golang에서는 gtest를 통해 아주 간편하게 코드를 test할 수 있음. Google Test Framework로 유닛 테스트에 사용됨. Google Test는 Google의 특정 요구사항 및 제약사항을 기반으로 테스트 기술팀에서 개발한 Testing 프레임워크임. 왜 Google Test를 사용해야 하나? 1. 테스트는 독립적이고 반복가능해야 합니다. gtest는 디버깅을 빠르게 할 수 있도록 테스트를 분리시켜 실행할 수 있도록 해 줌. 2. 테스트는 조직화가 잘 되어있으며 테스트되는 코드의 구조를 반영할 수 있어야 함. gtest는 데이터와 서브루틴을 공유할 수..

코딩/GoLang 2022.01.02

golang vscode args 전달 방법

golang vscode args 전달 방법 vscode 에서 golang project를 생성하면 default로 아래와 같이 .vscode/launch.json 파일이 생성됨. [예제 launch.json] { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "reques..

코딩/GoLang 2022.01.02

godoc

godoc godoc이란? godoc은 go 프로그램의 문서를 생성하게 해줌. [godoc 링크] https://pkg.go.dev/golang.org/x/tools/cmd/godoc godoc 설치 [설치 명령어] go get golang.org/x/tools/cmd/godoc godoc 문서 생성 아래 명령어를 사용하면 작성한 코드와 사용하고 있는 package를 가지고 문서를 만들어줌. 그리고 문서를 볼 수 있는 local server를 제공함. 해당 문서를 통해 작성한 프로그램에서 사용한 다양한 golang package의 docs를 오프라인으로 확인할 수 있음. [명령어] godoc -http=:6060 포트는 변경해도 됨. [결과 확인] localhost:6060으로 접속하면 documenta..

코딩/GoLang 2021.12.25

Golang race flag (-race)

Golang race flag (-race) 개발할 할 시 Thread를 사용하면 deadlock(교착상태)과 data race condition(경쟁상태) 처리를 빼놓을 수가 없음. Golang은 이러한 deadlock과 data race를 방지하기 위해 Build시 race flage를 제공하고 있음. 사용방법 go run -race main.go go test -race testpkg go build -race testpkg go install -race testpkg 예) race flag를 사용하면 data race관련 오류를 log로 확인할 수 있음 이러한 deadlock(교착상태)과 data race condition(경쟁상태)를 해결하기 위해 race flag를 사용하여 조기에 오류를 확인..

코딩/GoLang 2021.12.25

C++ WMI library사용

C++ WMI library사용 목적 C++로 Windows OS 종류를 확인해야 했었음. 방법을 찾다가 WMI에 대해 알게되었음. WMI에 대해 알아보도록 함. WMI(Windows Management Instrumentation) 란? WMI란 Windows Management Instrumentation으로 Windows에 대한 Microsoft의 주요 관리 기술이라고 불려짐. MS에서 확인해보면 WMI 설명이 약간 복잡하게 되어있는데 요약해서 중점만 설명하자면 WMI는 원격으로 Windows host의 정보를 확인 할 수 있는 tool임. 알아보고자 하는 windows host의 network 정보, host name, 계정 정보 등 각종 windows 리소스를 확인 할 수 있음. WMI는 hos..

코딩/C and C++ 2021.12.22

C++ windows 로컬 그룹 정책 확인

C++ windows 로컬 그룹 정책 확인 목표 windows의 로컬 그룹 정책 값을 C++에서 확인. 예제로 로컬 그룹 정책 중에서 보안설정 > 로컬 정책 > 보안 옵션 > 네트워크 액세스 : 익명 SID/이름 변환 허용 (Access allow anonymous SID/Name Translation) 항목 설정값을 확인하는것이 목표. [로컬 그룹 정책 편집기 실행 단축키] Win+R gpedit.msc 로컬 그룹 정책 확인할 수 있는 다양한 방법 로컬 그룹 정책을 확인 할 수 있는 방법들로는 NetUserModalsGet 함수 사용, Registry, secedit로 총 4가지 방법이 있음. 순서대로 장,단점을 비교해보도록함. NetUserModalsGet 함수 사용 (결과 : 일부 사용 가능) [H..

코딩/C and C++ 2021.12.22
반응형