인공지능을 구현하는 방법인 머신러닝의 기법 중 하나인 "딥러닝"을 배워보도록 하자!!! 와! 신난다! 딥러닝 하면 가장 먼저 나오는 용어가 바로 CNN일 것이다. CNN이 뭔지, 어떻게 사용하는지부터 알아보자. # CNN(Convolutional Neural Network) 이란? CNN의 기본 구성은 위 사진과 같다. 세가지 큰 틀로 구성된다. 1. 데이터 input 2. 데이터에서 특징(Feature) 추출 3. 추출된 특징들에 점수를 매겨 하나의 클래스로 분류(Classification) [1. 데이터 input] m x n 2D 레이어를 input으로 넣어야 한다. m x n x 3 에서 "x3" 은 3채널(대개 R, G, B)를 가진 데이터라는 의미 [2. Feature Extraction] 추..
학교에서 인공지능 수업을 듣고 있는데 개인적으로는 범용성이 높은 파이썬을 이용했으면 좋겠는데 아쉽게도 매트랩을 사용해서 수업을 한다고 한다.. 졸업하면 매트랩 쓸 일 없을 것 같은데.... 라이센스 비용이 억을 넘어간다나 뭐라나 매트랩 쓰는 기업에 취직하면 일단 월급걱정은 없을듯 ㅋㅋ 아무튼 공부를 위해 블로그에 정리, 기록해두고자 함. 개념만 잘 알면 나중에 툴을 바꾸는건 할만하니까 ----- [인공지능을 들어가기 앞서 기본 개념 정리!] 인공지능을 검색하면 항상 같이 엮여나오는 단어들이 있다. 머신러닝(기계학습), 딥러닝, 빅데이터 등등. 온갖 뉴스들에서 인공지능이니 빅데이터니 하면서 많이 들어는 보았지만 뭔지 설명해 보라 하면 명확하게 설명하기는 난감했던 용어들.. 이참에 한번 정리하고 가보자 #1..
본 게시글은 를 읽고 공부를 위해 기록해둔 게시글입니다. -- 이제 남은 파트가 엔티티와 인코딩, 국제화 이런것들인데 그냥 핵심 위주로 간략하게만 정리하고 마무리 하고자 함. HTTP는 이미지, 텍스트, 동영상 등 다양한 포맷의 데이터들을 실어나른다. 이를 브라우저에서 잘 식별하고 처리하기 위해서 "잘 라벨링된 엔티티"를 사용한다. HTTP 메시지를 운송 시스템의 컨테이너라고 생각한다면, HTTP 엔티티는 실질적인 컨테이너의 화물이다. 엔티티는 엔티티 헤더와 엔티티 본문으로 구성된다 Content-Type: 엔티티가 전달하는 객체의 종류, 타입 Content-Length: 전달되는 메시지의 길이나 크기 Content-Language: 전달되는 객체와 가장 잘 대응되는 자연어 Content-Encoding..
본 게시글은 서적을 읽고 공부를 위해 요약한 게시글입니다 인증, 다이제스트 인증 이 파트 할까말까 고민했는데 그냥 하기로 했다 --- # 인증 인증은 내가 누구인지를 증명하는 것이다. 1. 클라이언트: 문서를 주세요! (GET) 2. 서버: 문서를 받으려면 인증을 먼저 해주세요 (401 Unauthorized 응답 + WWW-Authenticate 헤더) 3. 클라이언트: 인증 정보를 서버로 준다 (GET + Authorization 헤더에 인증 파라미터를 담아 전송) 4. 서버: 인증 확인 이후 문서를 클라이언트에게 제공한다 (200 OK 응답 + 문서 전송) * 클라이언트가 Authorization 헤더에 인증정보를 담아 전송할 때, base-64 방식으로 인코딩하여 전송한다. "base-64는 바이..
* 본 게시글은 서적을 읽고 정리한 글입니다. # 쿠키를 알아보기 전에 사전지식 타임 * HTTP는 무상태(Stateless) 프로토콜이다. Stateless, 무상태 -> 연결 자체에 대한 정보를 가지지 않으며, 매 요청은 일회성이고 독립적으로 처리된다. - 클라이언트의 세션 정보를 서버에 저장하지 않는다 - HTTP, UDP가 대표적인 Stateless 프로토콜. 장점: 서버 변환, 증설이 자유롭다(Scaling) - 서버에 세션정보를 담고있지 않기때문에 그냥 슥 옮기면 된다. -> 급작스러운 트래픽이 몰릴때, 로드밸런싱에 용이. 단점: HTTP 요청을 보낼때마다 자신임을 알려주기 위한 추가적인 데이터를 보내줘야한다. (이때 사용하는게 "쿠키") Stateful, 상태 유지(?) - 서버가 클라이언트..
* 본 게시글은 서적을 읽고 정리한 글입니다. ---- 웹은 이제 단순히 정적인 HTML 파일을 보여주기만 하는 시대는 지났다. 사람들은 더 복잡한 리소스(동적인 HTML 등)를 사용하기를 원한다. 그런데 이 복잡한 리소스를 한개의 애플리케이션으로 처리하기는 이제 불가능해졌다. 이제 HTTP 외에 다른 프로토콜을 사용하는 애플리케이션과도 같이 연결해서 사용하고 싶다. (대표적으로 FTP 서버) 이때 사용되는 기술(?)이 대표적으로 [게이트웨이 & 터널] 이다. 게이트웨이: 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스. 터널: HTTP 커넥션을 통해서 HTTP가 아닌 트래픽을 전송하는데 사용한다. # 게이트웨이 - 게이트는 리소스와 애플리케이션을 연결하는 역할을 한다. - 애플리케이션은 게이..
* 본 게시글은 책을 읽고 정리한 글입니다. # 캐시 웹 캐시는 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치이다. - 웹 요청이 캐시에 도착했을 때, 캐시된 로컬 사본이 존재한다면 그 문서는 원 서버가 아니라 그 캐시로부터 제공된다. 1. 불필요한 데이터 전송을 줄인다. 2. 네트워크 병목을 줄여준다. 대역폭을 늘리지 않고도 페이지 로딩 속도 개선 3. 캐시는 원 서버에 대한 요청을 줄여준다 4. 거리로 인한 지연을 줄여준다 [#1. 불필요한 데이터 전송을 줄인다] 복수의 클라이언트가 자주 쓰이는 원 서버 페이지에 접근할 때, 서버는 같은 문서를 클라이언트에게 각각 전송하게 된다 - 똑같은 바이트, 똑같은 데이터가 네트워크를 통해 반복적으로 이동한다. -> 불필요한 중복 전송은 네트워크 대..
* 본 게시글은 서적을 읽고 정리한 글입니다 # 웹서버 https://sedangdang.tistory.com/110?category=1011258 (참고) Java Spring 공부 정리 - 1 | 웹 서버, WAS 기본 sedangdang.tistory.com 웹 서버(Web Server) + 웹 애플리케이션 서버(Web Application Server)의 구성 웹서버는 HTTP 기반, 정적 리소스 제공하는 역할 (APACHE, NGNIX) 웹 애플리케이션 서버는 HTTP 기반, 애플리케이션 로직을 수행하는 역할 (Tomcat) 1. 커넥션을 맺는다 - WebServlet 연결하기 2. 요청을 받는다 (HttpServletRequest) 3. 요청을 처리한다 4. 리소스에 접근한다 5. 응답을 만든..