본문 바로가기

전체 글

(135)
Every CS - 데이터베이스 04 - SQL 심화 DB 04 - SQL 심화 : 효율적인 쿼리 사용01. 서브 쿼리와 조인서브 쿼리다른 SQL 문이 포함된 SAL문조인2개의 테이블을 하나로 합치는 것예시CREATE TABLE users ( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, birthdate DATE, registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP);CREATE TABLE posts ( post_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, title VARCHAR(50) NOT NUL..
Every CS - 데이터베이스 03 - SQL DB 03 - SQLSQL 명령은 크게 DDL(데이터 정의 언어), DML(데이터 조작 언어), DCL(데이터 제어 언어), TCL(트랜잭션 제어 언어) 로 나누어 진다.1. DDL(Data Definition Language) - 데이터 정의 언어1. CREATECREATE DATABASE NAME_OF_DATABASE;CERATE 명령은 데이터베이스(CREATE DATABASE), 테이블(CREATE TABLE), 뷰(CREATE VIEW), 인덱스(CREATE INDEX), 사용자(CREATE USER)등 다양한 대상을 정의한다.테이블을 생성하는 경우에는 특정 필드의 제약 조건을 명시할 수 있다.예시 1) CREATE TABLE users ( user_id INT PRIMARY KEY AUTO..
Every CS - 데이터베이스 02 - RDBMS DB02 - RDBMS1. 테이블의 구성 - 필드와 레코드필드 타입 : 필드로 사용 가능한 데이터 유형필드 타입의 종류키 : 테이블 내의 특정 레코드를 식별할 수 있는 필드의 집합 1. 후보 키 : 테이블의 한 레코드를 식별하기 위한 필드의 최소 집합 - 유일성과 최소성을 모두 만족하는 키 2. 복합 키 : 두 필드 이상으로 구성된 후보 키 3. 슈퍼 키 : 레코르를 식별하기 위한 필드의 집합 - 유일성은 만족하나 최소성은 만족하지 않는 키 4. 기본 키 : 한 레코드를 식별하도록 선정되어 테이블당 하나만 존재할 수 있는 키 -> Not NULL 5. 외래 키 : 다른 테이블의 기본 키를 참조하는 필드 6. 대체 키 : 기본 키가 아닌 후보 키2. 테이블의 관계1. 일대일..
Every CS - 데이터베이스 01 - 데이터베이스 일반 데이터베이스 01 - 데이터베이스 일반데이터베이스와 DBMS1. 데이터베이스(Database)여러 원하는 기능을 동작시키기 위해 마땅히 저장해야 하는 정보의 집합 데이터베이스관리 시스템(DBMS : Database Management System)데이터베이스를 관리하기 위한 프로그램1. 관계형 데이터베이스 관리 시스템(RDBMS) : MySQL, MariaDB, PostgreSQL 등 이 있음.2. NoSQL 데이터베이스 관리 시스템(NoSQL DBMS)2. 서버로서의 DBMS응용 프로그램이 DBMS를 이용하는 과정은 클라이언트-서버 간의 동작과 유사하다.주로 TCP 연결을 맺으며, 때론 인증이 필요하기도 하다.DBMS클라이언트는 DBMS에 쿼리를 보낸다.SQL : RDBMS에서 데이터를 조작하고 관리하..
Every CS - 운영체제(OS) 05 - 파일 시스템 파일 시스템보저기억장치의 정보를 파일 및 디렉터리의 형태로 저장하고 관리할 수 있도록 하는 운영체제 내부 프로그램파일과 디렉터리파일파일의 구성 파일의 이름, 파일을 실행하기 위한 정보, 속성(메타데이터, 파일과 관련한 부가 정보)파일을 다루는 모든 작업은 운영체제에 의해 이루어진다. 응용 프로그램은 임의로 파일을 할당받아 조작하고 저장할 수 없고, 파일을 다루는 시스템 콜을 이용해야 한다.파일 디스크립터프로세스가 파일을 식별할 수 있는 정보open()의 반환값 및 write()의 인자가 된다.디렉터리 (폴더)관리 방식 : 트리 구조 디렉터리루트 디렉터리와 서브 디렉터리로 구성되며, 슬래시(/)로 구분되는 경로를 사용하여 표시한다.경로 : 디렉터리 정보를 활용해 파일 위치를 특정하는 정보디렉터리 엔트리 :..
Every CS - 운영체제(OS) 04 - 가상 메모리 가상 메모리서론CPU와 프로세스들이 메모리의 몇 번지에 무엇이 저장되어있는지 알고 있지 않다.CPU의 저장공간이 메모리의 저장공간보다 훨씬 작기 때문이다.물리 주소와 논리 주소물리 주소 : 메모리의 하드웨어 상 실제 주소논리 주소 : 프로세스마다 부여되는 0번지부터 시작하는 주소 체계 ※ 논리 주소는 중복이 발생될 수 있음논리 주소는 가상의 주소이기 때문에 실제 주소인 하드웨어 상의 메모리와 상호작용하기 위해서는 반드시 논리 주소와 물리 주소간의 변환이 이루어져야 한다.이를 위해서 존재하는 하드웨어를 메모리 관리 장치(MMU - Memory Management Unit)가 있다.스와핑과 연속 메모리 할당스와핑메모리에 적재된 프로세스 중 실행되지 않는 프로세스가 있을 수 있다.이러한 프로세스들을 임시..
Every CS - 운영체제(OS) 03 - CPU 스케줄링 CPU 스케줄링개념 정리CPU 스케줄링 : 다양한 프로세스와 스레드에 CPU의 사용을 배분하는 방법CPU 스케줄링 알고리즘 : CPU 스케줄링의 절차CPU 스케줄러 : CPU 스케줄링 알고리즘을 결정하고 수행하는 운영체제의 일부분1. CPU 스케줄링우선순위모든 프로세스는 CPU의 자원을 필요로 하기 때문에 운영체제는 공정하고 합리적인 방법으로 CPU의 자원을 프로세스에 할당해야 한다.따라서 운영체제는 프로세스별 우선순위를 판단하여 PCB에 명시하고, 우선순위가 높은 프로세스에 CPU의 자원을 더 빨리, 더 많이 할당한다.윈도우의 Process Explorer에서 소프트웨어의 Prioriy 항목을 확인할 수 있다.우선순위 할당 방법1. CPU 활용률 : 전체 CPU의 가동 시간 중 작업을 처리하는 시간의 ..
Every CS - 운영체제(OS) 02 - 프로세스와 스레드 운영체제 02 - 프로세스와 스레드프로세스의 유형 : 포그라운드 프로세스, 백그라운드 프로세스프로세스를 구성하는 메모리 : 커널 영역, 사용자 영역(스택 영역, 힙 영역, 데이터 영역, 코드 영역)1. 사용자 영역프로그램 실행 중 크기가 변하지 않는 정적 할당 영역 : 코드 영역, 데이터 영역1. 코드 영역 실행 가능한 명령어가 저장되는 공간 CPU가 읽고 실행할 명령어가 있는 read-only 공간2. 데이터 영역 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간 주로 정적 변수, 전역 변수가 저장된다.크기가 변할 수 있는 동적 할당 영역 : 힙 영역, 스택 영역1. 힙 영역프로그램을 만드는 사용자가 직접 할당 가능한 저장 공간프로그램 실행 중 자유롭게 사용 가능함.메모리를 ..
Every CS - 운영체제(OS) 01 - 운영체제의 역할 및 실행 운영체제 01 - 운영체제의 역할 및 실행운영체제는 2가지의 핵심 기능이 있다.자원 할당 및 관리프로세스 및 스레드 관리운영체제의 역할자원이란?자원(Resource) : 프로그램 실행에 마땅히 필요한 요소데이터, 부품 등CPU관리 : CPU 스케줄링실행 중인 모든 프로그램을 공정하고 합리적으로 CPU를 할당 받도록 CPU의 할당 순서와 사용 시간을 결정하는 것메모리 관리 : 가상 메모리실제 물리적인 메모리 크기보다 더 큰 메모리를 이용할 수 있도록 하는 기술파일/디렉터리 관리 : 파일 시스템보조기억장치를 효율적으로 관리하기 위해 내부 정보를 파일 및 폴더 단위로 접근 및 관리할 수 있도록 만드는 내부 프로그램프로세스 및 스레드 관리프로세스 : 실행 중인 프로그램스레드 : 프로세스를 이루는 실행의 단위동시..
ChatGPT와 사용법 목차ChatGPTChatGPT 시작하기ChatGPT 기본 활용법ChatGPT 실전 활용ChatGPT 고급 활용법1. ChatGPT1.1 ChatGPT란?ChatGPT는 대화형 AI 모델로, GPT(Generative Pre-trained Transformer)라는 언어 모델을 기반으로 한다.이 모델은 방대한 양의 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성한다.주요 특징맥락 이해 능력이 뛰어나다. : 이전 대화를 기억하고 이를 바탕으로 적절한 응답을 생성한다.다양한 작업을 수행한다. : 글쓰기, 코드 작성, 번역, 요약 등학습 능력이 뛰어나다.다국어를 지원한다.1.2 ChatGPT와 다른 AI 도구들범용성 : 다른 aI 도구들이 특정 분야 및 작업에 특화되어 있는 반면, 매우 넓은 범위의 주제와..