본문 바로가기

전체 글

(36)
TCP/IP란? TCP는 Transmission Control Protocol의 약자다. IP는 Internet protocol이다. 둘다 프로토콜의 종류다. 컴퓨터와 네트워크 기기가 상호간 통신하기 위해 서로 같은 방법으로 통신해야한다. 서로다른 하드웨어와 운영체제 등이 서로 통신을 하기위해 모든 요소에 규칙이 필요하며, 이런 규칙을 프로토콜이라 부른다. TCP란? 최상위 계층인 TCP는 많은 양의 데이터를 가져와서 패킷으로 컴파일한 다음, 동료 TCP계층에서 수신하도록 전송하여 패킷을 유용한 정보/데이터로 바꿔준다. 전달받은 패킷을 재조립하고, 패킷에 손상이 있거나 손실된 패킷이 있다면 재전송을 요청하는 패킷을 전송하여 재전송 받는다. 패킷이란 데이터를 일정한 크기로 자른 단위로 인터넷에서 정보를 전달하는 단위다. ..
[DB] DBMS / RDBMS DBMS (Database Management System) 데이터베이스를 관리하는 시스템이다. 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터를 생성해주고 데이터베이스를 관리해주는 소프트웨어다. DBMS는 데이터를 계층 또는 탐색 형식으로 저장한다. 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수도 있다. RDBMS (Relational Database Management System) 관계형 모델을 기반으로 하는 DBMS 유형이다. RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다. 정규화를 통해 데이터의 중복성을 최소화하며 트랜잭션을 수행하는 것이 더 쉽다. 데이터의 원자성, ..
[DB] DB정규화 정규화(Normalization)? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스다. 이상문제를 해결하기 위해 속성들끼리의 종속관계를 분석해 여러개의 릴레이션으로 분해하는 과정이다. 데이터베이스 정규화의 목표는 이상이 있는 관계를 재구성하고 잘 조직된 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것이다. 목적 - 불필요한 데이터를 제거, 데이터의 중복을 최소화 한다. - 데이터베이스 구조 확장시 재디자인을 최소화 - 다양한 관점에서의 쿼리를 지원하기 위해 - 무결성 제약조건의 시행을 간단하게 하기 위해 - 각종 이상현상을 방지하기 위해 테이블의 구성을 논리적이고 직관적으로 한다. 이상현상(Anomaly)? - 삭제이상 : 튜플 삭제시 연쇄 삭제가 발생하는 현상 - 삽입..
[DB] DDL, DML, DCL, TCL SQL (Structured Query Language)은 구조적인 질의 언어라는 뜻이며 sql이라는 질의 언어를 통해 데이터베이스를 제어, 관리한다. 1) DDL (데이터 정의어) DDL (Data Definition Language) 는 데이터베이스 스키마를 정의하거나 조작하기 위해 사용한다.스키마, 도메인, 테이블, 뷰, 인덱스를 명령어로 정의, 변경, 삭제한다. - CREATE, ALTER, DROP, TRUNCATE (DROP 후 CREATE) 2) DML (데이터 조작어) Data Manipulation Language는 데이터를 조작(조회, 추가, 변경, 삭제)하기 위해 사용한다. 사용자가 응용 프로그램과 데이터베이스 사이에 실질적인 데이터 처리를 위해 주로 사용한다. - SELECT, IN..
[DB] Trigger 방아쇠라는 뜻으로, 데이터베이스에서는 특정 테이블에 INSERT, DELETE, UPDATE와 같은 DML 문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램이다. 사용자가 직접 호출하는 것이 아니라, 데이터베이스에서 자동적으로 호출하는 것이 가장 큰 특징이다. 트리거는 테이블과 뷰 데이터베이스 작업을 대상으로 정의할 수 있으며, 전체 트랜잭션 작업에 대해 발생되는 트리거와 각행에 대해 발생되는 트리거가 있다. https://limkydev.tistory.com/154 [SQLD] 제2장 트리거(Trigger)란? 1. 트리거(Trigger)란? 트리거(Trigger)란 영어로 방아쇠라는 뜻인데, 방아쇠를 당기면 그로 인해 총기 내부에서 알아서 일련의 작업을 실행하고 총알이 날아갑니..
[DB] 데이터베이스 설계 시 고려할 점 데이터베이스 설계? 사용자의 요구를 분석하여 그것을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것이다. 설계 시 고려사항 1. 무결성 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약조건을 항상 만족해야 한다. 2. 일관성 데이터베이스에 저장된 데이터들 사이나 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함 3. 회복성 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함 4. 보안성 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함 5. 효율성 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함 6. 데이터베..
데이터베이스 (DB, database) 란 데이터베이스란? 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임이다. 데이터베이스 관리 시스템 (DBMS, databaseManagementSystem) 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미한다. 이전에는 파일 시스템을 이용해 데이터를 관리하였다. 파일 시스템은 응용 프로그램을 이용해 데이터를 파일로 관리하는 것이다. 파일을 기반으로 데이터를 관리하게 되면 데이터 중복, 데이터 불일치 등 문제가 발생하는데, 이러한 단점을 보완하기 위해 데이터베이스가 생겼다. 특징 1. 데이터의 독립성 - 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가..
[JAVA] 컴파일 과정 자바는 OS에 독립적이다. JVM(Java Virtual Machine)이라는 가상머신 때문이다. 자바 컴파일 순서 1. 자바 소스코드를(.java) 작성한다. 2. 자바 컴파일러가 자바 소스파일을 컴파이한다. 이때 나오는 파일은 자바 바이크 코드(.class)파일로 아직 컴퓨터가 읽을 수 없는 자바 가상머신이 이해할 수 있는 코드다. 바이트 코드의 각 명령어는 1바이트 크기의 Opcode와 추가 피연산자로 이루어져 있다. 3. 컴파일된 바이트 코드를 JVM의 클래스로더(Class Loader)에게 전달한다. 4. 클래스로더는 동적로딩(Dynamic Loading)을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역 (Runtime Data area) 즉 JVM의 메모리에 올린다. 5. 실행엔..