2020/01 7

[맥/Mac] Dock에서 통통 튀는 애플리케이션 아이콘 움직이지 않게 하기

맥을 쓰다보면 가끔씩 알림이 온 애플리케이션의 아이콘이 Dock에서 통통 튀는 모습을 볼 수 있습니다. 처음에는 귀엽고 신기해서 가만히 두었는데, 집중해서 무언가 하고 있을 때 상당히 거슬리더군요 🥺 귀엽긴 하지만, 일의 흐름을 방해하니 어쩔 수 없이 앱이 튀는 것을 멈추게 해줄 방법을 찾게 되었습니다. 3년 전에 찾아둔 방법이라 어디서 찾았는지는 기억이 나질 않지만, 저와 비슷한 불편함을 겪고 계신 분들에게 도움이 될까해서 포스팅해봅니다. 방법은 간단합니다. 우선 맥에서 제공하는 Terminal 앱이나 자주 사용하시는 터미널 애플리케이션을 실행해주세요. 그리고 다음과 같이 명령어를 입력해줍니다. $ defaults write com.apple.dock no-bouncing -bool TRUE && ki..

Apple/Mac 2020.01.31

[OS] Parity Bit / 패리티 비트

Parity Bit는 정보의 전달 과정에서 오류가 발생했는지 검사하기 위해 추가하는 비트입니다. 전송하고자 하는 데이터의 끝에 비트 1개를 덧붙여 전송하는 방법으로 "홀수 비트"와 "짝수 비트" 두 가지 방법이 있습니다. 짝수 패리티 - 실제 보내고자 하는 데이터를 구성하는 0과 1의 각 비트 값 중에서, 1의 개수를 짝수가 되도록 패리티 비트를 설정하는 방법. (예를 들어, 데이터 비트에 1이 홀수개 들어 있으면, 패리티의 비트를 1로 설정해서 덧붙이고 1의 개수를 짝수로 맞춤. 반대인 경우에는 패리티의 비트를 0으로 설정해서 덧붙임) 홀수 패리티 - 실제 보내고자 하는 데이터를 구성하는 0과 1의 각 비트 값 중에서, 1의 개수를 홀수가 되도록 패리티 비트를 설정하는 방법. (예를 들어, 데이터 비트..

IT/OS 2020.01.31

[C++] 현재 날짜와 현재 시각 출력하기

C++에서 오늘 날짜와 현재 시각을 출력하는 방법에 대해 정리해보겠습니다. 우선 C언어에서 사용하던 헤더 파일은 헤더 파일을 이용하면 똑같이 사용할 수 있습니다. 그러고 보니 헤더 파일을 그대로 사용하면 될 것 같은데, 굳이 헤더 파일을 새롭게 만든 이유가 궁금하네요. 아래 코드는 현재 날짜와 시각 정보를 출력하는 코드입니다. #include #include int main() { struct tm curr_tm; time_t curr_time = time(nullptr); localtime_r(&curr_time, &curr_tm); int curr_year = curr_tm.tm_year + 1900; int curr_month = curr_tm.tm_mon + 1; int curr_day = cur..

IT/C++ 2020.01.30

[C++] C++에서 std::thread를 어떻게 종료시킬 수 있을까?

시작하기에 앞서, 본 포스트는 "How to terminate a C++ std::thread?" 를 번역한 글임을 밝힙니다. C++11부터, C++은 스레드를 자체적으로 지원하고자 std::thread를 도입하였다. 그 이후로, C++에서 새로운 스레드를 사용하는 것은 새로운 객체를 생성하는 것만큼이나 간단해졌다. 하지만, 동작하고 있는 C++ 스레드를 동적으로 종료하는 작업은 여전히 어렵다. 특히, joined 또는 detached 상태의 스레드라면 더더욱 그러하다. 이 주제에 관해 상당히 많은 논의가 오고 갔는데, 결론은 다음의 사이트에서 찾을 수 있다. “terminate 1 thread + forcefully (target thread doesn’t cooperate) + pure C++11 =..

IT/C++ 2020.01.18

[OS] CPU Scheduling

Scheduling은 Process가 작업을 효율적으로 수행할 수 있도록, OS가 CPU 자원을 적절하게 분배하는 작업을 의미한다. CPU Scheduling은 크게 Preemptive Scheduling 과 Non-preemptive Scheduling 으로 나뉜다. 선점 스케줄링이라는 의미인 Preemptive Scheduling 은 단어의 의미 그대로 CPU 를 빼앗아 올 수 있는 스케줄링 방법이다. A Process 가 이미 CPU 를 점유하고 있더라도, 우선 순위가 높은 B Process 가 나타나면, CPU 를 빼앗아 올 수 있다. 따라서, 우선 순위가 높은 Process 를 빠르게 처리해야하는 경우에 유리한 방식이다. 그러나 CPU 를 빼앗아오는 Preemptive 현상이 발생하면 기존에 처..

IT/OS 2020.01.16

[C++] Thread 정리하기

얼마 전에 C++로 구현해야 하는 작업이 있었습니다. 구현할 때 Thread를 이용해야해서, 라이브러리를 이용했는데, 해당 내용을 정리하고자 합니다. "A thread of execution is a sequence of instructions that can be executed concurrently with other such sequences in multithreading environments, while sharing a same address space." - cplusplus.com "스레드는 우선, thread를 이용하기 위해서는 헤더를 include 해야 합니다. 아래는 cplusplus.com에서 소개하는 예제입니다. #include #include void foo() { // do..

IT/C++ 2020.01.15

[취준] 첫 기술 면접 후기 - 200113

안녕하세요. 오랜만에 글 남기는 욱이입니다 😊 그간 연구실 생활로 바쁘게 지내느라 포스팅도 못하고, 댓글도 못 달았네요.. 8ㅅ8 (어쩐지 핑계인 것 같지만..(?)) 어제 처음으로 기술 면접을 보고 왔습니다! 상당히 긴장되더라구요.. 떨리진 않았는데, 긴장이 돼서 준비해간 것에도 답변을 제대로 못하고, 힌트를 받았는데도 코딩하지 못하는 불참사가 발생했습니다.... 1명만 뽑기 때문에 어쩐지 1차 면접에서 탈락할 것 같지만 많은 분이 이런 면접 후기들을 자신의 블로그에 소개하는 걸 보고, 혹시나 도움이 되실까 글을 남겨 봅니다. 우선 들어가게 되면, 물을 하나 줍니다. 물을 받고서는 호명될 때까지 기다리고 있으면 되는 구조였어요. 면접은 총 두 시간동안 이루어졌습니다. 전반부 면접에서 두 분의 면접관님을..