2018/06

    [C++] atomic_flag

    std::atomic_flag는 원자적 Boolean 형입니다. std :: atomic의 모든 특수화와 달리, lock-free가 보장됩니다. std :: atomic 과 달리 std :: atomic_flag는로드 또는 저장 작업을 제공하지 않습니다. 아래 예제는 atomic_flag를 이용해 lock을 얻고 해제하는 간단한 예제입니다. atomic_flag는 매우 쉽게 사용할 수 있습니다. test_and_set() 메서드와 clear() 메서드를 이용해 Lock을 얻거나 해제할 수 있습니다. 그리고 최초 atomic_flag 상수는 ATOMIC_FLAG_INIT으로 초기화 해야합니다 :D linuxias@test $ g++ -std=c++11 atomic_flag.cpp -o atomic_flag..

    [UML] System Sequence Diagram

    [UML] System Sequence Diagram

    System Sequence Diagram은 System Sequence를 표현하기 위한 Diagram입니다. 무슨 말이냐 하면, System을 Black-Box로 두고 외부 Actor의 이벤트에 대해 현재 디자인 중인 시스템이 어떻게 반응하는지를 표현하기 위함입니다. Black-Box이기 때문에 내부적인 구조는 전혀 고려하지 않습니다. Input과 Output만 고려하는 것입니다. Output이 나오는 절차는 전혀 고려하지 않죠. 잘 생각해보시면 가장 중요한 부분이 use case란 것을 알 수 있습니다. 실제 사용자는 내부적으로 어떻게 동작을 하든 전혀 고려하지 않고 내가 원하는 결과가 무엇인지, 그 결과가 제대로 피드백 되는지만 신경쓰면 되는 것이죠. 아래 예제는 위키피디아의 이미지를 인용하였습니다..

    [Inotify] 파일 이벤트 감시

    리눅스에서는 커널 2.6.13 부터 파일시스템 이벤트를 모니터링할 수 있는 메커니즘을 제공합니다. inotify와 dnotify인데요, 이 글에서는 inotify만 다룰 계획입니다. inotify가 dnotify를 대체하기 위한 녀석이기 때문이죠. Inotify는 파일이나 디렉토리를 개별적으로 모니터링 할 수 있도록 해줍니다. 여기서 한가지 유의할 점은 디렉토리 모니터링 시 재귀적으로 모니터링 되진 않는다는 것입니다. 만약 하위 모든 디렉토리를 모니터링 하기 위해선 각 디렉토리에 대해 모니터링을 하도록 해야합니다. 한가지 Inotify의 사용 예시를 생각해보죠. 여러분이 Daemon과 Daemon의 설정 파일을 제공한다고 가정했을 때, 누군가 설정파일을 변경 시 Daemon에서 이걸 알고 처리할 수 있도..

    [Unified Process] Elaboration Phase

    Unified Process에서는 4개의 Phase가 존재합니다. 이 전 글에서 첫 번째 Phase인 Inception Phase에 대해 설명했으며, 이번에 작성할 글은 Elaboration Phase입니다. Elaboration Phase에서는 Iteration을 반복하며 한 Iteration당 4단계를 수행하며 그 단계는 아래와 같습니다.Object-Oriented AnalysisObject-Oriented DesignRequirement DesignImplementation하나씩 자세히 알아보기 전에 가볍게 설명드리면 OOA 단계에서는 Domain Model을 만들고 System Operation을 나타내는 System Sequence Diagram을 만들게 됩니다. OOA단계에서 Analysis한..

    인공지능과 컴퓨터 그래픽스의 조합

    "AI와 컴퓨터그래픽스의 결합" 개인적으로 인공지능은 최고의 혁명이자 새로운 서비스의 출발이라 생각합니다. 4차 산업혁명은 인공지능과 그 외 기술분야의 발전이라고 말하고 싶을 정도로 현 시대에서 빠질 수 없는 기술이 인공지능입니다. 인공지능은 단일 분야가 아닌 컴퓨터 공학에서 많은 분야에 응용되어 함께 발전하고 있으며, 그 속도가 매우 빠릅니다. 컴퓨터 그래픽스 분야도 인공지능 분야와 접목하여 새로운 연구 및 기술들이 발표되고 있습니다. 특히 NVIDIA와 같은 기업은 하루가 다르게 많은 기술을 발표하고 있는 것 같습니다.[1] GPU기반 인공지능으로 실제 사람, 캐릭터 모델링 시 더욱 현실감을 더할 수 있고 렌더링 속도 또한 빠르게 하고 있습니다. 영상에서 추출한 배우의 얼굴을 애니메이션으로 빠르게 변..