섀넌의 정보이론아날로그 데이터를 전송할 때는 먼저 인코딩 과정을 거쳐 bit 의 형태로 변형한 뒤 변형된 데이터를 채널을 통해 전송한다.이때 채널을 통해 전송되는 데이터에는 잡음이 껴서 데이터가 손상될 수 있다. (패킷 오염)따라서 정보를 수신하는 측에서는 잡음을 제거하고, bit 데이터를 디코딩하여 본래의 아날로그 데이터 형태로 변환하여 데이터를 수신한다. 잡음을 제거하는 방법 중 하나는 비트를 전송할 때 3번씩 전송해서 수신한 3개의 비트중 더 많은 값을 최종 비트로 결정하는 방법이 있다.만약 bit 하나가 뒤바뀔 가능성이 10% 라고 한다면, 3개의 비트중 2개 이상의 비트가 뒤바뀔 가능성은 많이 낮아진다.하지만 결국 0%는 아니기 때문에 이 방법이 완전한 방법은 아니다. 해밍 코드그래서 해밍 코드..
CAP 이론두 저장소가 서로 단절된 상태에서는 Consensus 를 유지하는 동시에 Available 을 유지하는 것이 불가능하다는 이론이다.간단히 말하면, 단절된 상태에서는 가용성과 강한 일관성을 동시에 만족할 수 없다.(P = Partition tolerance, 단절 내성, 분할 허용성, 네트워크 장애등으로 노드간 통신이 끊겨도 시스템이 동작 가능해야 한다는 특성.정확하게는 분산시스템에서 CAP 3가지 특성을 모두 만족하는 것은 불가능하다는 이론이다.) 먼저 두 저장소가 서로 단절된 상태에서 각 저장소에 서로 다른 데이터가 업데이트 되었다고 해보자.각 저장소는 상대방 저장소에 어떤 데이터가 들어있는지 알 수 없으므로 일관성을 유지할 수 없다. 만약 일관성을 유지하고자 한다면, 직접 (수동으로) 일관..
이중화된 데이터베이스 문제어떤 큰 대형은행이 있다.이 은행은 서울에 데이터베이스가 하나 있고, 부산에 데이터베이스가 하나 있다.이 은행의 어떤 계좌에는 잔액이 10,000원 들어있다.그리고 서울에 살고 있는 이 계좌의 주인이 계좌에 1,000원을 입금했다.그런데 부산에서는 모든 계좌에 이자를 지급할 시점이 되어 현재 계좌의 잔고를 기준으로 1%의 이자를 지급하였다.그래서 서울에 있는 데이터베이스의 잔액은 11,000원이 되었고, 부산에 있는 데이터베이스의 잔액은 10,100원이 되었다. 그리고 이 두 데이터베이스는 상대방의 상태를 알지 못한 채서울에 있는 데이터베이스는 부산에 있는 데이터베이스에게 잔액을 1,000원 늘리라고 지시하고부산에 있는 데이터베이스는 서울에 있는 데이터베이스에게 잔액을 1% 늘리..
계좌 이체 문제은행에서 돈을 다른 계좌로 이체할 때, 안전하게 이체하는 것은 어려운 일이다.단순하게 생각하면 내 통장에서 돈을 2000원 감소시키고, 상대방 통장의 돈을 2000원 증가시키면 될 것 같다.하지만 나와 상대방이 둘 다 같은 액수에 대해 동시에 돈을 감소시키고 증가시켜야 한다는 점을 생각하면 쉽지 않다는 것을 알 수 있다. 온라인으로 돈을 보내는 것은 비동기적인 통신이다.나는 돈을 보냈다고 생각해서 2000원을 감소시켰는데, 상대방은 돈을 받았다는 신호를 못 받아서 돈을 증가시키지 않았다면 나의 잔액만 2000원이 줄어들 뿐이다. 돈의 액수에 대한 원만한 '합의' 를 위해서 사이에 중간자를 두는 방법을 생각할 수 있다.우리나라로 치면 금융결제원 같은 중간자를 두는 것이다. 안전성과 라이브니..
두 장군 이야기어느 중세시대, 적의 부대 Z를 아군부대 A와 B가 동시에 공격하려고 한다.이때 이 두 부대가 동시에 적의 부대를 공격해야만 이길 수 있으며, 두 부대 사이에는 적의 부대가 존재하기 때문에, 전령이 메세지를 전달하기 위해서는 적진을 은밀하게 뚫고 지나가야 한다고 해보자. 과연 A와 B는 동시에 Z를 공격하는 것이 가능할까? 우선 A와 B는 언제 동시에 공격할 지 먼저 공격 시간을 정해야 한다.만약 현대같이 그냥 카톡같은 메신저가 있다면 A가 '10시에 공격하자' 라고 해도 B가 빠르게 이를 확인하여 서로 합의에 다다를 수 있을 것이다.하지만 이 상황에서는 사람이 직접 적진을 뚫고 메세지를 전달해야 하기 때문에 전령이 중간에 잡혀서 죽으면 메세지가 유실될 수도 있다. 만약 전령이 메세지를 전..
샘 알트만은 2025년이 agent 의 해가 될 것이라고 했다.즉, AI 가 사람 대신 특정한 일을 수행하는 것이다. (문제 풀이, 영상 제작 등) 그런데 agent 와 관련한 용어로 AI Agent 와 Agentic AI 가 있다.얼핏 비슷해보이지만, 이 둘은 엄밀하게는 다르다. 올해 5월에 이와 관련하여 논문이 하나 나왔다. (https://arxiv.org/pdf/2505.10468)AI Agent 는 하나의 개별 Agent 를 말한다.위 그림으로 보면, 온도를 자동으로 세팅하는 한가지 일만 수행하는 AI 가 AI Agent 이다. 반면, Agentic AI 는 여러 Agent 가 모여서 각자의 역할을 수행하며 하나의 큰 작업을 처리하는 것을 말한다.위 그림으로 보면, 전기 사용량을 체크하는 A..
이제 3d 물체를 2d 스크린 좌표계로 변환하는 transformation 을 정리해본다. 좌표계를 변환하는 과정은 위와 같다.먼저 모델 좌표계 (MC) 를 world 좌표계로 변환하고 (WC) 이를 카메라 좌표계로 변환한다. (VC)그리고 카메라 스크린 면으로 정사영을 내린 2차원 좌표계로 변환한다 (PC)이제 스크린 면에서 카메라의 시야각을 고려하여 정규화 및 clipping 과정을 거친 좌표계로 변환하고 (NC)이 좌표계는 -1 ~ 1 사이의 정규화된 좌표값으로 변환된 것이기 때문에 최종적으로 모니터 크기에 맞춰 viewport 에 맞는 좌표계로 변환하면 (DC) 모든 변환이 끝난다. 보통 proejection 과 normalization 부분은 하나로 합치는 경우가 많기 때문에 4번의 변환 단계..
illumination model 은 물체의 색상을 계산하는 방법으로 light model, shading model 등으로도 불린다.대부분의 모델은 단순화하고 추상화하여, 간단한 수식 한 줄로 이루어져 있는 경우가 많다.이렇게 해도 사람 눈에는 비슷하게 보이기 때문이다.우선 텍스쳐 값은 고려하지 않고, 빛과 물체 자체의 색상만 고려하여 계산하는 과정을 따라가보자. 이번 글에서는 Blinn-phong illumination model 에 대해서 정리한다.이 모델은 빛의 반사를 고려한다.반사에는 평면이 매끈하여 입사각과 반사각을 기반으로만 반사하는 정반사와, 평면이 울퉁불퉁하여 여기저기로 빛이 반사되는 난반사가 있다. phong reflection model 에서는 크게 3가지 빛 반사를 고려한다. 1...
scan conversion 은 rasterization 과 같은 말이다. 그래픽스 파이프라인을 보면 3차원 좌표계에 모델링 된 3D 물체가 있다.이 좌표계에는 물체의 각 정점, 정점의 텍스처 값, 면을 구성하는 꼭짓점 값 등의 정보가 있다.이제 이 모델을 2D 화면에서 보는 것과 같아지고도록 좌표변환을 거치면, 각 정점의 2D 이미지상 위치를 얻게 된다. 아직까지는 이미지에서 정점만 찍혀있기 때문에, 이제 정점을 연결하고 면 내부를 채워야한다.이 과정이 Rasterization (scan conversion) 단계이다. 이 단계를 거치고나면 최종적으로 화면에 보여질 2D 이미지가 완성된다. Scan Converting Line먼저 정점이 있을 때 정점을 잇는 선부터 그어보자.선은 그냥 그으면 되는 것..
소프트웨어 개발 단계를 다시 정리해보면 다음과 같다. specification - design - implementation - testing - maintanance 우리는 지금까지 요구사항을 정리하여 use case description 을 만드는 specification커뮤니케이션 다이어그램, 시퀀스 다이어그램, 클래스 다이어그램을 그리는 design, implementation 까지 모두 살펴보았다. 이제 마지막으로 testing 에 대해 정리해보자. Verification & Validation (V & V)중간고사 범위의 글에서 간략하게 정리했던 것처럼 testing 단계는 verification & validation 단계라고도 표현한다. verification (검증) 은 소프트웨어를 s..