docker
docker docker container란? Simply put, a container is simply another process on your machine that has been isolated from all other processes on the host machine. That isolation leverages kernel nam...
docker docker container란? Simply put, a container is simply another process on your machine that has been isolated from all other processes on the host machine. That isolation leverages kernel nam...
docstring 작성 포맷 https://stackoverflow.com/questions/3898572/what-is-the-standard-python-docstring-format google style 은 다음과 같은데 타입 적는게 :가 아니라 괄호 안에 들어가서 마음에 안들고, 들여쓰기 때문에 가로축도 많이 차지하고, VSCode에서 힌...
데드락 [!tip] 데드락은 프로세스 2개, 자원 2개만 기억하면 된다. 데드락에는 프로세스 2개, 자원 2개가 필요하다는 사실만 기억하면 케이스를 만들어 낼 수 있다. 교착 상태 조건 4가지 다음 4가지 조건을 모두 만족하면 데드락이 발생한다. Mutual Exclusion : 상호 배제. 프로세스가 타겟 자원을 요구 시 타 프로세스...
DP를 번역하면 동적 계획법 이지만 책 “컴퓨터 과학이 여는 세계”에서는 다이나믹 프로그래밍을 본질적인 의미를 더 살려서 기억하며 풀기 로 더욱 적절하게 번역하였다. 즉, 이전에 구한 작은 부분 문제의 답을, 다음 문제를 푸는데 이용하는 문제 해결 방식.이전 답을 재활용 하면서 더 큰 문제를 해결하는 방식 이다. 피보나치 수열 구하기(그냥 일반항에...
그냥 락 거는 것 보다, 다음 API들을 사용하는게 좋다. 스코프를 벗어나면 자동으로 해제되는 lock을 걸기 위해서는 (since C++ 17 || boost) #include <mutex> std::mutex mutex1; std::mutex mutex2; std::scoped\_lock lock(mutex1, mutex2); // ...
결론부터 말하자면 없어진다. 함수들이 전후 호출 순서 종속성이 생기는 경우 생성자에서 처리하는게 깔끔하다. 생성자에서 처리 안하고 f1()호출하고 c f2()호출하는 식이면, 이 호출 순서를 강제할 수 없으니 c f2()에서 내부에 종속성 변수가 NULL인지와 같이 잘 초기화되었는지 체크해주는 루틴이 들어가 줘야 한다. 생성자는 리턴이 안되니 ex...
전역 함수를 threadMain으로 지정해 실행하는건 그냥 다른 언어 처럼 하면 되는데, 객체의 메서드를 threadMain으로 지정하는건 몇 가지 신경써야 할 부분이 있다. 보통 다른 언어 같으면, Thread 클래스 상속받아서 t.run() 해주면 끝인데, C++은 그렇지 못하다. 구식 방법 원래 클래스 내부의 메서드를 threadMain으로 지...
lambda가 왜 필요하냐면, 함수 포인터는 함수이기 때문에 상태를 가질 수 없다. 반복문 같은데 인자로 함수를 넘겨야 하는 상황에서 그 함수가 상태를 가져야 하는 경우, 함수 포인터를 사용할 수 없다. 따라서 상태를 가지는 함수를 만들기 위해서 함수 객체라는 트릭을 사용해야 했다. 함수 객체는 객체인데, operator()를 오버로드해서 함수처럼 호...
vector<cls>가 있을 때, cls.value들만 뽑아내고 싶은 경우가 빈번하게 있다. 일반적인 경우 그냥 반복문 돌면서 처리해주면 되지만, 라이브러리 등을 사용할 때는 반드시 cls.value로 이루어진 iterator를 넘겨야만 하는 경우가 있다. 이런 경우 처음으로 드는 생각은 함수형의 filter()인데, 이는 copy가 발생...
int main() { int size = 4; char buf[size] = {'*', '*', '*', '*'}; strncpy(buf, "asd", size - 1); // buf[size - 1] = '\0'; printf("%s\n", buf); return 0; } asd\*�FUUUU 따라서 ...