RDB 보조기억장치에 저장한다. row, column이 존재한다. 관계를 통해 데이터를 연결한다. SQL을 통해 접근한다. 데이터의 형식을 지정하여 사용한다. (테이터 형식 변경이 비교적 어려움.) MySql 등이 있다. NoSQL 보조기억장치에 저장한다. Key-Value 형태 등으로 데이터 저장한다. (이외에도 Document, Graph, Wide-Column 형태가 있음.) 데이터 형식을 지정하지 않아 구조 변경이나 데이터 형식 변경이 쉽다. RDB에 비해 대용량의 데이터를 저장할 수 있다. MongoDB 등이 있다. In-Memory (NoSQL) 주기억장치에 저장한다. 용량의 크기가 보조기억장치를 사용하는 DB에 비해 작다. 데이터 접근 속도가 보조기억장치를 사용하는 DB에 비해 빠르다. 안정..
멱등성? 서버에 여러번 동일한 요청을 보냈을 때, 하나의 요청만 보냈을 경우와 서버의 상태가 같은 것. 즉, 동일한 요청에 대해서는 서버의 상태가 동일한 것이다. 멱등성이 필요한 이유 HTTP 요청이 실패한 경우에, 멱등성이 보장된다면, 요청을 재시도하면 된다. 멱등성이 보장되지 않는다면, 서버에서 리소스 처리가 어떻게 되어있는지 몰라 문제를 일으킬 수 있다. 멱등성을 가진 메서드: GET, DELETE, PUT 등 멱등성을 가지지 않는 메서드: POST, PATCH 그리고, 안전한 메서드는 멱등성을 가졌다고 볼 수 있다. 안전한 메서드? 서버의 상태를 변경하지 않는 메서드이다. 이들은 멱등성을 가졌다고 할 수 없다. GET, HEAD, OPTIONS 등. PUT, DELETE는 멱등성을 가졌지만, 안전..
사전 작업 AWS EC2 서비스에 인스턴스가 열려있고, 22번 포트(ssh 포트)가 개방되어 있는 상태여야 한다. (EC2 콘솔 - 보안 그룹에서 인바운드 규칙 수정) 그리고, 인스턴스와 연결되어 있어야 한다. 키페어를 이미 생성받아 다운로드 받아둔 상태이다. ssh로 EC2 인스턴스에 접속하기 ssh -i {pem 키 경로} {유저이름}@{호스트 주소} 이상이 없다면 접속이 될 것이다. 만약, bad permission 오류가 뜬다면 pem 키 permission 관련 오류이다. pem 키를 owner만 읽을 수 있게 만들면 된다. chmod 400 {pem 키 경로} Windows의 경우, chmod 명령어가 없어 GUI 통해서 직접 보안 수준을 조정해야한다. 위와 같은 방법으로 EC2에 접속할 경우..
Controller? Controller는 사용자의 요청을 받아 그에 맞는 동작을 하도록 연결하거나, 응답을 받기를 원하는 것을 돌려주는 역할을 한다. 요청을 분석하고, 처리된 결과를 가공하여 돌려주는 것이 핵심이다. @Controller 클래스에 @Controller 어노테이션을 붙여주면 클래스를 Controller로 만들 수 있다. 주로 JSP 등을 이용한 View를 return할 때 사용하며, Json 등 데이터 객체를 반환하기 위해서는, @ResponseBody를 추가로 붙여주면 된다. @Controller class PostController() { @GetMapping fun post() = "post.jsp 디렉토리 경로" } @RestController Controller에서 View를 사..
조인은 데이터베이스에서 데이터를 조회할 때, 여러 개의 테이블을 엮어야 조회할 수 있는 경우도 있다. 이때, 조인을 통해 두개의 테이블을 엮어 원하는 데이터를 조회할 수 있도록 하는 것이다. Inner Join 기준테이블과 조인테이블 모두에 조인 컬럼이 존재하는 행을 조인한다. SELECT [컬럼명] FROM [테이블1] JOIN [테이블2] ON [테이블1.컬럼명] = [테이블2.컬럼명] [WHERE 조건문] ID age ID name 1 20 2 "a" 2 25 3 "b" ID age name 2 25 "a" Natural Join 기준 테이블과 조인 테이블에서, 같은 컬럼(이름과 데이터타입이 같아야 함.)들로 Inner Join을 수행한다. Inner Join의 일종이지만, Inner Join은 조..
SELECT 테이블의 데이터 조회 시에 사용한다. SELECT [컬럼 목록] FROM [테이블명]; 컬럼 목록 * : 테이블 내 모든 컬럼을 선택한다. 컬럼 1, 컬럼 2 ... : 나열한 컬럼을 선택한다. DISTINCT: 중복행을 제거한다. ALIAS: 컬럼의 별칭을 설정한다. CONCAT: 컬럼을 합친다. ORDER BY 컬럼 명 [ASC(기본값)/DESC]: 컬럼 명을 기준으로 ASC(오름차순) 혹은 DESC(내림차순) 정렬한다. WHERE 조건식: 조건에 따라 결과를 필터링한다. 등등.. INSERT 테이블에 데이터를 추가할 때 사용한다. INSERT INTO [테이블명] [컬럼1, 컬럼2, 컬럼3] VALUES [값1, 값2, 값3]; INSERT INTO [테이블명] SELECT * FROM..
CREATE 테이블 생성 시에 사용한다. CREATE TABLE [테이블명]( , ...); CREATE TABLE user ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(20) NOT NULL, age INT NOT NULL ); PRIMARY KEY: 고유하게 식별하기 위한 기본 키. 1개의 테이블에 1개의 기본키만 정의 가능. NULL 불가 UNIQUE KEY: 고유하게 식별하기 위한 고유키. NULL 가능. NOT NULL: NULL 불가 CHECK: 값의 범위 제한 FOREIGN KEY: 테이블 간의 관계 정의를 위해 다른 테이블의 기본키를 외래키로 사용. ALTER 테이블 구조 변경 시에 사용한다. ALTER TABLE [테이블명] [할 행..
DDL(Data Definition Language) - 데이터 정의어 데이터베이스를 정의하는 언어이며, 데이터의 구성을 결정하는 역할을 한다. CREATE: 데이터베이스, 테이블을 생성 ALTER: 테이블 수정 DROP: 데이터베이스, 테이블 삭제 TRUNCATE: 테이블 초기화 DML (Data Manipulation Language) - 데이터 조작어 데이터베이스 테이블의 데이터을 조작한다. SELECT: 데이터 조회 INSERT: 데이터 삽입 UPDATE: 데이터 수정 DELETE: 데이터 삭제 DCL(Data Control Language) - 데이터 제어 데이터의 보안, 무결성, 회복을 위해 사용한다. GRANT: 데이터베이스 사용자에게 특정 작업에 대한 권한 부여 REVOKE: 데이터베이스 ..
- Total
- Today
- Yesterday
- 포트 주소
- 교환 시스템
- 세션 계층
- 전송 계층
- Internetworking
- 동기점
- 혼잡
- 서비스 프리미티브
- 통합점
- 데이터링크 계층
- 라우팅
- 네트워크
- HTTP
- OSI 7계층
- IP
- Service Primitive
- 오류 제어
- 와일드카드 마스크
- TTL
- 거리 벡터 라우팅
- 사설 IP 주소
- 네트워크 계층
- 데이터링크
- 리키 버킷
- 가상 회선
- ECN 패킷
- 네임 서버
- 표현 계층
- 세션 연결
- 링크 상태 라우팅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |