CS
RESTful API 쉽게 이해하기
REST API란 REST는 REpresentational State Transfer의 줄임말이다. “State”는 웹 애플리케이션 의 상태를 의미하며, “Transfer”는 이 상태의 전송을 의미한다. 웹서비스에서 전달하려는 자원의 상태 표현 방식이라고 이해하면 쉽다. REST API는 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 한다. - REST의 규칙을 지키면서 만든 API를 REST API 혹은 RESTful API라고 부른다. REST AP..
[OS] 메모리 계층 구조 쉽게 이해하기
메모리 계층 구조란 무엇인가 (Memory Hierachy) 메모리를 필요에 따라 여러가지 종류로 나누는 것 => Why?? CPU가 메모리에 더 빨리 접근 가능해짐 컴퓨터 설계에 있어 서로 다른 여러 종류의 메모리 저장 장치를 함께 사용하여 최적의 효율을 낼 수 있게 하는 것 상황에 맞게 여러 저장 장치를 각각 사용하는 설계 => 컴퓨터 성능이 좋아짐 1. 레지스터(Register) CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치 CPU는 자체적으로 데이터를 저장할 방법이 없으므로 메모리로 직접 데이터를 전송할 수 없음 → 연산을 위해서 반드시 레지스터를 거쳐야 하며, 이를 위해 레지스터는 특정 주소를 가리키거나 값을 읽어올 수 있음 프로세서에 위치한 고속 메모리로, 프로세스가..
Object Oriented Programming 객체 지향 프로그래밍
객체 지향 프로그래밍이란 컴퓨터 프로그래밍의 패러다임 중 하나. 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다. 즉, 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 처음 개발을 시작하는 사람들에겐 난해한 개념이지만. 명령어(코드)들을 하나의 부품처럼 구분한다고 생각하면 쉽다. 각각의 부품들은 서로 연결되어 있으며 서로의 기능들을 주고받고 결국 그것들이 모여 하나의 프로그래밍이 완성된다. 객체 지향 프로그래밍의 장단점 장점 클래스 단위로 모듈화시켜서 개발하기 때문에 업..
[SQL] WHERE 1=1
프리온보딩 백엔드 과제중 팀원이 작성한 코드에서 이해가지 않는 코드를 발견했었다.. 지금은 이 코드가 무엇인지 알지만... 또 사용할 일을 대비하여,, 기록한다.. const getMeasurementData = async (date1, date2, weight1, weight2) => { const getMeasurementData = await myDataSource.query( ` SELECT user_id as id, weight, date_format(created_at, "%Y-%m-%d %h:%m:%s") as date, JSON_ARRAYAGG(JSON_OBJECT("value", measurement_data.data, "name", data_types.name)) as typeData ..
파싱(Parsing)이란 무엇인가
파싱(parsing: 구문 분석)은 하나의 프로그램을 런타임 환경(ex. 브라우저 내 자바스크립트 v8엔진 등)이 실제로 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것을 의미한다. 즉, 파싱은 문서의 내용을 토큰(token)으로 분석하고, 문법적 의미와 구조를 반영한 파스 트리(parse tree)를 생성하는 과정. 브라우저는 HTML을 DOM TREE로 파싱한다. HTML parsing에는 토큰화와 tree 구조가 포함된다. HTML token에는 시작 태그와 마침 태그가 포함되며, 속성 이름과 값도 포함된다. 형식을 잘 갖춘 문서라면 파싱은 직관적이고 빠르게 진행될 것이다. 파서(parser)는 토큰화된 입력값을 문서에 parsing하며, 다큐먼트 tree를 구성한다. HTML parser가 이..
[Network] 인터넷 네트워크 구조 (IP,TCP,UDP,DNS,PORT)
네트워크란 Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태 네트워크 종류 PAN ( Personal Area Network ) : 가장 작은 규모의 네트워크 LAN ( Local Area Network ) : 근거리 영역 네트워크 MAN (Metropolitan Area Network) : 대도시 영역 네트워크 WAN (Wide Ares Network) : 광대역 네트워크 VAN (Value Added Network) : 부가가치 통신망 정보의 축적과 제공, 통신속도와 형식의 변화, 통신경로의 선택 등 여러 종류의 정보서비스가 부가된 통신망. ISDN (Integrated Services Digital Network) : 종합정보 통신망(=BISDN) ..
[OAuth] OAuth 2.0 이란
OAuth를 왜 쓸까 OAuth를 왜 쓸까? 하고 생각해보기 전에 네이버 로그인이나 카카오 로그인을 왜 사용할까? 네이버 로그인이나 카카오 로그인을 쓰는 데에는 여러가지 이유가 있을 수 있다. 나의 경우에는 유저들에게 회원가입/로그인을 쉽게 제공하기 위해 이번 프로젝트에서 카카오 소셜로그인을 구현했다. 그렇다면 내가 만든 사이트에서 카카오 소셜로그인을 사용하려는 유저가 카카오톡을 사용하는 사람인지는 어떻게 알 수 있을까?? 이걸 해결하기 위해 OAuth가 생겼다. OAuth 란? Open Authorization 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 ..
mysql-basic-command
Mac 에서 Mysql 서버 실행 $ mysql.server start Root 로그인 $ mysql -u root -p Database 생성 mysql> create database DB_NAME; 조회 mysql> show databases; 삭제 mysql> drop database [database_name]; 사용 mysql> use [database_name]; 현재 사용중인 DB 확인 mysql> select database(); Table 조회 mysql> show tables; 특정 테이블 정보 조회 mysql> desc [table_name]; 컬럼 추가 mysql> alter table [table_name] add [column_name] varchar(100) not null d..