본문 바로가기

Programming

(4)
[JavaScript] ? 기호의 또 다른 사용 - 옵셔널 체이닝 자바스크립트(JavaScript)를 포함한 대부분의 언어에서 ? 기호는 삼항 연산자(conditional operator)를 의미한다. 하지만 자바스크립트에서는 객체 이름 뒤에 ?를 붙여서 사용하는 경우를 볼 수 있다. 이건 무슨 문법일까? 아직 잘 알려지지 않은 건지 검색해도 삼항 연산자만 나와서 찾기가 어려웠다. 옵셔널 체이닝 옵셔널 체이닝(optional chaining)은 의미 그대로 선택적으로 체이닝을 적용할 수 있는 기능이다. 체이닝에 .을 적는 대신 앞에 ?를 넣어서 ?.으로 적으면 옵셔널 체이닝을 사용할 수 있다. conn?.release(); 이렇게 적을 경우 conn 객체가 null 또는 undefined일 경우, release 함수가 호출되지 않는다. 즉, null 또는 undefin..
[Bash] 리눅스 작업 관리자 리눅스 수업 시간에 숙제로 만든 프로그램입니다. 사용자별로 현재 실행되고 있는 프로세스 목록과 정보를 보여줍니다. 방향키로 선택할 수 있고, 엔터로 프로세스를 종료할 수 있습니다. Source Code: https://github.com/nbsp1221/linux-task-manager nbsp1221/linux-task-manager Task Manager in Linux. Contribute to nbsp1221/linux-task-manager development by creating an account on GitHub. github.com
[C++ STL] set, map 정렬 기준 바꾸는 방법 C++ STL에서 제공하는 set, map, multiset, multimap 등의 컨테이너는 자동으로 데이터를 정렬된 상태로 유지시켜 줍니다. 그래서 이러한 컨테이너에 데이터를 넣고 그대로 출력하기만 하면 오름차순으로 정렬된 데이터를 얻을 수 있죠. 하지만 가끔은 내림차순 정렬이 필요하거나 내가 원하는 방식대로 정렬되어야 하는 경우도 생깁니다. 이럴 때 어떻게 할 수 있을까요? set 컨테이너로 예를 들어 설명해 보겠습니다. set의 템플릿(template)을 살펴보면 다음과 같이 되어 있습니다. template _Kty 부분은 흔히 사용하는 키 타입을 설정하는 부분입니다. 우리가 봐야 할 부분은 바로 _Pr 부분입니다. 기본 값으로 less가 설정된 모습을 볼 수 있는데 이 less는 아래와 같이 정..
[C++] C++ 속도 측정 및 비교 모듈 내가 만든 알고리즘의 속도를 측정하거나 무엇이 더 좋은 성능을 보이는지 비교하고 싶을 때가 있습니다. 시간 측정 자체는 간단히 구현할 수 있지만, 그때마다 매번 만드는 것이 귀찮기도 하고 여러 코드 블록들을 한 번에 비교할 수 있으면 편할 것 같아서 직접 클래스로 만들어 보았습니다. 소요 시간 측정에는 chrono 라이브러리를 이용했습니다. 이를 이용하면 최대 나노초(nanosecond) 단위의 정밀한 시간 측정이 가능합니다. #include "PerformanceBenchmark.hpp" #include #include using namespace std; void codeBlock1() { unordered_map data; bool isKeyExist; data["Test 1"] = 10; data..