본문 바로가기

전체 글

(74)
[Web] HTTP Header와 MIME 타입 예로 들어 클라이언트가 서버로 Post(추가) 요청을 보낸다고 가정하자. 이 때 클라이언트는 서버에 단순히 데이터만 보내는 것이 아니라 이 데이터에 대한 정보 또한 보내게 된다. 그리고 이 데이터에 대한 설명은 이 HTTP Header라는 곳에 들어가게 된다. 즉 이 타입은 데이터를 설명하는 것이라 보면 된다. 데이터의 타입 뿐만 아니라 패킷 스위칭 상에서 어떤 데이터가 어디서 왔는가 그리고 패킷 순서가 어떻게 되는가 등을 설명해놓는다. 그리고 HTTP Body에는 이러한 패킷의 내용물이 들어간다. 이제 MIME를 설명하자면, 굉장히 간단하게 데이터의 타입을 표현하는 기법이다. HTML을 작성하다보면 type을 명시할 때가 있을 것이다. 이 때 양식은 다음과 같다. type="text/plain" "te..
[Web] Stateless와 Stateful A컴퓨터와 B 컴퓨터가 소켓 통신을 한다고 가정하자. 이 때 A와 B는 서로의 포트를 이용해서 통신을 진행할 것이다. 근데 만약 C와 D라는 컴퓨터가 있고 이들 또한 B와 통신을 하려고 하면, 이 포트에 점점 많은 컴퓨터가 연결될 것이다. 이러면 당연히 B 컴퓨터는 많은 부하가 일어날 것이다. 보통 이런 방식은 채팅처럼 지속적으로 연결이 되어 데이터가 왔다갔다 하면 쓸만 하지만, 웹처럼 필요한 경우만 연결하면 되는 경우는 이렇게 할 필요가 없다. 즉 HTTP는 이런 방식보단 요청이 들어가는 경우에만 연결되고 응답을 하고나면 이 연결이 끊어지도록 하는 방식을 사용한다. 즉 요청시마다 스트림을 연결해서 Date를 주고받는 방식을 Stateless라고 하며 굉장히 서버의 부하를 줄요준다. 반대로 위의 채팅 프..
[Web] HTTP 1.1 통신을 위해서는 두 개의 컴퓨터가 연결이 되어야한다. 이 때 이 연결선에서는 1바이트(8비트)의 단위로 데이터가 이동을 한다. 이 과정에서 어떤 약속이 필요하다. 이것을 프로토콜이라고 한다. HTTP는 웹 상에서 HTML을 보내기 위해 존재하는 통신 기법으로 1.1 기준에선 크게 4가지 통신 방법이 존재한다. GET : 데이터를 요청한다.(SELECT) POST : 데이터를 추가하게 요청한다. (INSERT) PUT : 데이터를 수정하게 요청한다. (UPDATE) DELETE : 데이터를 삭제하게 요청한다. (DELETE) 그리고 이 과정에서 A라는 컴퓨터는 저 4가지 방법을 이용해서 Request(요청)을 보내고, B는 이에 대한 Response(응답)을 보낼 것이다. 즉 요청의 방법이 4가지가 있다고..
[딥러닝] 간단한 기계학습 다음과 같은 모델이 있다고 가정하자. 이 때 식은 y = wx + b이다. 이제 훈련을 할 때 손실률이 얼마나 나는가를 계산해야 한다. 이 때 많이 사용하는 것은 MSE(Mean Square Error) 평균 제곱 오차이다. 우리는 이 MSE값이 값을 줄이는 방향으로 매개 변수를 개선해야한다.
[딥러닝] 인공지능과 데이터 인공지능 과학 기술은 다음과 같은 프로세스를 통해서 발달하기 시작했다. 데이터를 수집하고 모델을 정립한 뒤 예측을 해보고 만약 내가 원하는만큼 나오지 않는다면 더 많은 데이터를 수집하고, 모델을 수정한 뒤 다시 예측한다. 즉 방대한 데이터는 단순한 수학 공식으로 표현하는 것이 불가능하기 때문에, 자동으로 모델을 찾아내는 과정은 필수이다. 데이터 모델으로 학습하기 떄문에 주어진 응용에 맞는 충분한 다양한 데이터를 충분한 양만큼 수집해야한다. 예로 들어 정면 얼굴만 데이터만 수집할 때 옆 면이나, 약간 잘린 사진을 준다면 매우 낮은 성능을 내지만, 정면 얼굴에 있어 높은 값을 줄 것이다. 즉 추정 정확도가 높아진다. 즉 주어진 응용 환경을 자세히 볼 필요가 존재한다. 하지만 MNIST를 예시로 들자면 2^7..
[인공지능] 특징 공간 인공지능에게 특징을 표현하는데 있어서 1차원 특징과 2차원 특징 공간이 있다. 보통 전 포스트와 같은 직선 상에서 하나의 값을 예측하는 것을 1차원 특징 공간이라 하며, 이미지와 같이 x, y를 전부 고려해야하는 것을 2차원 특징 공간이라 한다. 이 때 각 특징 벡터들은 다음과 같이 표기를 한다. 벡터 예시는 다음과 같다. 사실 다차원이라고 다른가? 라고 하면 그렇진 않다. 데이터베이스도 그렇듯이 d-차원이라고 하면 단순히 d개의 특징을 가지고 있다고 보면 된다. 그래서 d차원의 경우는 bias가 붙기 때문에 d+1 만큼의 매개변수를 가지며, 2차원의 경우는 매개변수는 d^2+d+1만큼의 매개변수를 가지게 된다. 하지만 2차원 데이터를 가지고 있고, 선형 분리를 하려고 한다고 가정하자. 그럼 다음과 같은..
[인공지능] 기계학습이란 기계학습도 결국 학습이다. 이는 기계가 배워서 익히는 것을 말하는 것이다. 인공지능 초창기 1950년대 컴퓨터가 학습을 할 수 있도록 프로그래밍을 하는 것을 말한다고 한다. 하지만 최근에는 프로그램 성능을 p라고 하면 그 척도가 경험을 통해 성능이 개선되었다면 프로그램이 학습했다고 볼 수 있으며, 사례 데이터 즉 가거 경험을 이용해 성능 기준을 최적화하도록 프로그래밍하는 것이라 했다. 그리고 2012년에는 성능을 개선하거나 정확하게 예측하기 위해 경험을 이용하는 계산학이라고 정의하기 시작한다. 먼저 이해해두면 좋은 키워드를 소개하겠습니다. AI는 감각과 사유 그리고 적응하며, 행동을 하는 것처럼 프로그램이 동작하는 것을 말한다. 머신러닝은 데이터가 쌓이면 쌓일수록 성능을 개선하는 것을 말합니다. 딥 러닝..
[Web] 웹 소켓이란 웹 소켓은 HTML5부터 추가된 신기술로, 2011년 IETF에 의해 RFC 6455로 표준화된 기술이다. HTTP가 아닌 WS라는 프로토콜을 사용하며, 이를 지원하는 브라우저와 서버가 필요하다. 크롬이나 엣지같은 최신 브라우저는 이 프로토콜을 지원하고 있으며, 서버 프레임워크로는 Java Spring, NodeJS 등이 지원을 하고있다. 이 기술이 나오기 전까지는 HTTP를 사용하여 실시간 데이터 전송을 구현을 했는데, 이 중 하나가 폴링이라는 기술로서, HTTP가 클라이언트에서 서버로 향하는 단방향 통신이였기 때문에, 주기적으로 서버에서 새로운 업데이트가 있는지 확인해야 한다는 단점이 존재했다. 하지만 이러한 단점은 웹 소켓이 나오면서 해소가 되었다. 웹 소켓은 한 번의 연결이 있다면, 그 이후로는 ..