전체 글(91)
-
[Network]프로토콜(Protocol) - http / https
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 실제 라이브 되는 서비스의 개발을 하다 보면, 아무리 클라이언트 프로그래머라고 해도 네트워크 쪽 지식을 필요로 하는 경우가 있습니다. 네트워크의 기초 프로토콜이나 인증, Wep handling 등 클라이언트와 밀접한 작업을 하는 경우가 있기 때문입니다. 이 글에서는 기초적인 Network 관련 지식 중 프로토콜, 그중 가장 대중적인 http/https에 관해서 다뤄보려 합니다. 프로토콜(Protocol) 네트워크 관련된 공부를 하거나 작업을 하다 보면, 프로토콜(Protocol)이라는 단어를 자주 듣게 됩니다. HTTP, HTTPS, SSH, Telnet 등등 모두 프로토콜의 종류들입니다. 사실 이 단어는 외교에서 사용하는 의례(혹은 의정서)..
2022.04.10 -
[Algorithm]기본 탐색 알고리즘
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 지난 글 [Algorithm] 기본 정렬 알고리즘에 이어, 역시나 코딩 테스트 문제의 단골인 기본 탐색 알고리즘에 대해 다뤄보려 합니다. 정렬은 데이터를 '정리'하는 게 중심이었다면, 탐색은 데이터를 '검색'하는 게 중심이 되겠네요. 단골 문제이다 보니 예시 코드는 좋은 것들이 많이 돌아다녀 이번 글에서 코드는 굳이 포함하지 않겠습니다.(설명이 길어 글 길이가 길어진 이유도 있습니다.) 선형 탐색 가장 기본적이고 쉬운 탐색 알고리즘이 아닐까 생각합니다. 순서대로 쭉… 찾는 거니까... 다른 이름으로 순차 탐색이라고도 함 데이터의 집합(배열, 리스트)등의 처음부터 끝까지 순서대로 비교하며 탐색하는 방식 데이터의 양이 늘어나면 수행 시간이 기하급..
2022.04.10 -
[Algorithm]기본 정렬 알고리즘
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 예전에 취업준비를 하면서 코딩 테스트 연습을 한 적이 있습니다. 코딩 테스트 출제 문제는 수학적 사고가 필요한 Dynamic programming이나 트리 같은 자료구조 등 다양 하지만 데이터의 정렬과 탐색이 꽤나 많았던 걸로 기억합니다. 이번 글에서는 기본적인 정렬 알고리즘 몇가지를 다뤄 보려 합니다. 다루는 주 내용은, 알고리즘의 특징과 시간 복잡도 그리고 간단한 코드 예시 입니다. 선택정렬 시간 복잡도 : O(n^2) 공간 복잡도 : O(n) 현재 위치에 들어갈 자리를 선택해 정렬하는 방식 로직 제일 앞에서 부터, 배열값 중 가장 작은 값을 찾음 찾은 가장 작은값을 현재 인덱스와 교체 위 과정 반복 코드 예시 void selectionS..
2022.04.10 -
[Node.js]내장 모듈
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 지난 글 [Node.js]내장 객체에 이어 이번 글에서는 Node.js에서 기본적으로 제공하는 내장 모듈에 대해서 다뤄보려 합니다. 아래는 내장 모듈의 사용법입니다. require('모듈명') : 인자로 받은 모듈을 가져와 사용할 수 있게 해 줌 #include 나 import 같은 거, 전처리기가 아닌 함수 형태로 제공 내장 모듈 종류 os os 정보를 담고 있는 모듈 path 파일이나 폴더의 경로를 다루는데 도움을 주는 모듈 url 문자열 —- parse() —> url객체 : url.parse()은 문자열을 받아 url객체를 리턴 url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) p..
2022.04.10 -
[Node.js]내장 객체
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 예전에 취미 삼아 Node.js를 잠깐 공부한 적이 있습니다. 지금은 관련 업무나 특별히 공부하지는 않지만, 그때 정리한 기초 내용을 아카이빙용으로 정리해 보려 합니다. Node.js에서 기초가 되는 모듈이나, require 등에 관해서는 별도의 개념은 따로 다루지 않겠습니다. 내장 객체 말 그대로, Node.js에 기본적으로 내장된 객체들을 말합니다. 별도의 모듈을 require함수가 필요하거나 모듈을 필요로 하지 않습니다. C/C++ 등에서 별도로 선언해서 사용하거나, include 해야 사용하는 구조체, 클래스와 다르게 사용할 수 있는 int, char 등 원시 자료형과 비슷하다 생각하면 될 것 같습니다. global 객체 message..
2022.04.10 -
[Computer science]메모리 단편화(Fragmentation)이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 냉장고 정리를 해본 적이 있나요? 저 같은 경우에는 예전에 자취를 하면서, 꽉 찬 냉장고를 정리한 적이 있습니다. 냉장고 정리를 하고 나니(버린 것이 아닌 내용물들의 재배치만 했습니다.) 꽉 차 보였던 냉장고에 여유공간이 생기게 됐죠. 냉장고 전체를 메모리라고 보고, 냉장고에 들어있는 내용물들을 메모리를 차지하는 데이터라고 생각해보죠. 분명 더이상 들어갈 자리가 없는 냉장고인데 재배치를 하고 나니 여유 공간이 생겼습니다. 이는 애초에 수치적인 공간이 부족했던 게 아니라 일정 크기의 내용물이 들어갈 연속된 공간이 없던 것입니다. 냉장고의 빈곳 일부일부를 다 합치면 김치통 하나 더 들어갈 자리는 있지만, 각각의 부분에는 한 번에 넣을 수 없다는 ..
2022.04.09