본문 바로가기

CS

(18)
동시성에 대해서(동기 vs 비동기) 개발을 하다보면 자주 마주치는 용어들 중 하나이다. 동기성이냐? 비동기성이냐? 나도 처음 개발을 할때 2개의 의미를 정확히 말로 설명할 수 없었다. (몸으로는 알고 있었지만) 지금도 정확히 이렇다라고 말하기가 어렵기에 정리를 해보자. 1. 동기성(synchronicity) 하계 올림픽을 보다보면 싱크로나이즈 라는 종목이 있다. 혹시 모르는 사람들을 위해 아래처럼 그림처럼 여러 사람이 물 속에서 합을 맞추는 종목이다. 이와 같이 동기성이라는 말 자체에는 2개 이사의 서로 다른 something 가 있다는 의미이기도 하다. 그럼 프로그래밍 세계로 다시 넘어온다면 A라는 작업의 흐름이 있고 B라는 작업의 흐름이 있다고 가정하자. 여기서 동기성이란 A가 B에게 요청을 하면 B는 요청에 대한 결과값을 줄 것이다...
RESTful API는 뭘까? "용어만 알아도 반은 안다!" 라는 말이 있다 물론 내가 만든 말이지만.. 아직까지는 반례는 못찾았다. 오늘도 한번 용어정리를 해보자. 현재 우리 삶 속에 유용한 서비스들이 많이 생겨난다. 많은 웹 서비스들은 Restful API 를 사용하여 서버와 클라이언트 혹은 컴퓨터와 다른 컴퓨터끼리 정보를 교환하고 통신하고 있다. 실무에서도 이 Restful API는 많이 사용되는 용어이다. 얼추 몸과 느낌적으로는 알고는 있지만, 좀 더 자세히 정리를 해보자 먼저 접미사 -ful 을 사전 검색을 해보면 아래와 같이 나온다. 명사의 뒤에 붙어서 그것이 가진 성질, 특성 따위의 뜻을 가진 형용사를 만드는 접미사 뭔가.. REST의 성질을 가지고 있는 API를 칭하는 말 같아보인다. 그럼 REST는 무엇이고? API는..
메모리 관리(3) - 똑똑하게 포인터 사용하자 한 주 정도 포스팅이 밀린 것 같다. 다시 얼른 정리해야지 뭐든지 한 번 밀리면 계속 밀리는 것 같다. 게으름에도 관성이 있다. 하루가 이틀이 되고 이틀이 일주일이 된다. 어쨋든, 메모리 관리 관련해서 다시 이어서 써보자. 0. 서론 이전 포스팅에서는 컴퓨터의 메모리가 무엇인지? C/C++ 동네에서는 어떻게 메모리에 접근하며 메모리를 사용하는지에 대해 정리하였다. 이번에는 스마트 포인터라는 C++로 넘어오면서 추가된 개념을 정리해보려고 한다. 이름 그대로 똑똑한 포인터이다. 왜 스마트 포인터가 등장했을까? 포인터는 앞서 다뤘듯이 메모리에 접근할 수 있는 주소값을 담고있는 변수이다. 그리고 우리는 이 변수를 예민하게 다뤄야한다. 메모리를 할당받으면 다시 메모리르 해제해줘야하는 꽤나 귀찮은 작업들을 매번 해..
메모리 관리(2) - 포인터의 사용법과 사용이유 저번에는 간단하게 포인터의 개념만 정리를 해보았는데 이번에는 포인터를 사용하는 방법과 프로그래밍에서 왜 데이터의 주소를 알아야 하는지에 대해 정리해보려고 한다. 1. 포인터의 사용법 void 함수( ) { int num = 5; int* ptr = # } 자, 위의 코드블럭을 살펴보면 num 이라는 변수에 5 라는 값이 선언되었다. 그렇다면 컴퓨터의 메모리에는 뭐라고 적어놨을까? 구제적인 예를 든다면,, "0012FFCC" 라는 메모리주소에 "00 00 00 05" 라는 정보가 기록될 것이다. 그럼 위의 코드에서 포인터 ptr은 어떤값을 가지고 있을까? 이전 포스팅에서 정리한대로 포인터는 메모리 주소를 저장하는 변수이다. 따라서 변수 ptr은 0012FFCC 라는 주소를 가지고 있을 것이다. 1-..
메모리 관리(1) - 포인터(pointer) 1) 서두 자, C,C++를 하다보면 피할 수 없는 존재가 있다. 바로, 포인터다. 컴퓨터의 메모리에 접근하여 코딩을 할 수 있는건 양날의 검일것이다. 컴퓨터와 가깝다는건 좋으면서 위험한 일이니깐.. 메모리에 접근한다는건 어떤 것일까? 그전에 메모리는 무엇일까? 오늘은 메모리의 개념과 C++에서 메모리를 어떻게 접근하는지에 대해 정리해보려 한다. 2)본론 1. 메모리는 무엇일까? 영화 '이미테이션 게임' 의 실제 주인공인 엘런 튜링은 당시에 이미테이션 게임이라는 논문을 낸다. 해당 논문에서의 주내용은 인간을 따라하는 기계이다. 추후, 개념이 발전하여 인공지능의 개념의 초석이 된 내용이기도 하다. 기계가 어떻게 인간을 따라할 수 있었을까? 간단하게 인간이 일을 처리할 때 행동들을 잠깐 나열해보자. 문제가 ..
비밀 그리고 대칭키와 비대칭키 우리는 한번쯤 학창시절에 비밀쪽지를 주고 받은 기억이 있을거다. 없을수도 있겠지만 나는 해봤다. 그때 우리는 왜 비밀로 친구와 얘기를 주고 받았을까? 서로만 알고 싶었고 그래야헀기 때문이지 않을까싶다. 서로가 아닌 남이 그 정보를 안다면 그 정보의 가치는 희석이 될 것이다. 이러한 비밀정보를 주고 받는 행위는 어릴 때부터 해왔고 그 누구도 가르쳐주지 않았을 것이다. 지금은 정보의 형태가 굉장히 많아졌다. 쪽지의 글씨에서 넷상에서 주고받는 이진법의 형태까지 ... 다양한 형태로 우리는 정보를 주고 받고있다. 오늘은 컴퓨터와 컴퓨터가 어떻게 서로의 정보를 비밀쪽지처럼 주고받는지 한번 정리해보려고 한다. 1. 대칭키 정보의 원본이 있을거다. 원본 : "수민이는 바보다." 수민이가 바보라는건 비밀이여야 한다. ..
HTTP에 대하여(3) - HTTP의 쿠키,세션 그리고 토큰 이전글에서는 HTTP의 특징 및 사용이유에 대해서 정리해보았는데 이번에는 HTTP의 또 다른 특징인 클라이언트의 상태를 기억하는 개념에 대해서 나열하고 정리해보겠다. 비연결상태, 무연결상태를 보이는 HTTP는 클라이언트를 모른다는 단점(?)을 어떻게 보완하고 있는지 보자. 1) 쿠키. 먼저 쿠키다. 내가 만든 쿠키가 아닌 서버가 만든 쿠키를 클라이언트(브라우저)가 보관하고 있으며 쿠키에는 클라이언트가 저장해도될만한 정보들을 저장하고 있다. 서버는 클라이언트로부터 받은 쿠키로 클라이언트가 이전 사용한 이력이나 설정과 같은 정보들을 읽어서 클라이언트를 관리할 수 있다. 2) 세션 쿠키와 달리 세션은 서버가 관리를 한다. 서버가 관리하기에 쿠키보다는 좀 더 중요한 정보들을 서버가 관리가 가능하다. 예를 들어,..
HTTP에 대하여(2) - HTTP의 특징 저번 포스팅에서는 HTTP란 무엇인가에 대해 간략하게 정리를 해보았다. https://eeasyy.tistory.com/41 HTTP에 대하여(1) - HTTP의 정의 컴퓨터를 사용하는 사람이라면..(요즘은 컴퓨터를 대부분 사용하겠지만) http 에 대해서는 들어보거나 봤을것이다. 물론 일반인들은 http가 정확히 뭔지는 모를것이다.(개발자들도 제대로 알까..) eeasyy.tistory.com 이번에는 HTTP라는 녀석을 왜 사용하는지에 대해 한번 알아보려고 한다. 사실 HTTP 프로토콜을 사용하는 목적은 간단하다. "... 통신하려고 ... " 단순히 통신하려고 HTTP를 써야할거는 아닐거다. 그럼 많은 통신 프로토콜중에 HTTP를 쓰는 특징에 대해 알아보자. HTTP의 가장 큰 특징으로는 비연결성&..