본문 바로가기
728x90

전체 글424

Routing algorithm - Link state Routing algorithm 아래와 같이 네트워킹이 진행될때 이전에 다룬 forwarding은 router 안에서 알맞은 output port로 보내주는 단순한 역할이라면 routing은 algorithm을 갖고 적절한 router 경로를 정해주는 좀 더 복잡한 과정이다. Routing algorithm은 최단경로를 찾는 알고리즘이다. 최단경로 알고리즘은 코딩연습을 할때나 알고리즘 수업때도 몇번 다뤄봤다. 그때도 그래프 자료형을 이용하여 최단경로를 계산하였는데 컴퓨터 네트워크에서도 똑같다. 위와 같이 N에는 경유 지점 역할이 되는 router들을 담아두고 E는 경유지간의 연결관계를 표현해둔다. 각 경로를 통과하는데 걸리는 시간은 cost로 표현하고 아래와 같이 나타낸다. 그리고 위와 같이 경유 지점들.. 2023. 11. 7.
Normalization (1) Normalization 정규화는 서로 독립적인 관계(relationship)는 별개의 릴레이션으로 분해하는 과정을 말한다. 다시 말해 이상이 있는 “나쁜” 릴레이션의 애트리뷰트들을 나누어서 더 작은 “좋은” 릴레이션으로 분해하는 것이다. 이때 정규형(normal form) 특정 조건을 만족하는 릴레이션 스키마의 형태이다. 1NF, 2NF, 3NF, BCNF로 나누어 지는데 각각을 따르면 알아서 정규화가 되도록 단계별 조건을 미리 만들어 놓은 것이다. 이 조건들은 릴레이션 스키마의 FD와 키에 기반하여 정의된다. 일반적으로 업계에서는 제 3 정규형 또는 BCNF형까지 고려하여 DB 정규화를 진행한다. 1NF 애트리뷰트의 도메인이 오직 원자 값만을 포함하고, 투플의 모든 애트리뷰트가 도메인에 속하는 하나의.. 2023. 11. 7.
MOS Transistors MOS MOS는 Metal-Oxide-Semiconductor의 줄임말로 Metal로 이루어진 conductive plate, Oxide로 이루어진 insulator, Semiconductor로 이루어진 substrate를 조합하여 transistor를 설계하여 집적 회로의 나노단위 초소형화와 성능 향상에 결정적인 역할을 한 기술이다. MOSFET은 Metal-Oxide-Semiconductor Field-Effect Transistor의 줄임말로 MOS 기술을 이용하여 현대의 반도체에 가장 널리쓰이는 트랜지스터이다. Gate는 MOSFET의 상단 제어 단자로 전압을 인가하여 source와 drain 사이의 전류 흐름을 제어하는 역할을 한다. Source와 Drain은 위의 경우에는 heavily-dop.. 2023. 11. 6.
DCC 전이학습 Mission3 미션3에서는 미션2에서 한국음식 데이터를 통해 만든 모델에 전이학습을 시켜서 한국 건강식을 분류하는 모델을 만들어 보았다. import numpy as np import matplotlib.pyplot as plt import torch import torch.nn as nn import torch.nn.functional as F from torch import FloatTensor as FT from torch import LongTensor as LT from torch.autograd import Variable from torchvision import datasets, transforms, models from PIL import Image from tqdm import tqd.. 2023. 11. 3.
Internet Protocol(2) NAT NAT는 Network Address Translation의 약자로 IP주소가 충분히 할당 받지 못했을때 local network 상에서 자체적으로 host에게 주소를 나눠주고 network를 연결하기 위해 필요한 기술이다. 위 그림의 router가 NAT server의 역할을 하게 된다. 어떤식으로 translation이 진행되는지 아래 그림을 통해 살펴보자. host에서 본인의 port number를 router에게 보내주면(위 그림에서 3345) router는 남는 번호중 random하게 설정하여(위 그림에서 5001) 외부에 전송을 한다. 32비트의 IP주소는 router의 주소이기에 데이터가 router에 도착하면 router는 본인이 지정했던 번호인 5001이 포함된 데이터를 받고 해당.. 2023. 11. 2.
Internet Protocol(1) Internet network layer Network layer는 transport layer 밑에, link layer 위에 존재하는 layer이다. IP datagram은 아래의 format을 따른다. Fragmentation and Reassembly Fragmentation와 Reassembly는 IP에서 핵심 기술중 하나이다. 우선 MTU는 Maximum Transfer Unit의 줄임말로 최대 전송 크기를 의미한다. Fragmentation 과정에서 큰 IP 데이터그램이 네트워크 내에서 여러 개의 작은 데이터그램으로 나눈다. Reassembly과정에서 단편화된 데이터그램은 최종 목적지에서만 다시 조립하는 것이다. Datagram의 분리와 재조립 과정을 보면 아래와 같다. offset이 결정되.. 2023. 11. 1.
Relation schema design protocol and Functional Dependencies Relation schema design protocol 관계형 데이터베이스 설계란 좋은 릴레이션 스키마를 생성하기 위하여 애트리뷰트들을 그룹핑하는 과정이다. 이때 좋은 릴레이션 스키마의 기준은 단순성과 무결성으로 크게 볼 수 있으나 복합적인 기준이 반영이 되어야할 것이다. 아래를 보면 같은 데이에 대해 좋은 relation schema와 나쁜 relation schema가 예시로 나와있다. 먼저 좋은 릴레이션 설계에 관한 개괄적인 지침을 논의한 후, 함수적 종속성과 정규형 개념에 관해 논의한다. 릴레이션 스키마를 형성하기 위해 애트리뷰트들을 집단화 하는 경우, 한 릴레이션에 속하는 애트리뷰트는 실세계에서 어떤 의미를 가져야 한다. 여러 엔티티(EMPLOYEE, DEPARTMENT, PROJECT)의 애.. 2023. 10. 31.
Login page Simple DB 로그인 페이지를 테스트하기 위한 간단한 DB를 만들어주었다. CREATE DATABASE week10; USE week10; CREATE TABLE user ( Id VARCHAR(255) PRIMARY KEY, Password VARCHAR(255), Role VARCHAR(255) ); CREATE TABLE department ( Id int PRIMARY KEY, Dname VARCHAR(255), Dnumber int ); INSERT INTO user (Id, Password, Role) VALUES ('admin', 'admin1234', 'super'), ('student1', 'st1234', 'student'); INSERT INTO department (Id, Dna.. 2023. 10. 31.
DCC 한국음식 분류 모델 Model 한국음식 분류 모델을 구현해보았다. ResNet의 pretrained weight를 이용하지 않기 때문에 성능이 많이 높지는 않지만 42개의 클래스에 대해서 분류하는 최고 성능을 낸 코드는 아래와 같다. import torch import numpy as np import os from torchvision import datasets, transforms, models import torch.nn as nn import torch.optim as optim from tqdm import tqdm import copy def main(): train_loader = os.path.join('train') valid_loader = os.path.join('kfood_val', 'val') pr.. 2023. 10. 29.
DCC Normalization Normalization 처음에는 normalization을 imagenet에 적합하다고 알려져 있는 값인 평균: [0.485, 0.456, 0.406] 표준편차: [0.229, 0.224, 0.225]로 normalize이미지를 normalize하여 결과를 봤으나 오히려 성능이 떨어졌다. 따라서 우리가 갖고있는 데이터에 적절한 normalization 값을 찾아보고자 했다. 몇몇 방법을 사용해 봤지만 직접 계산한 값중에는 음식이 있는 위치인 중앙을 중심으로 crop하여 norm과 std를 계산한 것이 성능이 제일 좋았다. 아래는 해당 calculated mean과 std를 구하는 코드이다. import os import torch from torchvision import datasets, transf.. 2023. 10. 29.
Network Layer Network Layer 네트워크 계층은 세번째 계층으로 전송중인 호스트로부터 수신 호스트까지의 transport 세그먼트를 다룬다. 송신 측에서는 transport 세그먼트를 데이터그램으로 캡슐화한다. 수신 측에서는 transport 세그먼트를 전송 계층으로 전달한다. 모든 호스트와 라우터에는 네트워크 계층 프로토콜이 있다. 라우터는 그것을 통과하는 모든 IP 데이터그램의 헤더 필드를 검사한다. Forwarding/Routing 네트워크 계층의 핵심적인 두 function은 forwarding과 routing이다. 라우팅(routing)은 컴퓨터 네트워크에서 데이터 패킷이 소스에서 목적지까지 통과해야 하는 경로를 결정하는 과정이다. 효과적이고 효율적으로 패킷을 목적지까지 전달하기 위해 routing 알.. 2023. 10. 27.
SQL 실습 (2) 널 값을 포함한 비교 널 값의 세 가지 의미 • 첫째: Unknown value, 알려지지 않은 값 (존재하지만 알지 못하는) • 둘째: Unavailable or withheld value, 이용할 수 없거나 보류해둔 값 (존재하지만 의도적으로 보류한) • 셋째: Not applicable attribute, 적용할 수 없는 애트리뷰트 (이 투플에는 정의되지 않는) ㅇ애트리뷰트의 값이 NULL인지 검사하는 연산자 • IS NULL / IS NOT NULL 상사가 없는 모든 종업원들의 이름을 검색하시오. SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPER_SSN IS NULL; SUPER_SSN = NULL과 같이 비교 연산자를 이용하여 NULL과 비교하는 것은 불가능하다... 2023. 10. 20.
728x90