TIL

RESTful API에 관하여

본 포스트는 “그런 REST API로 괜찮은가”라는 이응준님의 발표를 보고 정리한 내용입니다. 최근 여러 면접에서 RESTful API가 무엇이라고 생각하는가? 에 대한 질문은 어딜 가던지 물어보았습니다 구글링을 통해서 얻은 답을 했었는데 이게 다가 아닌것 같은 느낌.. 그러다가 지인한테 RESTful API가 뭐라고생각하냐고 물으면 뭐라 답할것인가 물었더니 이 영상을 추천해 주시더군요 ㅎㅎㅎ RESTful API의 탄생배경부터 로이필딩에 관한 이야기까지 정말 재미있게 봤습니다. REST란 REpresentational State Transfer 의 약자라고 하는데요, 이것만 봐선 도무지 뭔지 모르겠네...

더보기

[ #2 ] 운영체제 - 가상메모리

가상 메모리란? 가상 메모리는 메모리를 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말합니다. 이러한 방식은 멀티태스킹 운영체제에서 흔히 사용되며, RAM보다 큰 영역으로 제공하는 방법으로 사용된다고 합니다. 가상 메모리의 등장 배경 “RAM은 결코 충분하지 않다.” 이 말은 옛날부터 운영체제 설계자들이 고민해 왔던 말이라고 하는데요, 예를들어, 가상 메모리의 개념을 사용하지 않는 시스템에서 어플리케이션 수행 시 1기가 바이트의 용량을 차지하는 프로그램이 있다고 가정해 보면, 시스템의 메모리는 최소 1기가 바이트 이상이 되어야 할 것입니다. 만일,...

더보기

[ #1 ] 운영체제 - 커널 & 쉘

리눅스 커널 (Kernel) 운영체제 내부에 있는 것으로 컴퓨터의 하드웨어를 제어하며, 운영체제의 90%를 차지. 소프트웨어 - 하드웨어간의 커뮤니케이션을 관리하는 프로그램 하드웨어 관리 및 프로세스 분배 등 여러 시스템 자원 관리 하드웨어를 직접적으로 제어하는 운영체제에서 가장 핵심 요소 리눅스 쉘 (Shell) 사용자가 명령을 입력하면 그 명령을 커널이 이해할 수 있도록 기계어로 전달하는 프로그램 사용자(명령) → 쉘(해석) → 커널(명령 수행 후 결과 전송) → 쉘(해석) → 사용자(결과 확인) 유저와 커널사이를 이어주는 명...

더보기

[ #6 ] MySQL - 인터넷과 데이터베이스

첫번째 포스트에서 말하지 않고 넘어간 부분이 있습니다. 바로 데이터베이스 서버입니다. 저는 brew를 사용하여 MySQL을 설치하였는데 MySQL은 두개의 프로그램을 동시에 설치해 줍니다. 하나는 database client 이고 다른 하나는 database server입니다. 실습을 하면서 database server를 직접 다루는 것처럼 느낄 수 있지만 사실은 데이터베이스 서버는 직접 다룰 수 없습니다. 어떠한 경우에서든 데이터베이스 클라이언트를 사용해야하는데요. mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands e...

더보기

[ #5 ] MySQL - 관계형 DB의 필요성

mysql> SELECT * from topic; +----+------------+-------------------+---------------------+----------+---------------------------+ | id | title | description | created | author | profile | +----+------------+-------------------+---------------------+----------+---------------------------+ | 1 | MySQL ...

더보기

[ #4 ] MySQL - CRUD operation

이전 포스팅에서는 MySQL에서 table을 만들어 봤엇는데요. 이번 포스팅에서는 해당 테이블에 데이터를 생성, 조회, 업데이트, 삭제를 해보겠습니다. CREATE 우선 데이터를 삽입하기에 앞서서 테이블에 어떠한 attribute가 있는지 모를 수 있는데 이때 아래와 같은 명령어를 사용하면 확인할 수 있습니다. 명령어 DESC <table이름> 예제 데이터 삽입명령어 INSERT INTO <table이름> (table컬럼명1 , table컬럼명2, table컬럼명3 , ...) values ('컬럼명1 에들어갈 값','컬럼명2 에들어갈 값', '컬럼명3 에들어갈 값', ...)...

더보기

브라우저에 URL을 입력했을 때 일어나는 일들

이번 포스트 에서는 브라우저에 www.naver.com을 입력해보고 어떠한 일이 일어나는지 과정을 알아보겠습니다. 1. 브라우저의 URL 파싱 URL을 입력받은 부라우저는 먼저 해당 URL의 구조를 해석합니다. 어떤 프로토콜을 사용할지 어느 도메인으로 보낼지 어떤 포트로 보낼지 해석하게 되는것입니다. 명시적으로 포트를 선언하지 않아도 브라우저에서는 설정된 기본값을 이용하여 요청하게되는데요, HTTP 라면 80번 포트를, HTTPS의 경우 443번 포트를 기본 값으로 요청하는 것입니다. 2. HSTS 목록 조회 HSTS(HTTP Strict transport security), HTTP를...

더보기

[ #3 ] MySQL - SQL과 테이블의 구조

SQL이란 Structured Query Language 의 약자이며 아래와 같은 특징을 가집니다. 특징 SQL은 어떤 컴퓨터 언어보다 쉽습니다. 관계형 데이터베이스라는 카테고리에 속하는 제품들이 공통적으로 데이터베이스서버를 제어할 때 쓰이는 표준화된 언어이기에 매우 중요합니다. -> 가성비가 뛰어난 언어 Table의 구조 row: 데이터 그자체 column: 데이터의 구조 MySQL Data 타입 MySQL에서 쓸 수 있는 데이터 타입은 아래의 표와 같습니다. 형태 데이터형 범위 크기 ...

더보기