본문 바로가기

Computer-Sience33

[Database] Transaction(트랜잭션) 트랜잭션(Transaction) : 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한번에 모두 수행되어야 할 일련의 연산들을 의미한다. 특징 : 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위 하나의 트랜잭션은 Commit 또는 Rollback 성질 (ACID) : 1. Atomicity(원자성) : 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트.. 2023. 2. 11.
[OS] Process(프로세스) / Thread(스레드) 프로그래밍을 시작하게 되면서 과거에는 단어의 정확한 이해가 없이 대략적인 의사전달만을 위한 단어들을 말하는 습관을 고치는 계기가 되었다. 그중 하나가 스레드와 프로세스였는데 이 둘은 확연히 다른 단어이며 해당 포스팅에서 다뤄볼 것이다. 1. Process(프로세스) 운영체제로부터 자원을 할당받은 작업의 단위이며, 각 작업에는 운영체제로부터 부여받은 프로세스 식별자(PID)를 가지고 있다. 한 개의 프로세스에는 하나 이상의 스레드를 가지고 있고, 프로세스 간에 통신을 하려면 IPC(Inter Process Communication)를 요구한다. 프로세스는 Code / Stack / Heap / Data의 4가지 영역으로 구분되어 있으며, Code / Data를 정적 영역으로, Stack / Heap을 동적.. 2023. 2. 9.
[OS] Sync / Async / Blocking / Non-Blocking 프로그래밍을 시작한 사람들 중 동기 및 비동기에 대하여 많이 접해봤을 것이다. Syncronous (동기) :동시 발생[존재]하는 Asynchronous(비동기) : 동시에 존재[발생] 하지 않는 이라는 단어의 뜻을 가지고 있으며, 단어만 보았을 때에는 이해가 바로 되지 않을 수 있다. 동기와 비동기는 특정 작업들이 있을 때, 작업 완료의 여부와 관련된 순서에 관한 것이고, 유사하지만 다른 개념인 Blocking / Non-block도 같이 알아볼 것이다. Blocking/Non-blocking : 프로세스의 유휴 상태(제어권)에 관한 것 - Blocking : 호출된 함수가 자신의 작업을 모두 마칠 때까지 호출한 함수가 제어권 없이 대기 - Non-blocking : 호출된 함수가 리턴 후 호출한 함수.. 2023. 2. 8.
[Network] HTTP(Hypertext Transfer Protocol) HTTP는 www(world wide web) 상에서 정보를 교환할 수 있도록 내재된 프로토콜이다. OSI 7 계층의 Application Layer에 속하여 있다. 포트는 기본적으로 80번을 사용하고, 주로 HTML 문서를 주고받는데 이용되며, TCP를 주로 사용하되 HTTP/3 부터 UDP를 이용한다. HTTP는 사용되는 주체에 따라 클라이언트(사용자), 서버로 나뉘어서 구분할 수 있으며, Request(요청)과 Response(응답)에 따라 주체 간의 상호 작용을 통하여 자료를 송/수신한다. 이를 기반으로 URL에 자원의 위치를 명시하고 HTTP Method(POST/GET 등)을 이용하여 해당 위치의 자원과 상호작용하는 것이 REST(Representational state transfer)이다... 2023. 2. 7.
[CS] MPA(Multi Page Application) / SPA(Single Page Application) MPA(Multiple Page Application)는 여러 개(하나 또는 그 이상)의 Page로 구성된 Application이다. 전통적으로 사용해 왔던 방식이며 오래된 웹 사이트들을 방문하면 모두 MPA 방식으로 제작되어 있는 것을 확인할 수 있다. 또한, MPA는 SSR(Server Side Application) 방식으로 렌더링 하며, 새로운 페이지를 요청할 때마다 서버에서 렌더링 된 정적 리소스(HTML, CSS, JavaScript)가 다운로드된다. 위 사진을 예시로 들면 모든 페이지에 알맞은 정적 리소스가 있으며 페이지에 방문 시 해당 리소스를 요청한다. 페이지 이동하거나 새로고침 하면 전체 페이지를 다시 렌더링 하게 되는 방식이다. MPA는 다음과 같은 장단점을 가지고 있다. Pros :.. 2023. 2. 5.
[Algorithm] Sorting Algorithm(정렬 알고리즘) - Non Comparison 이전에 정렬 알고리즘에 대한 글을 작성했었는데 이는 상호 원소의 크기를 비교해가며 정렬을 하는 알고리즘이였다. [Algorithm] Sorting Algorithm(정렬 알고리즘) - Comparison 프로그래밍을 할 때 배열은 라이브러리를 통하여 손쉽게 정렬할 수 있다. 하지만 정렬은 다양하게 수행할 수 있고 그 알고리즘에 따라 장단점이 존재한다. 아래는 통상적으로 비교를 통한 정렬 ssnotebook.tistory.com 그리고 비교를 통한 정렬 알고리즘은 시간 복잡도가 최대 O(n log n)~O(n^2)를 가진다는 것을 알 수 있었다. 하지만 비교를 통한 정렬 알고리즘이 아닌 특수한 방식을 통한 정렬 알고리즘이 존재하는데, 이는 특정 조건을 충족하면 비교를 통한 알고리즘보다 빠르게 정렬을 할 수.. 2023. 2. 4.