전체 글 73

SQL 프로그래밍

SQL 프로그래밍 SQL에도 다른 프로그래밍 언어와 비슷한 분기,흐름 제어,반복의 기능이 있다. 이러한 기능은 스터어드 프로시저, 스토어드 함수,커서 ,트리거 부분의 기본이 된다. SQL프로그래밍은 변수와 함께 잘 활용한다면 강력한 SQL 프로그래밍이 가능하다. DELIMITER $$ CREATE PROCEDURE 스토어드 프로시저이름() BEGIN SQL 프로그램 코딩.. END $$ DELIMITER; CALL 프로시저 이름(); DELIMITER $$ ~ END $$ 부분까지는 스토어드 프로시저의 코딩할 부분을 묶어준다. CALL 스토어드 프로시저이름();은 CREATE PROCEDURE로 생성한 스토어드 프로시저를 실행 한다. IF...ELSE 조건에 따라 분기한다. 한 문장 이상이 처리되어야 할..

DB 2023.09.23

조인(JOIN)

조인(JOIN) 조인이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 조인은 데이터베이스에서 데이터를 효율적으로 관리하고 데이터 간의 관계를 활용하는 중요한 기술 중 하나이다. 일반 적으로 조인의 유형은 INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN INNER JOIN(내부 조인) 조인 중 가장 많이 사용되는 조인으로, 대개의 업무에서 조인은 INNER JOIN을 사용한다. INNER JOIN을 사용하기 위한 경우를 생각해보다 유저테이블엔 아이디 비밀번호 주소 나이 등의 컬럼이있고 구매 테이블엔 사용자와 물건의 아이디가 있다고 할때 회원의 주소를 알기 위해서는 유저 테이블의 주소가 필요한대 이럴떄 INNER JOIN을 이용하면..

DB 2023.09.22

MYSQL 데이터 형식과 내장함수

숫자 데이터 형식 DECIMAL은 정확한 수치를 저장하고 FLOAT와 DOUBLE은 근사치으 숫자를 저장한다. 부호없는 정수를 지정할 때는 UNSIGNED예약어를 뒤에 붙여주고 2배 더 큰 숫자까지 표현할 수 있다. 데이터 형식 바이트 수 숫자 범위 설명 BIT(N) N/8 1~64bit를 표현 TINYINT 1 -128~+127 정수 SMALLINT 2 -32768 ~ 23767 정수 MEDIUMINT 3 -8388608 ~ 8388607 정수 INT INTEGER 4 약 -21억 ~ 21억 정수 BIGINT 8 약 -900경~ + 900경 정수 FLOAT 4 -3.40E+38~-1.17E+38 소수점 아래 7자리까지 표현 DOUBLE REAL 8 -1.22E-308~1.79E1+308 소수점 아래 1..

DB 2023.09.21

SQL 기본

1. SELCET 가장 많이 사용하는 구문으로, 데이터베이스 내의 테이블에서 원하는 정보를 추출하는 명령어이다. SELECT문 구문 형식 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PROIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROW] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position}, ... [WITH R..

DB 2023.09.15

캐시 메모리

캐시 메모리 캐시 메모리란 CPU 와 메인 메모리 사이에 위치한 고속의 일시적인 저장소이다. 캐시 메모리의 목적은 시스템의 성능을 향상시키는 것으로 CPU가 메인 메모리로 부터 데이터를 가져오는 것은 상대적으로 느리기 때문에 자주 사용되는 데이터나 명령어를 빠르게 접근할 수 있는 캐시 메모리에 저장하면 전체적인 처리 속도를 빠르게할 수 있다. 캐시 메모리는 보통 L1,L2,L3 메모리로 이루어져 있다. L1과 L2는 각각의 코어에 할당되어 있고 L3는 CPU칩에 있는 모든 코어를 공유한다, L1 캐시 CPU코에 내부에 위치 속도가 가장 빠르다 용약은 일반적으로 16 ~ 64KB 로 작은편이다 현재 실행중인 프로그램의 매우 자주 사용되는 데이터나 명령어를 저장한다. L2 캐시 보통 L1과 같이 CPU 칩 ..

cs(운영체제) 2023.09.11

블로킹 논블로깅 ,동기 비동기

동기와 비동기, 블롱킹 논블로킹은 비스한 개념으로 혼용되기 쉬우나 서로 다른 개념을 얘기하고 있으다 동기 비동기 동기 두개 이상의 프로세스나 스레드가 특정 작업을 순차적으로 또는 예측 가능한 순서대로 실행되도록 하는 방식 데이터의 일관성을 유지하고 Race Condition을 방지한다 세마포어, 뮤텍스,모니터등 다양한 기술이 있다 비동기 작업이 독립적으로 실행되며 작업 간의 명시적인 순서가 없는 방식을 의미한다. 효율성과 성능을 높이기 위해 사용된다 하나의 작업이 끝나기를 기다리지 않고 다른 작업을 실행할 수 있다. 동기와 비동기의 차이점 동기는 작업의 순서와 예측성이 중요하나 비동기는 그렇지 않다. 동기화는 복잡한 알고리즘과 메커니즘을 핖요로 하고 , 비동기는 이벤트 기반의 간단한 로직을 사용할 수 있..

cs(운영체제) 2023.09.08

가상 메모리

연속 할당 기법의 문제 연속 할당 기법은 메모리에 적재도니 프로세스들 중에서 현재 실행되지 않는 프로세스가 스왑아웃하고 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 스왑 인을 거치는데 이렇게 메모리를 연속적으로 배치하는 연속 메모리 할달은 외부 단편화 라는 문제를 내포하고 있습니다. 메모리 단편화 RAM 의 전체 공간은 충분하나 조각조각 나눠져 있는공간으로 인해 프로세스가 적재 되지 못하는 상황이다. 외부 단편화 메모리의 여러번의 스와핑 과정으로 인해 메모리의 중간중간 빈 공간이 생기고 이 공간을 다 합치면 메모리 프로세스가 적재 될 수 있지만 그렇지 않으면 프로세스가 할당되지 못해 메모리가 낭비된느 형상을 얘기한다. 해결법 : 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식으로 메모리 내에..

cs(운영체제) 2023.09.08

IPC

IPC란 동일한 시스템에서 실행되는 두 개 이상의 프로세스가 데이터를 교한하기 위한 메커니즘으로 다향한 종류의 데이터 구조와 메세지를 교환하거나 동기화하기 위해 사용된다. IPC의 주요 목적은 정보 공유,계산 분산, 모듈화 등을 통한 프로그램의 성능 향상이다 IPC의 주요 방법 Pipes Sockets Message Queue Shared Memory PIPE 두 프로세스 간에 데이터를 전송하는 기본적인 메커니즘 중 하나이다. 단방향 데이터 흐름을 제공하여 하나의 프로세스에서 쓰고 다른 프로세스는 읽는 방식으로 작동한다. Pipe의 특징 FIFO 단방향성 : 기본적인 파이프는 단방향이다. 버퍼링: 파이프는 일정량의 데이터를 버퍼에 저장할 수 있다 . Named PIPE 서로 다른 두 프로세스가 서로 통신..

cs(운영체제) 2023.09.06

교착 상태(DeadLock)

교착상태란 두 개 이상의 프로세스나 스레드가 서로가 가지고 있는 자원을 기다리면서 영운히 대기하는 현상을 의마한다. 이 상태가 발생하면 프로세스나 스레드는 원하는 자업을 완료할수가 없다 교착 상태 발생 조건 상호 배제 한번에 한 프로세스만이 공유 자원을 사용할 수 있다. 점유와 대기 자원을 보유한 채 다른 자원을 할당받기 기다리는 상태 비선점 이미 점유한 자원을 프로세스가 명시적으로 해제하기 전까지는 그 자원을 뺏을 수 없다. 순환 대기 프로세스 A,BC가 있을 때 A는 B를 C가 가진 자원을 기다리는 원의 형태로 자원을 대기하는 것을 원형대기 라고 한다. 교착상태 해결 방법 교착상태가 일어나지 않게 하는 방법으론 크게 예방,회복,검출,회복이 있다 예방 상호배제 : 한번에 여러개의 프로세스가 공유 자원을..

cs(운영체제) 2023.09.06

프로세스 동기화

동기화란 동시다발적으로 실행되는 많은 프로세스는 서로 데이터를 주고 받으며 협력하며 실행될 수 있는데 이렇게 협력적으로 실행되는 프로세스들은 아무렇게나 실행되서는 안된다. 국어 사전에 따른 동기화란 정보 통신 분야에서의 작업들 사이의 수행 시기를 맞추는 것을 의미한다고 나와있다. 프로세스 동기화는 실행 순서의 제어와 상호배제를 의미 한다. Race Condition 두개 이상의 프로세스가 공통 자원을 동시에 읽거나 쓰는 동작을 할때, 잘못된 실행 순서 실행 등으로 인해 여러 프로새세스가 동시 다발적으로 코드를 실행하여 결과가 달라지는 상황을 말한다. Race Conditon을 막기위해 프로세스 간의 실행 순서를 정해주는 동기화가 필요하다. 발생 상황 커널 작업중 인터럽트가 발생할때 시스템 콜을 통한 문맥..

cs(운영체제) 2023.09.06