분류 전체보기
-
유용한 스크립트 모음Linux/ubuntu 2024. 9. 23. 14:09
구분자(space)를 탭으로 취환하여 명령결과를 보기 쉽게 바꾸어줌mount | column -t'coloumn -t'를 사용하여 터미널에서 읽기 쉽게 보여줌 메모리 많이 사용하는 프로세스 top 10 ps aux | sort -nr -k 4 | head -10 특정 시간이 지나면 명령어를 자동 종료timeout 5s toptimeout [Ns] [COMMAND]top -d 1 현재 위치 하위의 디렉토리별 파일 수 카운트find . -xdev -type d -exec /bin/echo -n "{}: "\; -exec sh -c "ls {} | wc -l" \;-xdev 어떤 프로세스가 io interrupt를 기다리고 있는지 확인while true; do date; ps auxf | awk '{if(..
-
리눅스 환경에서 작업한 프로그램 트러블 슈팅 방법Linux/ubuntu 2024. 9. 4. 17:17
리눅스 환경에서 내가 작성한 프로그램에 문제가 생겼다면, 어떻게 분석할까?아래와 같은 순서로 문제에 접근해보자1. 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인2. 1.이 아니라면 부하를 확인3. 2.이 아니라면 메모리 사용량 확인4. 3이 아니라면 디스크 사용량 확인 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인재부팅을 통해 동일한 문제가 발생되는지 재현을 해보자 부하를 확인해보자컴퓨터의 로드를 확인가능 uptime cat /proc/cpuinfo 메모리 사용량을 확인해보자메모리 사용량 확인free -m 디스크 사용량을 확인해보자용량 많이 차지하는 디렉토리 찾기 du -h --max-depth=1 2>/dev/null du -sh *
-
싱글턴 패턴 적용프로그래밍 언어/C++ 2024. 8. 21. 19:48
프로그램을 개발하다 보면 예상치 못한 동작이 발생하여 프로그램 에러가 발생하게 된다이러한 부작용을 줄이기 위한 다양한 방법이 있지만 이 글에서는 싱글턴 패턴을 사용한 방법을 포스팅한다 싱글턴 패턴은 말 그대로 '어플리케이션에서 특정 클래스의 인스턴스가 오직 하나만 존재하도록 보장하는 디자인 패턴' 이다c++에서 아래와 같이 구현할 수 있다class noncopyable{ public: noncopyable(const noncopyable&) = delete; void operator=(const noncopyable&) = delete; protected: noncopyable() = default; ~noncopyable() = default;}; 복사생성과 '='를 통한 대입연산을 delete..
-
DNS 레코드소프트웨어 및 프로그래밍/기타 2024. 8. 9. 13:05
dns 레코드란도메인 이름과 관련된 정보를 저장하는 데이터베이스 항목 DNS는 인터넷에서 도메인 이름을 IP 주소로 변환하는 시스템으로, 다양한 유형의 레코드를 통해 여러 가지 정보를 제공, DNS 레코드 종류는 아래와 같음 A 레코드 (Address Record): 도메인 이름을 IPv4 주소에 매핑AAAA 레코드: 도메인 이름을 IPv6 주소에 매핑CNAME 레코드 (Canonical Name Record): 한 도메인 이름을 다른 도메인 이름으로 매핑, 주로 별칭을 만들 때 사용MX 레코드 (Mail Exchange Record): 이메일을 수신할 메일 서버를 지정NS 레코드 (Name Server Record): 도메인을 관리하는 네임서버를 지정TXT 레코드: 도메인에 대한 임의의 텍스트 정보를 ..
-
std::count_if프로그래밍 언어/C++ 2024. 7. 23. 16:07
std::count_if는 C++ 표준 라이브러리의 헤더에 정의된 함수 템플릿입니다. 이 함수는 범위 내에서 특정 조건을 만족하는 요소의 개수를 세는 데 사용됩니다. std::count_if는 조건을 지정하는 데 사용하는 함수 또는 함수 객체를 매개변수로 받아들입니다. 사용 사례:#include #include #include int main() { std::vector vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 짝수의 개수를 세기 위한 람다 함수 auto is_even = [](int n) { return n % 2 == 0; }; // std::count_if를 사용하여 조건을 만족하는 요소의 개수를 셈 int count = std::cou..
-
사용자 정의 리터럴(literal)프로그래밍 언어/C++ 2024. 7. 23. 16:03
C++ 표준 라이브러리에는 사용자 정의 리터럴(user-defined literals)을 정의할 수 있는 기능이 존재특정 형식의 값을 쉽게 생성할 수 있도록 도와줌 사용자 정의 리터럴의 기본 사용법사용자 정의 리터럴을 정의하려면 operator""을 사용합니다. 예를 들어, 길이를 나타내는 meter와 kilometer 리터럴을 정의할 수 있습니다.#include class Length {public: explicit Length(long double value) : value_(value) {} long double getValue() const { return value_; }private: long double value_;};Length operator"" _m(long doubl..
-
std::tie프로그래밍 언어/C++ 2024. 7. 23. 15:44
여러 변수를 묶어 하나의 튜플로 반환하는 기능을 제공주로 여러 변수에 대한 참조를 한 번에 설정하거나, 함수의 반환값을 다중 변수에 분해할 때 사용됨C++11에서 도입 사용사례:#include #include std::tuple getValues() { return {42, 3.14, "hello"};}int main() { int i; double d; std::string s; std::tie(i, d, s) = getValues(); std::cout 함수에서 여러 값을 반환할 때 std::tie를 사용하면 쉽게 값을 분해 가능 값을 무시하기반환값 중 일부를 무시하고 싶을 때 _와 같은 명명된 무시 변수를 사용할 수 있음C++17의 구조화된 바인딩과 달리, std::..