본문 바로가기

공부

(20)
[Linux Server] Node.js로 TCP 에코 서버 구현하기 (+ 방화벽 설정, 포트 열기) 원격 서버는 AWS lightsail을 이용해서 구현하였습니다. OS는 cent os 입니다. 목차 1. Node.js 설치 1-1. epel 설치 1-2. node.js 설치 2. 포트 열기 2-1. 리눅스 포트 열기 2-2. AWS 포트 허용 3. 서버 코드 작성 4. 클라이언트 코드 작성 5. 서버 설정 1. Node.js 설치 1-1. epel 설치 1-1-1. epel 설치 확인 yum repolist 또는 yum repolist | grep epel yum 명령어를 통해 epel 저장소가 있는지 확인한다. (빨간줄로 표시된 부분이 있어야 설치된 상태) 없을 경우 epel 설치를 진행한다. 1-1-2. epel 설치 sudo yum -y install epel-release epel을 설치한다...
[C++ STL] Array 1. Array - C++에 내장되어있는 고정 배열(Fixed array)을 대채 할 수 있는 고정 길이 자료구조 - 고정 배열 선언처럼 array의 길이는 컴파일 타임에 설정해야 한다. - 크기가 고정이기 때문에 힙(Heap)을 사용하지 않고 스택(Stack)을 쓴다. - 임의 접근이 가능하다. ( [ ], at() 지원) - Vector와 의 비교 Array Vector 효율성 크기 변경 가능 X O Vector 삽입, 삭제 용이 X (push, pop, insert 등 멤버함수 지원하지않음, 할당된 크기 내에서만 사용가능) O Vector 저장 공간 Stack Heap Array - 고정 길이 배열과의 비교 고정 길이 배열 Array 함수에 전달할 때 포인터로 형변환 된다. 포인터로 형변환 된 배열..
데이터 베이스 관리 시스템(DBMS)의 구성 데이터베이스 관리 시스템(database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다. 1. DDL 컴파일러 DDL로 명세 된 스키마 정의를 내부형태, 즉 메타 데이터로 처리하여 시스템 카탈로그에 저장한다. 이 카탈로그에는 파일의 이름과 크기, 데이터 아이템의 이름과 타입, 각 파일의 저장 세부 사항, 스키마 사이의 사상 정보, 제약 조건 등 DBMS 모듈들이 필요로 하는 많은 종류의 정보들을 포함하고 있다. 따라서 모든 DBMS 모듈들은 필요 시에 이 카탈로그 정보를 접근해서 이용한다. 2. 질의어 ..
6. 정보를 주고 받기 - send(), recv() 1. header #include #include 2. function int send(int socket, const void *msg, size_t len, int flags); int recv(int socket, void *buf, size_t len, int flags); 1) int socket: 통신의 주체가 되는 소켓 디스크립터 send - 정보를 받을 소켓 디스크립터 주소 recv - 정보를 보내는 소켓 디스크립터 주소 2) const void *msg : 상대에게 보낼 자료의 포인터 3) void *buf : 받은 메세지를 저장할 버퍼 포인터 4) size_t len : 전송되는 메세지의 크기 (byte 단위) 5) int flags : 플레그(옵션) flags 설명 MSG_DONTWA..
SQL 문법 예시 SQL 관련 정리 : https://dobby-the-house-elf.tistory.com/86 DDL 1. CREATE CREATE TABLE My_table( my_field1 INT, my_field2 VARCHAR(50), my_field3 DATE NOT NULL, PRIMARY KEY (my_field1, my_field2) [CONSTRAINT foreignKey] FOREIGN KEY my_field1 REFERENCES otherTable id ); 2. ALTER ALTER TABLE My_table ADD COLUMN my_field4 INT NOT NULL; 3. TRUNCATE TRUNCATE TABLE My_table; 4. DROP DROP TABLE My_table; DML..
[DB개념] Key Key란? - 데이터베이스에서 검색, 정렬 등 을 할 때 다른 튜플들과 구별 할 수 있는 기준이 되는 유일한 값을 가지는 속성. 일반적으로 그냥 Key라고 부르는 경우 기본 키를 말한다. 1. 슈퍼 키 (Super Key) - 데이터 베이스에서 테이블의 행을 고유하게 식별할 수 있는 속성 또는 속성의 집합을 말한다. 따라서 Key속성을 포함하는 속성의 집합은 모두 슈퍼 키 이다. 2. 후보 키 (Candidate Key) - 슈퍼 키 중 하나의 속성이라도 제거하면 유일성을 잃어버리는 키들의 집합. 더 이상 줄일 수 없는 슈퍼 키. 3. 기본 키 (Primary Key, 주 키) - 후보 키 중 설계자에 의해 선택, 정의 된 키를 말한다. 4. 대리 키 (Alternate Key) - 후보 키 중 기본 키..
DBMS 언어 SQL (Structured Query Language) 1. 데이터 정의 언어 (DDL : Data Definition Language) - 데이터베이스의 구조에 관련된 명령어로 테이블의 컬럼이나 테이블, 데이터 베이스에 영향을 준다. CREATE - 새로운 데이터베이스 관계(테이블), 뷰, 인덱스, 저장 프로시저 생성 DROP - 이미 존재하는 데이터베이스 관게(테이블), 뷰, 인덱스, 저장 프로시저를 제거 (일부 DBMS를 제외하고 ROLLBACK 안됨) ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 ( = RENAME) TRUNCATE - 관계(테이블)에서 데이터를 완전 제거 (ROLLBACK 불가능) 2. 데이터 조작 언어 (DML : Data Manipulation Language) - 데이터베이스 테이블 요소에 관련된 명령어로 테이블의..
데이터 베이스(DB)의 기본 구조 스키마 (schema) 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조. DBMS(DataBase Management Syetem, 데이터베이스 관리 시스템)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터 베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다. 스키마의 3층 구조 외부 스키마 (External Schema) 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것 개념 스키마 (Conceptual Schema) 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것 내부 스키마 (..