분류 전체보기
-
인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 1. 메신저 프로그램에서 "안녕하세요" 라는 메신저를 작성한다. 2. SOCKET 라이브러리를 통해 OS 계층에 메세지를 넘긴다. 3. OS에서 메세지에다가 TCP 정보를 씌운다. 4. TCP 밑의 IP 계층에서도 IP 관련 정보를 씌운 IP 패킷을 생성한다. 5. 네트워크 인터페이스(LAN 카드)를 통해서 나갈 때 Ethernet frame을 추가하여 전송된다. TCP/IP 패킷 정보 IP 만으로 해결되지 못했던 순서 제어 문제 등을 해결하기 위해 TCP 정보를 추가한다. TCP의 특징 Transmission Control Protocol = 전송 제어 프로..
[인터넷 네트워크] - TCP, UDP인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 1. 메신저 프로그램에서 "안녕하세요" 라는 메신저를 작성한다. 2. SOCKET 라이브러리를 통해 OS 계층에 메세지를 넘긴다. 3. OS에서 메세지에다가 TCP 정보를 씌운다. 4. TCP 밑의 IP 계층에서도 IP 관련 정보를 씌운 IP 패킷을 생성한다. 5. 네트워크 인터페이스(LAN 카드)를 통해서 나갈 때 Ethernet frame을 추가하여 전송된다. TCP/IP 패킷 정보 IP 만으로 해결되지 못했던 순서 제어 문제 등을 해결하기 위해 TCP 정보를 추가한다. TCP의 특징 Transmission Control Protocol = 전송 제어 프로..
2023.04.05 -
IP (인터넷 프로토콜) 인터넷 상에서 내가 다른 사람에게 메세지를 보낼 때, 어디에 보내야할 지 알아야 한다. 이 때 사용하는 것이 IP이다. - 지정한 IP 주소 (IP Address)에 데이터 전달 - 패킷 (Packet) 이라는 통신 단위로 데이터 전달 패킷 안에는 우편을 보낼 때 처럼 출발지 IP, 도착지 IP와 기타 정보들을 담어서 전달한다. IP의 한계점 1. 비연결성 : 편지를 보낼 때 주소를 잘 못 써서 보내도 보내지기는 하듯이, 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다. 2. 비신뢰성 : 중간에 인터넷 문제가 생겨서 패킷이 소실되거나, 패킷이 순서대로 오지 않을 수 도 있다. 3. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 ..
[인터넷 네트워크] - IPIP (인터넷 프로토콜) 인터넷 상에서 내가 다른 사람에게 메세지를 보낼 때, 어디에 보내야할 지 알아야 한다. 이 때 사용하는 것이 IP이다. - 지정한 IP 주소 (IP Address)에 데이터 전달 - 패킷 (Packet) 이라는 통신 단위로 데이터 전달 패킷 안에는 우편을 보낼 때 처럼 출발지 IP, 도착지 IP와 기타 정보들을 담어서 전달한다. IP의 한계점 1. 비연결성 : 편지를 보낼 때 주소를 잘 못 써서 보내도 보내지기는 하듯이, 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다. 2. 비신뢰성 : 중간에 인터넷 문제가 생겨서 패킷이 소실되거나, 패킷이 순서대로 오지 않을 수 도 있다. 3. 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 ..
2023.04.02 -
JOIN 두 개 이상의 테이블을 서로 연결하여 원하는 정보를 추출할 수 있다. 아래 그림처럼 employee table과 department table이 있다고 하자. emp 테이블에는 각 사원의 소속부서 번호(deptno)가 있는데, 이 번호 말고 이름과 위치 정보도 붙여서 가져오고 싶다. select a.ename, empno, job, a.deptno, dname, loc from hr.emp a join hr.dept b on a.deptno = b.deptno order by ename; 조인 컬럼 기준 1:M 조인의 경우 집합은 M 집합의 레벨을 그대로 유지한다. 1 집합 → 개별 key 값이 Unique한 경우 M 집합 → 개별 값이 중복으로 있다. → deptno의 값이 여러개가 있다는 의..
[PostgreSQL] JOIN - 데이터 집합 레벨 변화JOIN 두 개 이상의 테이블을 서로 연결하여 원하는 정보를 추출할 수 있다. 아래 그림처럼 employee table과 department table이 있다고 하자. emp 테이블에는 각 사원의 소속부서 번호(deptno)가 있는데, 이 번호 말고 이름과 위치 정보도 붙여서 가져오고 싶다. select a.ename, empno, job, a.deptno, dname, loc from hr.emp a join hr.dept b on a.deptno = b.deptno order by ename; 조인 컬럼 기준 1:M 조인의 경우 집합은 M 집합의 레벨을 그대로 유지한다. 1 집합 → 개별 key 값이 Unique한 경우 M 집합 → 개별 값이 중복으로 있다. → deptno의 값이 여러개가 있다는 의..
2023.04.02 -
Batch Normalization Batch-size가 32이고 활성화 함수로 ReLU를 사용했다고 가정한다. 그러면 한 노드에 대해서 32개의 데이터가 각각 통과할 것이다. ReLU 함수에 모두 양수값의 형태로 들어간다면 자기 자신 그대로의 값이 나올 것이다. 그러면 활성화 함수로 ReLU를 사용한 건지 linear 함수를 사용한건지 구별할 수 없다. 그러면 이 노드는 비선형성이 없는 노드가 된다는 것이다. 즉, ReLU 함수는 이런 선형적인 특성 때문에 Sigmoid의 문제점인 Vanishing Gradient를 해결해주지만 위와 같은 입력 현상이 발생했을 때 비선형적인 관계를 잘 표현하기 어렵다. (ReLU 함수에 모두 음수값의 형태로 들어간다면 0이 출력될 것이다. 그러면 Vanishing Gr..
Batch Normalization / Layer NormalizationBatch Normalization Batch-size가 32이고 활성화 함수로 ReLU를 사용했다고 가정한다. 그러면 한 노드에 대해서 32개의 데이터가 각각 통과할 것이다. ReLU 함수에 모두 양수값의 형태로 들어간다면 자기 자신 그대로의 값이 나올 것이다. 그러면 활성화 함수로 ReLU를 사용한 건지 linear 함수를 사용한건지 구별할 수 없다. 그러면 이 노드는 비선형성이 없는 노드가 된다는 것이다. 즉, ReLU 함수는 이런 선형적인 특성 때문에 Sigmoid의 문제점인 Vanishing Gradient를 해결해주지만 위와 같은 입력 현상이 발생했을 때 비선형적인 관계를 잘 표현하기 어렵다. (ReLU 함수에 모두 음수값의 형태로 들어간다면 0이 출력될 것이다. 그러면 Vanishing Gr..
2023.04.02 -
▮ MSE의 단점 아래는 MSE(평균제곱오차)의 식이다. $$ e = \frac{1}{2} \parallel y-o \parallel ^{2}_{2} $$ 목표로 하는 값 $ y $와 모델의 출력값 $ o $의 차이가 클수록 모델에게 주는 벌점($e$)도 커지는 것이 학습하는데 있어서 적합해보인다. 그러나 왜 딥러닝에서는 MSE를 사용하지 않을까? 예를 들어 입력이 1.5이고 출력값이 0인 샘플이 모델에 입력되었다고 가정하고, 아래에 다음과 같은 두 모델이 있다고 가정하자 1) $ \hat{y} = \sigma (0.4x + 0.5) $ → $ \hat{y} = 0.7503 $ 2) $ \hat{y} = \sigma (1.9x + 3.0) $ → $ \hat{y} = 0.9971 $ 2번 모델이 원래 목..
딥러닝에서 왜 목적함수로 MSE가 아닌 Cross Entropy를 사용할까?▮ MSE의 단점 아래는 MSE(평균제곱오차)의 식이다. $$ e = \frac{1}{2} \parallel y-o \parallel ^{2}_{2} $$ 목표로 하는 값 $ y $와 모델의 출력값 $ o $의 차이가 클수록 모델에게 주는 벌점($e$)도 커지는 것이 학습하는데 있어서 적합해보인다. 그러나 왜 딥러닝에서는 MSE를 사용하지 않을까? 예를 들어 입력이 1.5이고 출력값이 0인 샘플이 모델에 입력되었다고 가정하고, 아래에 다음과 같은 두 모델이 있다고 가정하자 1) $ \hat{y} = \sigma (0.4x + 0.5) $ → $ \hat{y} = 0.7503 $ 2) $ \hat{y} = \sigma (1.9x + 3.0) $ → $ \hat{y} = 0.9971 $ 2번 모델이 원래 목..
2023.03.31 -
Trigger는 설정된 테이블에 INSERT, UPDATE, DELETE와 같은 이벤트가 발생한 경우 미리 설정된 작업이 자동으로 실행되도록 할 수 있다. 예를 들어 고객이 물건을 구매해 구매 테이블에 정보가 insert되면, 등록된 트리거가 발동해 물품 테이블을 자동으로 update 쿼리문을 실행하도록 할 수 있다. 아래 쿼리문을 실행해 다음과 같은 테이블 2개를 생성하였다. CREATE DATABASE trigger_test; CREATE TABLE trigger_test.product( 상품명 varchar(100), 가격 int ); INSERT INTO trigger_test.product VALUES ("소파", 1000); CREATE TABLE trigger_test.counter( 자료 ..
[MySQL] TriggerTrigger는 설정된 테이블에 INSERT, UPDATE, DELETE와 같은 이벤트가 발생한 경우 미리 설정된 작업이 자동으로 실행되도록 할 수 있다. 예를 들어 고객이 물건을 구매해 구매 테이블에 정보가 insert되면, 등록된 트리거가 발동해 물품 테이블을 자동으로 update 쿼리문을 실행하도록 할 수 있다. 아래 쿼리문을 실행해 다음과 같은 테이블 2개를 생성하였다. CREATE DATABASE trigger_test; CREATE TABLE trigger_test.product( 상품명 varchar(100), 가격 int ); INSERT INTO trigger_test.product VALUES ("소파", 1000); CREATE TABLE trigger_test.counter( 자료 ..
2023.03.25 -
LIKE 연산자를 써서 검색을 할 수 있지만, %연산자를 사용하게되면 index를 사용하지 못하게 된다는 단점이 있다. 그럴때는 full text index를 활용하면 된다. 🎈FULLTEXT INDEX 생성 CREATE FULLTEXT INDEX 인덱스명 ON 테이블명(컬럼명); CREATE FULLTEXT INDEX 도서명 ON index_test.library(서명); 🎈FULLTEXT INDEX 를 사용해서 검색 SELECT * FROM library WHERE match(컬럼명) against("검색할단어"); SELECT * FROM library WHERE match(서명) against("대한민국"); 🎈IN BOOLEAN MODE 위와 같은 방법은 정확히 "대한민국"이라는 단어만 찾아준다..
[MySQL] 긴 글을 search 하는 방법 : FullText SearchLIKE 연산자를 써서 검색을 할 수 있지만, %연산자를 사용하게되면 index를 사용하지 못하게 된다는 단점이 있다. 그럴때는 full text index를 활용하면 된다. 🎈FULLTEXT INDEX 생성 CREATE FULLTEXT INDEX 인덱스명 ON 테이블명(컬럼명); CREATE FULLTEXT INDEX 도서명 ON index_test.library(서명); 🎈FULLTEXT INDEX 를 사용해서 검색 SELECT * FROM library WHERE match(컬럼명) against("검색할단어"); SELECT * FROM library WHERE match(서명) against("대한민국"); 🎈IN BOOLEAN MODE 위와 같은 방법은 정확히 "대한민국"이라는 단어만 찾아준다..
2023.03.24 -
특정 컬럼이 특정 값인 데이터를 찾기 위해서 아래와 같은 식을 사용하면 모든 데이터들을 하나씩 순차적으로 찾게 된다. 데이터 행이 100만개라면 100만개의 데이터를 훑어봐야 한다는 단점이 있다. SELECT * FROM db.table WHERE 특정컬럼 = 특정값; 이런 문제점을 해결하기 위해서 index 를 사용한다. 인덱스는 데이터베이스에서 검색 성능을 높여주는 자료 구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장한다. 이렇게 되면 검색할 때 전체 데이터를 검색하는 것이 아니라 인덱스를 검색하여 빠르게 원하는 데이터를 찾을 수 있다. 데이터베이스에서는 B+ tree를 이용한 인덱스를 많이 사용한다. B+ tree는 데..
[MySQL] index특정 컬럼이 특정 값인 데이터를 찾기 위해서 아래와 같은 식을 사용하면 모든 데이터들을 하나씩 순차적으로 찾게 된다. 데이터 행이 100만개라면 100만개의 데이터를 훑어봐야 한다는 단점이 있다. SELECT * FROM db.table WHERE 특정컬럼 = 특정값; 이런 문제점을 해결하기 위해서 index 를 사용한다. 인덱스는 데이터베이스에서 검색 성능을 높여주는 자료 구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장한다. 이렇게 되면 검색할 때 전체 데이터를 검색하는 것이 아니라 인덱스를 검색하여 빠르게 원하는 데이터를 찾을 수 있다. 데이터베이스에서는 B+ tree를 이용한 인덱스를 많이 사용한다. B+ tree는 데..
2023.03.23