본문 바로가기

CS36

토폴로지와 네트워크 분류 [ 네트워크 토폴로지 ] 네트워크를 설계할 때 고려하는 네트워크의 구성으로 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미. 네트워크 구조(토폴리지)가 중요한 이유는 병목 현상을 찾을때 중요한 기준이 되기 때문 - 병목(bottleneck) 현상 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한 받는 현상을 말함 병의 몸통보다 목 부분이 좁아서 물이 상대적으로 천천히 쏟아지는 것과 비슷함 서비스에서 이벤트를 열었을 때 트래픽이 생기고 그 트래픽을 잘 관리하지 못하면 병목현상이 발생하여 사용자는 웹사이트에 들어가지 못함 ▶ 네트워크 토폴리지의 종류 트리 토폴리지(Tree topology) 계층형 토폴리지라고도 하며 트리 형태로 배치한 네트워크 구성 노드의 추가, 삭제가 쉬.. 2023. 11. 13.
TCP/UDP 전송계층 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층 프로토콜 프로토콜은 클라이언트와 서버가 정보를 교환할 수 있도록 하는 메세지 형식에 대한 규칙 수신 호스트가 전송 받은 메세지를 이해하려면 설계된 규칙에 따라 작성된 데이터 형식이어야 한다는 것 그렇기에 HTTP/IP/TCP/UDP는 모두 프로토콜이라고 보면 됨 [ TCP - 전송 제어 프로토콜 ] IP(Internet Protocol)가 인터넷 프로토콜로서 복잡한 인터넷 망 속에서 클라이언트와 서버 간에 통신할 수 있게 IP 주소와 패킷과 같은 규칙을 통해 통신을 하게 하는 것이면 TCP(Transmission Control Protocol)는 IP 규칙으로만 통신하기에 부족하거나 불안정하던 여러 단점들(패킷 .. 2023. 11. 11.
TCP/IP [ 컴퓨터 네트워크 ] 컴퓨터 네트워크는 각 노드(단말)들이 자원을 공유할 수 있게 하는 디지털 전기 통신망 각 노드는 노드간 연결(OSI Layer 2 데이터 링크 계층)을 사용하여 상호간의 데이터를 교환함 Ethernet, 무선랜(와이파이) 등을 통해 인터넷이라는 거대한 네트워크 망을 이용할 수 있다는 의미 컴퓨터 네트워크의 통신 방식은 초기에는 회선 교환 방식이었으나 통신 하는 상호간의 연결을 위한 전용 회선 또는 채널이 필요하며 통신하는 동안은 연결이 독점적으로 사용되므로 효율적으로 회선을 이용하지 못하는 단점이 있었음 이후 패킷 교환 방식으로 컴퓨터 네트워크 통신이 이루어 짐 ▶ Internet 인터넷은 인터넷 프로토콜 스위트(Suites)를 기반으로 하는 컴퓨터 네트워크 인터넷 프로토콜 스위트.. 2023. 11. 11.
연결리스트와 배열 선형 자료구조 선형 구조란 자료를 구성하는 원소들을 하나씩 순차적으로 나열시킨 형태 자료들간 앞, 뒤 관계가 1:1 관계로 되어있음 [ 배열 ] 배열은 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조 메모리 상에서 연속적으로 저장되어 있는 특징을 갖기 째문에 index를 통한 접근이 용이 배열의 크기는 처음 생성할 때 정하며 이후에는 변경할 수 없음 [ 연결 리스트 ] 일련의 원소를 배열처럼 순차적으로 저장하지만 원소들이 메모리상에 연속적으로 위치하는 않는 자료구조 즉, 논리적인 순서는 지켜지지만 물리적인 순서는 상관하지 않음 여러 개의 노드들이 순차적으로 연결된 형태를 갖으며 첫번재 노드를 head, 마지막 노드를 tail이라고 함 순자적으로 접근해야 하지만 노드가 연결된 구조기이 .. 2023. 11. 10.
프로그래밍 패러다임(선언형, 함수형, 객체지향, 절차지향) 프로그래밍(Programming) 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 의미 패러다임(Paradigm) 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념을 의미 프로그래밍 + 패러다임(Programming Paradigm) 개발자가 프로그래밍을 위해 어떠한 '관점'을 가지고 개발을 할지에 대해서 결정을 하는데 도움을 주는 것을 의미 프로그래밍 패러다임의 종류 프로그래밍 패러다임에는 크게 명령형 프로그래밍(Imperative Programming)과 선언형 프로그래밍(Declarative programming)으로 분류 됨 ▶ 명령형 프로.. 2023. 11. 9.
MVC, MVP, MVVM 디자인 패턴 소프트웨어에서 자주 사용되는 인기 있는 디자인 패턴 디자인 패턴은 각각의 책임을 분리해주어 결합도를 낮추고, 확장 테스트, 유지보수에 용이하다는 장점이 있음 [ MVC ] 하나의 애플리케이션을 Model - View - Controller로 이루어진 3개의 축면으로 분리하여 개발하는 디자인 패턴 Modal 애플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 View 사용자에게 보여지는 UI 부분 Controller 다가오는 사용자의 요청을 처리하는 역할을 담당 Model을 통해 받은 데이터를 처리하거나 결과 값을 View에 반환하는 역할 일반적으로 View는 Model 사이를 중재하는 역할 동작방식 사용자의 요청(Action)이 Controller에 들어옴 Controller는 요청.. 2023. 11. 8.
페이징, 세그멘테이션 주소 할당(Address Binding) ▶ 프로세스 주소(Process Address) 프로세스 주소는 논리적 주소(Logical Address)와 물리적 주소(Physical Address)로 나뉨 논리적 주소 가상 주소(Virtual Address)라고도 함 CPU가 생성하는 주소이며 프로세마다 독립적으로 가지는 주소 공간 물리적 주소 프로세스가 실행되기 위해 실제로 메모리(RAM)에 올라가는 위치 ▶ 주소 할당 어떤 프로그램이 메모리의 어느 위치에, 어떤 물리적 주소에 load될지를 결정하는 과정 Compile Time Binding 프로세스의 물리적 주소가 컴파일 때 정해짐 프로세스가 메모리의 어느 위치에 들어갈지 미리 알고 있으므로 컴파일러는 고정된 주소를 생성 만약 위치가 변경된다면 재컴파일.. 2023. 11. 7.
가상 메모리 메모리 프로그램과 프로글매 수행에 필요한 데이터 및 코드를 저장하는 장치 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치로 분류 가상메모리 가상메모리는 메모리 관리 기법의 하나로, 컴퓨터 시스템에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매 우 큰 메모리로 보이게 만드는 것을 말함 실제 메모리보다 많아 보이게 하는 기술로 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안됨 애플리케이션이 실행될 때 실행에 필요한 일부분만 메모리에 올라가며 애플리케이션의 나머지는 디스크에 남게 됨 즉, 디스크가 RAM의 보조 기억장치(backing store)처럼 작동하는 것임 결국 빠르고 작은 기억장치(RAM).. 2023. 11. 7.
스레드와 프로세스 ▶ 스레드와 프로세스 개념 프로그램 어떤 작업을 실행할 수 있는 파일 프로세스 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위. 즉, 동적인 개념으로는 실행된 프로그램을 의미함 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어있는 독립된 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받음 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있음 각 프로세스는 별도의 주소 공간에서 실행되며 한 프로세스는 다른 프로세스의 변수나 자료구조.. 2023. 11. 6.