본문 바로가기
728x90
반응형

전체 글647

Structural Modeling 바람직한 Design 복잡성 최소화 편리한 유지 관리(모듈화,표준화,컴포넌트화) 설계수준: 표현하려는 내용이 다 표현되었는지 확인. 다른 다이어그램에도 동일하게 표현되었는지 확인 시스템을 구성하는 설계도를 보여줄 수 있어야함(관점에 따라 나타내는 대상이 다름) Class diagram 시스템을 구성하는 요소를 문서화 ㅋㅡㄹ래스 사이의 연관,일반화,집합 관계를 표시 클래스의 기능, 속성, 오퍼레이션을 나타냄 문제 영역의 클래스 명세로부터 구현을 위한 자세한 걸계까지 시스템의 클래스 구조를 나타냄 시스템이ㅡ 클래스들이 클래스 라이브러리와 어ㄷ떻께 ㅋㅋㅋㅋ 협력하는지를 나타냄 클래스들의 인터페이스를 나타내고 시스템 안에 어떤 객체가 존재할 수 있는지 나타냄ㅋㅋㅋ Object(객체) 실 세계에서 인지할 수 있는.. 2023. 6. 16.
Use case diagram 2 유스 케이스 다이어그램 설계시 유의사항들 Actor는 시스템 외부의 존재이다. (시스템 관점에서 바라본 사용자의 역할을 뜻해야 한다) use case는 사용자가 인지할 수 있는 하나의 긴으 단위이다. 하나의 독립적인 기능을 구성하는 다양한 세부 상황은 하나의 use case로 표현 use case는 모든 활성화 actor에게 동일한 기능을 제공해야 한다. 시스템의 전체 기능적 요구사항은 표현된 use case로만 구성된다. use case는 흐름도가 아니다. use case간의 선/후행 관계는 activity diagram을 이용해서 표현해야 한다. Use case diagram을 만드는 단계 시스템 상황을 확인(요구사항 분석) Actor 식별 Use case 식별 Association 식별 및 Use .. 2023. 6. 16.
Shading models 1. **상수 음영(Constant Shading)**: 이 방법은 각각의 폴리곤이나 면에 일정한 색상을 적용합니다. 이는 면 전체에 동일한 색상이 적용되므로 계산이 간단하고 빠릅니다. 상수 음영은 특히 광원이 멀리 있어서 폴리곤 내의 밝기 차이가 거의 없거나, 관찰자가 멀리 떨어져 있어서 세부적인 밝기 차이를 구별하기 어려울 때, 그리고 물체가 곡면이 아닌 평면일 때 유용합니다. 2. **보간 음영(Interpolated Shading)**: 이 방법은 면의 각 꼭짓점에서의 색상을 계산한 후, 이 색상을 사용해 면 전체의 색상을 선형 보간합니다. 이 방법은 면이 곡면을 대표할 때 더 자연스러운 결과를 얻을 수 있습니다. 하지만 이 방법에는 "마하 밴드 효과(Mach band effect)"라는 현상이 .. 2023. 6. 15.
Illumination models illumination models 사실감있는 표현을 위해서 원근투영,자연광 효과 등을 적용시켜ㅕ야 한다. 사진처럼 실제같은 표현을 위해서 두 요소가 필요하다 -정확한 물체 표현 -빛의 효과를 잘 반영하여 묘사 Light sources 광원 점광원은 관측자의 위치,물체위치,광원위치에 따라 직접반사,간접반사 등 영향을 미친다. 분산 광원: 광원,물체,관측자 위치 차이가 없다 Ambient light 주변광 공간,방향 특성이 없다. 어디에 있든 일정한 밝기이다 물체의 광학적 속성에만 영향을 받는다.(광택/비광택/불투명/투명..) 주변광 조병 방정식 k(a)l(a), k(a) : 주변반사계수 l(a): 주변광 세기. 모든물체의 l(a)는 동일하다 --- Diffuse Reflection: 확산 반사 여러 방향.. 2023. 6. 15.
Visible-Surface Determination 더보기 가시표면 결정 가시표면 결정 알고리즘 두가지 -Image-Precision algorithm -Object-Precision algorithm 이미지 정밀도 알고리즘은 투영처리의 일부로써 가시표면을 결정한다. 픽셀 단위로 보이는점과 안보이는 점을 판단한다. 반면 객체 정밀도는 객체 단위로 보이는지 판단한다. 일반적으로 이미지정밀도 기법을 사용한다. 계산 양은 많지만 더 효과적이기 때문이다. Coherence. 일관성을 이용해서 계산량을 줄일 수 있다. --- Back-Face Culling: 후면 제거하기 다면체의 후면을 판단하는 빠르고 간단한 방법이다. 다면체의 한 면에대한 법선벡터가 N, 관측자가 V일 때 N.M > 0 이라면 후면인것이다. (벡터내적을 이용한다) --- z-buffer 알고리.. 2023. 6. 15.
Parametric Cubic Curves 더보기 다항식을 이용하여 곡선을 표현하는 방법은 현실적으로 구현하기 힘들기때문에 사용자-제시된 데이터포인트 셋을 사용. 4개의 점으로 3차 다항식을 이용한다. 3차원 여러 곡선조각으로 나누어 객체를 만든다. Interpolation splines 보간곡선 점을 지나면서 곡선을 그림 Approximation splines 근사 곡선 점의 근처를 지나면서 곡선을 그림 Convex hull 볼록다각형 외관이 곡선의 모양을 예측할 수 있게 한다. (시작점과 끝점은 점을 지나고, 중간 두 점은 점의 근처를 지남) 더보기 연속 조건 Parametric continuity condition C0: 점이 만나야함 C1: C0를 만족하면서 접선의 기울기가 같아야함 C2: C1을 만족하면서 2차미분도 같아야함(기울기의 변.. 2023. 6. 14.
Projections/Curves and Surfaces Projections 투영: n차원에서 n보다 작은 차원으로 좌표계를 변환하는것 투영의 세 가지 요소 : center of projection(COP) 투영 중심 , projection ray: 투영선 , projection plane:투영면 투영중심에서 객체를 따라 투영선을 그렸을 때, 투영선이 투영면과 교차하는 지점을 잇게되면 투영상이 된다. COP가 무한히 먼 거리에 있으면 parallel projection이 되고, 아니면 perspective projection Planar geomaetric projection: 투영면이 평면인 투영 -Perspective/parallel projection 원근/평행 투영법이 포함됨. Perspective Projections 원근투영 -사실적 표현이 가능하.. 2023. 6. 14.
File System file file은 바이트시퀀스이다. (바이트단위로 이루어진 데이터들의 집합) file은 text타입, binary type으로 나뉜다. text type은 아스키코드 등 문자열 데이터를 저장하고, binary type은 프로그램 코드가 저장된다. file structure file 은 일종의 구조를 가지고있다. 구조가 없는경우 simple record structure, complex structure도 있음.(ppt같은) File Attributes (파일에 대한 메타데이터) File Operations common operation -create, write, read, reposition within file, delete, truncate, ... File Types - Name, Extensi.. 2023. 6. 14.
Cookie/Web-caching/DNS 더보기 클라이언트 정보가 쿠키라는 일종의 작은 DB에 저장된다. 클라이언트가 서버에 최초로 요청메세지를 보내면, 서버는 클라이언트에게 set-cookie: id 를 응답메세지에 보내준다. 이제 서버는 쿠키번호:사용자 정보를 저장하게된다. 이후, 클라이언트는 서버로 요청메세지를 보낼때마다 자신의 cookie id를 함께 보낸다. 이로 인해 서버는 해당 클라이언트 쿠키를 트래킹할수있다. HTTP프로토콜 자체는 stateless이지만 쿠키기술을 접목함으로써 stateless가 아니게 동작하게된다. 쿠키는 클라이언트 측에서 정보를 저장하는 간단한 메커니즘이며, 주로 웹사이트가 사용자를 식별하고 특정 정보를 기억하는 데 사용됩니다. 쿠키는 '키-값' 쌍의 형태로 데이터를 저장하며, 브라우저는 이 쿠키를 웹 서버에.. 2023. 6. 14.
HTTP 더보기 application 레이어의 패킷 Messsage이다. 웹페이지는 여러가지 오브젝트들로 구성되어있다. 각각은 여러개의 다른 웹 서버에 저장되어있다. 오브젝트들을 요청하는 절차, 포맷이 HTTP이다. HTTP는 TCP를 기반으로 한다. client는 request를 보내고 server는 response를 보냄. Non-persistent HTTP vs Persistent HTTP 유지가 되지 않는 HTTP, 유지가 되는 HTTP Non-persistent HTTP는 오브젝트를 하나 받을 때마다 TCP연결을 하고 끊는다. 매번 새로운 TCP연결이 필요하다. 반면 Persistent HTTP는 TCP연결이 유지되므로 한번의 연결로 여러개의 오브젝트를 받을 수 있다. Non-persistent HTTP.. 2023. 6. 13.
Threads 스레드는 lightweight process라고도 부른다. 스레드는 전역변수나, 동적할당을 통한 값들을 서로 공유할 수 있고, 프로세스에 비해 오버헤드가 적다는 장점을 갖는다. int pthread_create(스레드id 저장할 변수포인터,null(특성),함수포인터,(void *)인자) 스레드를 생성. 메인 프로그램이 종료되면 스레드도 종료된다. 스레드가 종료되기까지 대기하기 위해서 pthread_join 함수를 쓸 수 있다. int pthread_join(pthread_t *th, void **thread_return); 인자로는 스레드id, 반환값을 저장할 변수 포인터를 넘겨주면 된다. 임계영역 여러 스레드가 동시에 접근할 수 없는 영역. 자원이 공유되는데, 여러 스레드가 읽고 쓰는 연산을 진행하면 .. 2023. 6. 13.
Device Driver 2 ## Memory Mapped I/O (MMIO) Memory Mapped I/O는 I/O 디바이스와 메모리가 같은 주소 공간을 공유하는 체계를 말합니다. 이 방식에서는 I/O 디바이스에 접근하는 것이 메모리에 접근하는 것과 동일한 방식으로 이루어집니다. 이는 명령어의 개수를 줄이며, 이로 인해 코드의 복잡성을 감소시키는 장점이 있습니다. 이 체계는 주로 RISC(Reduced Instruction Set Computer) 시스템에서 사용됩니다. ## Isolated I/O Isolated I/O는 메모리와 I/O 디바이스가 서로 분리된 주소 공간을 사용하는 체계를 말합니다. 이 체계에서는 메모리 접근 명령어와 I/O 접근 명령어가 분리되어 있습니다. 이 때문에 MMIO에 비해 더 많은 명령어가 필요하게.. 2023. 6. 13.
Device Driver Concept ## 디바이스와 디바이스 드라이버 **디바이스(Device)**는 하드웨어 입출력 리소스를 의미합니다. **디바이스 드라이버(Device Driver)**는 사용자 프로그램이 이러한 디바이스에 접근할 수 있는 인터페이스를 제공하는 프로그램으로, 커널의 일부로서 동작합니다. 디바이스는 커널에 의해 컨트롤 및 관리되므로, 디바이스 드라이버 역시 커널 영역에서만 사용될 수 있습니다. 사용자 영역의 어플리케이션에서 이 드라이버를 사용하려면, 시스템 콜이 필요합니다. 데이터 전달에는 `copy_from_user`, `copy_to_user` 등의 시스템 함수가 사용됩니다. ## 커널 모듈 리눅스는 원래 모노리식 커널이지만, 마이크로커널의 장점도 가지고 있습니다. 즉, 리눅스 커널 모듈을 사용하면, 새로운 장치를 .. 2023. 6. 13.
CNN 개요: 딥러닝과 컴퓨터 비전 **CNN 이란?** CNN(Convolutional Neural Network)는 딥러닝의 한 방법으로, 공간적 구조를 가진 데이터를 다루는 데 특화되어 있습니다. 이러한 데이터에는 이미지, 비디오 클립 등이 포함됩니다. CNN은 기본적으로 이미지의 작은 부분에 집중하며, 이를 통해 이미지의 중요한 특징을 학습합니다. CNN은 Convolution, Pooling, 그리고 Fully-connected 계층으로 구성됩니다. Convolution과 Pooling 계층은 이미지의 특징을 학습하고 추출하는 역할을 합니다. Fully-connected 계층은 추출된 특징을 바탕으로 최종적인 분류 또는 예측을 수행합니다. **End-to-end 학습이란?** 딥러닝은 "end-to-end" 학습을 지원합니다. 이.. 2023. 6. 12.
역전파 학습 개념 기울기 강하 기법을 이용한 신경망 학습 알고리즘은 에러 기울기를 이용해서 가중치를 변경하는 것이다. 이 때, 에러 기울기는 손실함수를 특정 가중치에 대해서 미분시킨 값이다.이것이 손실함수에서 특정w에 대한 접선의 기울기이다. 노드의 에러 기울기 노드의 가중입력합에 대한 에러함수의 기울기. 손실함수를 미분하여 가중입력합을 대입한 값이다. 가중치 에러 기울기 가중치에 대한 에러함수의 기울기. 출력계층 노드 에러 기울기 구하는 방법 활성화함수를 미분하여 가중입력합을 대입한 값 * 손실함수를 미분하여 출력을 대입한 값 --> 활성화함수 시그모이드를 미분하면, 시그모이드(가중입력합)*(1-시그모이드(가중입력합)) 값으로 계산가능 --> 손실함수는 평균제곱에러일 때 -(d1-y1)으로 계산가능 --> 따라서, 평균.. 2023. 6. 12.
기울기 강하 기법 깔끔한 글을 원한다면 아래 더보기를 클릭. 더보기 신경망의 학습은 가중치를 적절하게 조정하는 과정입니다. 이 과정은 순방향 전파(FNN)를 통해 입력에 대한 실제 출력을 계산하고, 이 출력값을 목표 출력값과 비교하는 방식으로 이루어집니다. 추론 결과와 목표값의 차이를 '에러'라고 부르며, 이 에러를 역으로 전파하여 가중치를 조정하는 방식으로 신경망의 학습이 이루어집니다. 이를 통해 가중치를 조정하여 추론값이 목표값과 같아지도록 합니다. 이러한 방법을 '에러 정정 기법'이라고도 합니다. 신경망 학습에서는 '경사하강법'이라는 방법을 사용합니다. 이를 위해 '손실 함수'를 적용해야 합니다. 손실 함수는 목표치(라벨 값)와 실제 출력(추론)간의 차이(손실, 에러)를 계산하는 함수입니다. 이에는 평균제곱오차(MS.. 2023. 6. 12.
TCP congestion control 패킷로스의 대부분은 라우터의 큐 오버플로우로 인해 발생한다. 따라서 ack이 오지 않는것을 congestion의 증거라고 추정한다. ack이 돌아오지 않으면 네트워크에서 congestion이 발생한것으로 추정하고, sender의 window size(한번에 보낼 수 있는 inflight packet 수)를 줄여 전송속도를 낮춘다. 더보기 1980년대 전까지는 congestion control이 적용되지 않았었다. 이 때는 패킷 드랍이 발생하면 재전송하도록 했기 때문에 네트워크가 더 혼잡해져 악순환이 일어났다. sender의 윈도우를 cwnd라고 한다(congestion window) 이 윈도우는 혼잡에 따라 사이즈가 커지고 작아질 수 있다. TCP rate = cwnd/RTT bytes/sec이다. 전송.. 2023. 6. 12.
Connection-oriented transport: TCP, TCP flow control,.. TCP 특성 Point to point: 일대일 통신 Reliable, in-order byte stream: 신뢰성 있는, 순서대로 전송되는 바이트 스트림 Full duplex data: 전이중 데이터 통신 Cumulative ACKs(Ack(10)은 0부터 9까지 잘 받았고, 다음으로 10을 기대하는 의미) Pipelining: 윈도우를 사용하여 효율적인 데이터 전송 Connection-oriented: 연결 지향적 Flow control: 흐름 제어 Congestion Control: 혼잡 제어 TCP segment structure: 소스 포트, 목적지 포트, 시퀀스 번호, ACK 번호, 수신 윈도우, 체크섬, 플래그들, 옵션 등으로 구성 TCP segment structure src port#,.. 2023. 6. 11.
Go-Back-N, Selective Repeat rdt보다 성능이 좋은 reliable 프로토콜이다. 물론 실제로는 TCP를 사용하기때문에 Go-Back-N, Selective Repeat도 실제로 사용되지 않는다. 우선 rdt3.0을 보자. 데이터를 하나 보낼 때마다 피드백(ack)을 기다려야한다. 이것이 모두 딜레이가 된다. 데이터를 보내고부터, 피드백을 받을 때까지의 시간 중, 데이터를 실제 보내는데 걸리는 딜레이를 제외한 낭비되는 시간을 RTT라고 한다. RTT가 너무 크기때문에 sending utilization이 너무 낮은 문제가 있다. 따라서 RTT시간동안 데이터를 계속해서 보내는 방법을 사용할 수 있다. 파이프라이닝: 데이터를 병렬적으로 보냄 인플라이트 패킷: 전송하고 아직 ack을 못 받은 패킷 window: 인플라이트 패킷의 최대 수.. 2023. 6. 11.
Reliable Data Transfer(RDT) 실사용되는 것은 아니지만 TCP와 유사한 가상의 프로토콜 RDT를 알아보자. TCP가 채널을 reliable하게 유지시켜주기 때문에 어플리케이션 레이어는 데이터전송시 신뢰성 있다고만 생각한다. reliable하기 위해서는 아래 두 가지를 해결해야한다. -메시지(패킷) 에러: 비트에러 발생 -메시지(패킷) 로스 (우리는 rdt에서 단방향 통신이라 가정하자) rdt1.0 bit error가 발생하지 않고, 패킷 loss가 발생하지 않는 환경이라고 가정. 환경자체가 reliable하기 기능 없어도 reliable함 rdt2.0 bit error가 발생하는 환경(패킷로스는 일어나지않음) Error detection이 필요함. checksum 필드를 통해서 비트에러가 있는지 판단할 수 있다. receiver는 비.. 2023. 6. 11.
728x90
반응형