-
[REST tutorial] REST? REST API? RESTful? REST에 대한 아주 쉬운 개념 정리!Computer Science 2019. 9. 16. 10:00
Ajax에 관해 공부할때 REST라는 단어를 한번쯤을 들어봤을 것이다. 여기저기에 굉장히 자주 쓰이는 단어인데 문제는 REST가 그래서 뭔데? 라고 말했을때 설명하기 굉장히 어렵다는 것이다. 그래서 오늘은 REST를 처음 접하는 사람도 이해하기 쉽게 REST 개념에 대해서 정리를 해보려고 한다. REST라는 개념은 2000년에 Roy Fielding이라는 사람이 논문을 내면서 알려졌다. 네트워크 시스템의 아키텍쳐 스타일에 대해 처음 소개하면서 나온 용어이다. Roy Fielding이란 사람은 HTTP(HyperText Transfer Protocol)의 주요 저자 중 한 사람이기도 하다. HTTP란 www, 즉 웹 상에서 정보를 주고받을 때 쓰이는 전송 규약, 규범이다. 매우 매우 중요한 개념이고 지금 ..
-
[HTTP] HTTP Method 정리 / GET vs POST 차이점Computer Science 2019. 9. 10. 22:06
GET이나 POST는 매우 자주 쓰는 HTTP 메소드들이다. 아마 제일 많이 쓰지 않나 싶다. 근데 정확히 두 개가 어떻게 다른지, 어떤 특징을 가지고 있는지 잘 모르겠어서 정리해보려고 한다. 아래 글들은 영문 블로그 내용을 번역한 것이고 원문 글에 대한 출처는 글 하단에 있다. GET GET 메소드는 주로 데이터를 읽거나(Read) 검색(Retrieve)할 때에 사용되는 메소드이다. 만약에 GET요청이 성공적으로 이루어진다면 XML이나 JSON과 함께 200 (Ok) HTTP 응답 코드를 리턴한다. 에러가 발생하면 주로 404 (Not found) 에러나 400 (Bad request) 에러가 발생한다. HTTP 명세에 의하면 GET 요청은 오로지 데이터를 읽을 때만 사용되고 수정할 때는 사용하지 않는..
-
[HTTP] Cross-Origin Resource Sharing (CORS)에 대하여Computer Science 2019. 9. 10. 19:43
프로그래밍 공부를 하다보면 오픈 API에 요청보내고 응답받는 일을 굉장히 많이 하게 된다. 그러다보면 CORS 에러도 필연적으로 만나게 되는데, 대체 CORS란 무엇인가? Cross-Origin Resource Sharing (CORS) 많은 웹 어플리케이션들이 이미지 파일이나 폰트, css 파일 같은 리소스들을 각각의 출처로부터 읽어온다. 만약에 웹 어플리케이션이 자기 자신이 속하지 않은 다른 도메인, 다른 프로토콜, 혹은 다른 포트에 있는 리소스를 요청하면 웹 어플리케이션은 cross-origin HTTP 요청을 실행한다. 만약에 프론트엔드 자바스크립트 코드가 https://domain-a.com에서 https://domain-b.com/data.json으로 json 데이터 요청을 보낸다면 이것이 바..
-
[자료 구조] Data Structure - (3) Tree / Binary Search TreeComputer Science 2019. 7. 14. 13:45
Tree 트리(Tree)는 이름 그대로 나무를 거꾸로 뒤집어 놓은듯한 형태이다. 자료구조가 하나의 뿌리에서 뻗어나가는 형상을 하고 있다. 트리 구조는 우리 일상에서 흔히 볼 수 있는 계층적인 구조(Hierarchical Structure)를 컴퓨터에서 표현한 구조이다. 한 가족의 족보나 회사의 조직도 등이 바로 트리 구조이다. 족보같은 경우 조상으로부터 자식, 자식의 자식, 자식의 자식의 자식 형태로 이루어져있기 때문이다. 컴퓨터의 파일 시스템이나 웹 페이지의 DOM 구조도 트리 구조이다. 트리 구조는 대개 위 그림과 같은 구조이다. 트리의 각 요소들은 Node라고 부르고 가장 상위의 노드를 Root Node라고 부른다. 반대로 최하위 노드는 Leaf Node 혹은 Terminal Node라고 한다. L..
-
[자료 구조] Data Structure - (2) Hash TableComputer Science 2019. 7. 11. 19:13
오늘은 자료 구조 중에서 매우 중요한 것들 중 하나인 Hash Table(해시테이블) 자료 구조에 대해서 정리해보려고 한다. 만약에 다음과 같은 친구들의 이름과 전화번호 리스트가 있다고 해보자. 1 Alice 010-1234-**** 2 Sam 010-1357-**** 3 Mike 010-1248-**** ... ... 10 Harry 010-9876-**** 이제 친구들의 이름, 전화번호 데이터를 어디엔가 저장해뒀다가 전화번호가 필요할 때마다 친구들의 이름을 입력해서 전화번호 데이터를 찾으려고 한다. 이 때 친구들의 전화번호를 가장 빠르게 찾기 위한 방법 중 하나가 바로 해시 테이블이다. 해시 테이블을 구성하는 데는 해시 함수(Hash function)라는 것이 필수적이다. 해시 함수는 친구 이름과 같..
-
[자료 구조] Data Structure - (1) Stack / Queue / Linked ListComputer Science 2019. 7. 8. 15:54
자료 구조는 코딩과는 별로 상관없는 것처럼 보일 수도 있겠지만 사실 프로그래밍에 있어서 매우 중요한 부분을 차지한다. 내가 어떠한 프로그램을 구현할 때, 혹은 어떤 알고리즘 문제를 해결하거나 새로운 로직을 만들어야할 때 데이터들을 어떤 구조로 저장하느냐에 따라서 프로그램의 효율성이나 성능 면에서 차이가 날 수 있기 때문이다. 따라서 오늘은 자료 구조 중에서 가장 기본적인 3가지를 간단하게 정리해보려고 한다. Stack (스택) Stack은 자료를 한 줄로 블록을 쌓듯이 추가하는 형태의 자료 구조이다. Stack의 맨 위에 자료를 추가하는 것을 우리는 push라고 하고 반대로 맨 위의 자료를 하나씩 제거하는 것을 우리는 pop이라고 한다. 위 그림처럼 스택은 어느 한 곳에 블록처럼 자료가 쌓이기 때문에 스..
-
[IT] 객체지향 프로그래밍이란?Computer Science 2019. 4. 25. 01:40
요즘 IT업계에서 공부를 하거나 일하고 있는 사람들이라면 많이 들어봤을 단어. 객체지향 프로그래밍, 객체지향 소프트웨어 공학, 객체지향 블라블라~~ 내가 배우고있는 자바스크립트라는 언어도 객체지향적인 언어라고 할만한 요소들이 있고 우리가 프로그래밍을 할 때도 객체지향 기법으로 해야한다고 하는데 그래서 대체 이 객체지향 프로그래밍이라는 것이 무엇일까? 뭔가 단어만 들으면 감이 안오고 생소한 객체지향이란 말은 사실 별게 아니다. 객체지향 기법이란 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 기계적인 부품을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법이다. 말은 댑따 어렵지만 개념을 쉽게 설명해보면 그렇게 어려운..