전체보기
[소켓프로그래밍] 로그인 구현하기
이전에 했던 1:1채팅에 이어서 로그인을 구현하려한다. 먼저 프로그램 실행순서를 간단하게 설명하면 먼저 서버와 연결된 후 클라이언트는 로그인을 거친다. 새로 아이디를 만드려면 create를 입력하고 사용할 아이디와 비밀번호를 입력하면 된다. 로그인을 하려면 아무키나 누르고 아이디와 비밀번호를 입력하면 된다. 서버측의 전체 코드부터 살펴보면, 이전 1:1채팅의 send와 receive를 사용하지만 제약을 두어 user_check가 되지 않으면 클라이언트에게 받은 메시지는 로그인과 새로운 아이디 생성을 위해서만 사용하고 출력되진 않는다. 이 후 로그인을 통해 유저 확인이 되면 user_check가 true로 설정되며 이전과 동일하게 1:1채팅을 사용할 수 있다. 코드가 좀 긴 관계로 코드 설명은 주석으로 하..
[소켓프로그래밍] 간단한 채팅방 구현
먼저 채팅방을 구현하려면 서버와 클라이언트가 필요하다. 즉, 두 명 이상이서 채팅을 주고받아야 한다. 서버측의 전체 코드부터 보자면 from socket import * import threading import time def send(sock): while True: sendData = input('>>>') sock.send(sendData.lower().encode('utf-8')) def receive(sock): while True: recvData = sock.recv(1024) print('Client :', recvData.decode('utf-8')) port = 8081 serverSock = socket(AF_INET, SOCK_STREAM) serverSock.bind(('', p..
Cloud Computing이란? (IaaS, PaaS, SaaS)
Cloud Computing이란? 클라우드 컴퓨팅은 서로 다른 물리적인 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술을 말한다. 예를들면 개인용 컴퓨터나 기업의 서버에 개별적으로 저장해 두었던 프로그램이나 문서를 클라우드(대형 컴퓨터)에 저장하고 웹 브라우저 등 필요한 어플리케이션을 구동해 원하는 작업을 수행할 수 있는 사용자 중심의 컴퓨터 환경을 말한다. 예시 네이버 오피스, Google DOCs(Google), Work Space(Microsoft), Acrobat(Adobe) 등등이 여기에 해당 가상화와 클라우드 컴퓨팅의 차이 정의 쉽게 정의하면 가상화는 기술이고 클라우드는 방법론 이다. 가상화 가상화는 우리가 쓰던 VMware나 Virtualbox와 같이 단일한 물리 하드..
프로토콜(Protocol)이란? (OSI 7계층)
1. 프로토콜 이란? 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속이다. 그리고 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다. 가장 일상적으로 사용되는 프로토콜 세트 중 하나가 TCP/IP이다. 거의 모든 컴퓨터가 기본으로 제공하는 인터넷 표준 프로토콜이다. 2. TCP/IP IP(Internet Protocol) 네트워크 계층에서 동작하는 프로토콜 패킷 통신 방식의 인터넷 프로토콜인 IP IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다. TCP(Transmission Control Protocol) 전송 계층에서 동작하는 프로토콜 전송..
IoT란?
1. 사물인터넷 개념 1.1 사물인터넷이란? 사물인터넷의 단어적 의미는 사물들(things)이 서로 연결된 인터넷 환경을 말함. 사물인터넷의 본질은 다양한 사물들을 센서와 통신기술을 더해 사물과 사물, 사물과 사람을 연결함으로써 정보를 주고 받으며 새로운 가치를 만드는 것임. 즉, 기본의 개별적인 사물이 제공하지 못했던 새로운 서비스를 제공해주는 데 의의가 있음. 스마트 홈: 침대에서 사람이 잠들면 집안에 켜진 전등을 끄고, 잠에서 깨면 창문을 열어 환기를 하고, 커피를 자동으로 내려줌 1.2 사물인터넷 역사 사물인터넷(Internet of Things)이라는 용어의 탄생은 1999년에 비누, 샴푸, 칫솔 등 다양한 종류의 소비재를 제조 및 판매했던 P&G에서 브랜드 매니저로 근무하던 캐빈 애시턴(Kev..
HTTP와 쿠키, 세션
1. HTTP HTTP와 HTTPS에 대한 간단한 정의 HTTP(Hyper Text Transfer Protocol) 는 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 프로토콜이란 데이터를 주고 받기 위한 통신 규칙이라고 보면 되겠다. 그러면 HTTPS는 뭘까? HTTPS는 Hypertext Transfer Protocol Over Secure Socket Layer 약자이다. 단어를 보면 알 수 있듯이 HTTP 프로토콜에서 보안 기능(SSL)이 추가된 프로토콜이라고 보면 된다. HTTP의 동작 방식 클라이언트(크롬, 사파리 등의 웹 브라우저, 모바일 등)가 브라우저를 통해서 어떠한 서비스를 URI 를 통해서 서버에 요청(request)하면 서버에서는 해당 요청에 대한 결과를 응답(response)..
비동기-동기
동기와 비동기의 차이 동기와 비동기의 차이점은 실행순서에 있다. 동기는 요청을 보낸 후 해당 요청의 응답을 받아야 다음동작을 실행 하는 방식이다. 비동기는 요청을 보낸 후 해당 요청의 응답과 상관없이 바로 다음 동작을 실행 하는 방식이다. 일상에서 찾아보자면, 음식점에서 종업원이 주문을 받을 때 이는 동기일까 비동기일까? 정답은 비동기이다! 이는 우리가 일상생활에서 당연하게 생각하는 것들이다. 주문을 받을 때마다 주문한 음식이 나올 때 까지 뒤에 손님의 주문을 받지 않는다면? 이는 너무나도 비효율적이다. 당연히 우리 인간은 그렇게 하지 않지만 컴퓨터는 인간처럼 생각하지 못한다. 따라서! 컴퓨터에서 요청과 응답사이에서 효율적으로 움직일 수 있게 하는 방식이 비동기인 것이다.
TypeScript란? 기초 문법 예제
TypeScript 타입스크립트(TypeScript)는 JavaScript의 확장판이라고 할 수 있다. 먼저 자바스크립트는 동적 타입 언어로 런타임은 빠르지만 타입 안정성이 보장되지 않는다는 단점이있다. 여기서 타입 안정성이란 우리가 아마 배워봤을 C, Java 같은 정적 타입 언어와 비교해보면 이해가 쉽다. 정적 언어는 변수를 선언하기 전 변수의 타입을 먼저 설정해준다는 공통점이 있다. 이에 반해 동적 언어인 자바스크립트는 변수를 선언할 때 스코프를 설정할 뿐 변수의 타입을 직접 설정해주진 않는다.이는 작성한 프로젝트가 커질수록 디버그를 하기 어렵게 만든다. 이런 단점을 보완해주는 것이 타입스크립트이다. 타입스크립트는 자바스크립트를 호환하면서 변수의 타입을 설정할 수 있다. let a = '7'; a ..