본문 바로가기

Computer-Sience41

[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.
[CS] Kernel(커널) 일반적으로 Mac이나 Windows 같은 OS(운영체제)에 대하여는 많이 들어봤을 것이나 OS와 밀접한 연관이 있는 커널에 대해서는 많이 들어보지 못했을 것이다. ‣ 커널(Kernel) 사전적 정의로 "알맹이" 또는 "핵심"이라는 뜻을 가지고 있는 커널은 말 그대로 운영체제의 "핵심"이다. 커널은 운영체제에서 컴퓨터 자원을 관리하는 역할을 수행하기 때문이다. 소프트웨어의 요청(System Call)으로 하드웨어의 자원(CPU 연산, Disk에 Data의 저장 및 삭제 등)을 이용하기 위하여 커널에서는 중간다리 역할을 수행하는데, 프로그램이 직접적인 하드웨어의 자원에 접근하는 것을 막기 위하여 존재하는 것이다. 커널은 소프트웨어의 요청이 하드웨어의 자원에서 처리될 수 있도록 변환하는 작업을 수행하는데, 이.. 2023. 2. 2.
[Algorithm] Sorting Algorithm(정렬 알고리즘) - Comparison 프로그래밍을 할 때 배열은 라이브러리를 통하여 손쉽게 정렬할 수 있다. 하지만 정렬은 다양한 기법을 통해 수행할 수 있고 그 알고리즘에 따라 장단점이 존재한다. 아래는 통상적으로 원소의 크기를 비교하여 정렬을 할 때 사용하는 목록이다. 1. Bubble Sort(거품 정렬) : 배열에서 인접한 두 개의 원소를 비교하며 우열을 가린 뒤 서로 위치를 바꾸어 주는 방식이다. 거품 정렬을 통해 배열을 한 번 검사하면 필연적으로 가장 큰 수가 배열의 맨 끝으로 이동하게 되고 정렬이 완성될 때까지 반복한다. 두 개 원소의 위치만 계속 바꾸는 정렬이기 때문에 공간 복잡도는 O(1)을 가지지만, n개의 원소의 배열을 전부 정렬하는데 n번을 순회할 수 있기 때문에 시간 복잡도는 O(n^2)를 가진다. 2. Selecti.. 2023. 1. 3.
[Data-Structure] Stack, Queue, Deque Stack과 Queue는 선형 자료구조의 특징을 공통적으로 가지고 있다. Stack : Last In First Out (LIFO) - 후입 선출 (후에 들어간 원소가 먼저 배출) First In Last Out (FILO) - 선입 후출 (먼저 들어간 원소가 나중에 배출) 이것은 Stack의 가장 큰 특징이며 차곡차곡 쌓이는 구조로 이해하면 된다. 그렇기에 늦게 들어간 녀석들은 점차 쌓이게 되고 호출 시 가장 위에 있는 원소가 나오는 구조이다. ex ) 바구니에 물건을 담았다가 위에서부터 꺼냄 Queue : First In First Out (FIFO). - 선입 선출 (먼저 들어간 원소가 먼저 배출) Stack과 다르게 들어간 원소가 쌓이는 것은 마찬가지이나 들어간 순으로 배출된다는 것이 특징이다. .. 2022. 12. 27.
[Data-Structure] Array, Linked-List Array : 배열이라는 뜻의 Array는 가장 기초적인 자료구조 형식으로, 논리적/물리적 저장 위치가 동일하다는 특징을 가지고 있다. 접근 (Access) : 위치 정보를 나타내는 인덱스(Index)를 이용하여 해당 원소에 바로 접근이 가능하다. 접근에 대한 시간 복잡도는 O(1)이라는 특성을 가지고 있는데 이는 삽입(Insert)/삭제(Delete)는 다른 결과를 보여준다. 삽입(Insert) / 삭제 (Delete) : [0,1,2,3,4,5,6,7,8,9] 이라는 Array에 '5' 라는 원소에 접근을 하여 삭제를 하게 된다면 [0,1,2,3,4, ,6,7,8,9] 이와 같이 바뀌게 되는데 '4'와 '6' 사이에 어떠한 값이 들어간 것이 아닌 빈 공간이 생겨버리게 된다. Array의 특성 상 빈 .. 2022. 12. 24.