[멀티 쓰레드] Data Race 없는 티켓 발급기
이 포스트는 개인 연구를 기록 글로 부정확할 수 있습니다. 문제의 코드 void PacketWorker::init_new_client_ticket() { int new_player_ticket = get_new_client_ticket(); // ... } int PacketWorker::get_new_client_ticket() { ...
이 포스트는 개인 연구를 기록 글로 부정확할 수 있습니다. 문제의 코드 void PacketWorker::init_new_client_ticket() { int new_player_ticket = get_new_client_ticket(); // ... } int PacketWorker::get_new_client_ticket() { ...
코딩테스트 연습 - 디스크 컨트롤러 바로가기 문제 설명 문제 풀이 최대힙을 사용하는 우선순위 큐는 top 에 있는 원소를 꺼낼 때, O(1) 시간이 소요됨을 활용하고자 하였습니다. struct Comp { bool operator()(vector<int> lhs, vector<int> rhs) { ...
PCCP 모의고사 - 유전법칙 바로가기 문제 설명 진송이는 위 그림처럼 완두콩 자가 수분 실험을 진행하고자 합니다. 자가 수분한 완두콩은 4개의 자손을 남기게 됩니다. 잡종 완두콩(Rr)이 자가 수분하는 경우, 자손은 RR, Rr, Rr, rr 순서대로 남기고 순종 완두콩(RR, rr)이 자가 수분하는 경우, 자손은 부모와 같은 형질을...
이 포스트는 로버트 C.마틴의 Clean Code 속 10장(172p ~ 191p) 내용에 대한 정리입니다. “클래스를 설계할 때도, 함수와 마찬가지로, ‘작게’가 기본 규칙이라는 의미다.” (10장 172p) 작은 클래스 클래스는 깨끗한 함수처럼 물리적인 행 수로 크기를 제한하는 것이 아니라 함수가 한 가지 일을 잘 하는 것처럼 클래스...
라이브러리 란 코드를 작성할 때 재사용 가능한 코드의 모음을 말합니다. 라이브러리는 특정 작업을 수행하는 함수, 클래스, 값, 자료형을 포함할 수 있습니다. 프로그래머는 라이브러리를 사용해 깨끗한 코드를 효율적으로 작성할 수 있을 뿐만 아니라 모든 기능을 직접 구현할 필요가 없기 때문에 개발 시간도 단축할 수 있습니다. 라이브러리는 일반적으로 특...
이 포스트는 로버트 C.마틴의 Clean Code 속 9장(154p ~ 169p) 내용에 대한 정리입니다. “테스트 코드는 실제 코드만큼이나 프로젝트 건강에 중요하다.” (9장 168p) TDD 법칙 세 가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 ...
통신을 위해 소켓을 만들고 서버에서 bind와 listen 을 실행하고 클라이언트는 connect 를 실행한 하면 서버와 클라이언트는 간단한 패킷을 주고 받을 준비가 됬다고 할 수 있습니다. 패킷(packet)이란 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록입니다. 즉, 컴퓨터가 네트워크에서 데이터를 주고 받을 때 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 7장(130p ~ 142p) 내용에 대한 정리입니다. “깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.” (7장 142p) 오류를 막기 위한 예외 처리 try-catch 코드를 작성하다 보면 OutOfBounds, NullPointerException 등 여러 오류가 발생합...
문제 제약 확인 시간 제한이 0.5초 이므로 50’000’000 번 이내 연산으로 결과를 출력해야 합니다. 입력 크기가 \(10^6\) 이므로 만약 \(O(N^2)\) 인 경우 100’000’000’000 가 되므로 시간 복잡도가 \(O(N)\) 가 보장되는 알고리즘이 필요합니다. 알고리즘 선택하기 최소 횟수 라는 키워드로 최단 경로 ...
Clean Code를 읽으면서 작성 했던 프로젝트를 수정하던 중 쓰레드가 전역 함수를 받고 함수 내부에서 전역 변수에 접근하는 것을 보고서 전역으로 사용할 필요가 없는 변수와 함수를 클래스에 담아 쓰레드에서 실행할 수 있도록 수정하고자 하였습니다. 쓰레드가 클래스를 담도록 쓰레드의 생성자를 확인하던 중 생성자가 실행할 전역 함수만 전달받는 것이 아...