[C++] 디자인패턴 RAII를 이용한 자원관리
·
dev tech
RAII (Resource Acquisition Is Initialization : 자원 획득은 초기화이다)C++ 창시자인 비야네 스트로스트룹이 제안한 자원관리를 자동화하는 C++의 디자인 패턴자원의 획득과 해제를 객체(객체의 포인터객체)의 수명과 연결 → 자동으로 효율적으로 자원(메모리, 파일 등 )관리, 메모리 누수를 해결 🧩 C++에서 기본적인 메모리자원 관리방식획득한 자원은 프로그램이 종료되기전까지 메모리를 차지하며 존재한다. ( 프로그램이 종료시에는 운영체제가 해제 )delete작업 : 동적할당 객체의 소멸자 함수 호출 & 객체가 차지하는 메모리 반환stack에 할당된 변수(자동변수) : 범위( 함수, 블록 )를 벗어나는 경우 자동으로 소멸heap에 할당된 변수(동적 할당변수) : 명시적으로 d..
Google Test framework의 기본개념 및 사용법
·
dev tech
운영체제 lab 개발하면서 google test framework를 처음으로 사용해보았습니다. 기본개념 및 사용법을 기억하기 위해 기록합니다!! Google Test framework: 호스트 PC 환경 혹은 서버 개발 환경에서 실제와 비슷하게 동작할 수 있는 테스트 환경( H/W를 mocking을 통해 S/W만으로 테스트 가능 ) ::testing( ::gtest ) : Google Test 프레임워크에서 사용되는 네임스페이스(namespace), 테스트 관련 기능들이 구현( TEST를 비롯한 매크로 & 함수 )ASSERT_EQ(A, B); - Fail되는 순간 테스트가 멈춤EXPECT_EQ(A, B); - 결과 값 Pass/Fail 여부에 상관없이 계속 진행하고, 마지막에 Fail 된 테스트를 알려준..
Make 및 Makefile의 개념 및 사용
·
dev tech
운영체제 lab 개발하면서 make 처음으로 사용해보았습니다. 기본개념 및 사용법을 기억하기 위해 기록합니다!! Make: 유닉스계열 운영체제에서 사용되는 빌드 자동화 도구 - 빌드(build) : 소스코드를 실행가능한 프로그램으로 변환하는 과정( 컴파일, 링크, 리소스 결합 등 )# -c : 소스코드를 컴파일하여 오브젝트 생성 gcc -c main.c foo.c bar.c # -o : 하나이상의 오브젝트파일을 대상으로 실행파일 생성(링크) gcc -o app.out main.o foo.o bar.o - 주로 C/C++ 프로젝트에서 사용 - Makefile에 정의된 빌드 작업에 따라 빌드를 실행 → 빠르고 효율적인 빌드가 가능해진다. - Incremental build : 반복적인 빌드 과정에서 변경된 ..
WSL(Windows Subsystem for Linux)의 개념과 기본명령
·
dev tech
리눅스용 윈도우 하위 시스템(WSL, Windows Subsystem for Linux): 윈도우 운영체제에 포함된 하위 시스템으로 호스트 운영체제에서 분리된 애플리케이션이 독립적으로 실행될 수 있도록 격리한 시스템이다. 완전한 리눅스 가상 머신(VM)을 실행하지 않고도 기본적으로 리눅스 명령 줄 도구, 유틸리티, 그리고 리눅스에서 사용하던 ELF64 바이너리를 그대로 윈도우에서 실행할 수 있도록 하는 새로운 윈도우 운영체제 호환성 계층을 구축한다. => 리눅스용으로 제공되는 각종 프로그램과 편리한 도구들을 window용으로 포팅하거나 window용 버전을 구할 필요가 없어지는 장점을 가진다!! 에뮬레이션( emulation:복제 ) : 한 시스템이 다른 시스템의 기능을 모방하도록 하는 것이다. 대표적으..
형상관리 Git 사용법
·
dev tech
23.12.01 codeit강의보면서 공부했던 내용들입니다 [ git 개념 및 도구들 ] git : 버전관리 도구 github : 버전관리되 내용들을 백업저장 = 원격저장소 → 협업을 도와줌 git bash : Windows에서 Git을 설치할 때 함께 제공되는 터미널 환경 => 윈도우 사용자가 Git 명령어를 실행하고 Git 저장소를 관리할 수 있는 환경 => Bash 셸을 기반으로 하여 Windows에서도 유닉스/리눅스 커맨드를 사용할 수 있는 환경 +) Git Bash Here : 해당 위치에서 Git Bash로 작업을 시작 [ git 시작하기 ] repository : 프로젝트 디렉토리, .git디렉토리 - 시점별(버전별) 기록 commit : 프로젝트 디렉토리의 모습을 하나의 버전으로 남기는 행..
갬짱
'dev tech' 카테고리의 글 목록