본문 바로가기

CS

(53)
(3) 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 개인적으로 정리한 내용입니다. MAC 계층 데이터 링크(Data Link) 계층 데이터 링크 계층에서는 호스트가 통신하려면 1:1 형식의 점대점 방식으로 연결이 됩니다. 호스트를 구분하기 위한 주소개념이 필요가 없다는 뜻입니다. 물리적인 오류를 복구하는 역할을 하는 데이터 링크는 재전송 기법을 사용해 상위 계층에 신뢰성 있는 데이터 전송을 보장합니다. 데이터 링크 계층의 동작 원리를 이해하기 위해 프레임들 알기 정보프레임(Information Frame) 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용 프레임의 순서 번호, 송수신 호스트의 주소 정보를 포함 순서번호는 각 정보 프레임에 부여되는 고유의 일련번호로, 수신 호스트가 중복 프레..
(2) 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 내용 정리입니다. 오류제어 데이터 링크 계층 프로토콜이 전송 오류 기능을 제공하려면 우선 오류 발생 여부를 인지할 수 있어야 합니다. 오류를 감지하면 오류를 복구하는 과정이 진행되는데, 컴퓨터 네트워크에서는 일반적으로 송신 호스트가 원래의 데이터를 재전송하는 기법을 사용합니다. 1. 데이터가 깨져서 도착하는 프레임 변형 2. 데이터가 목적지에 도착하지 못하는 프레임 분실 수신 호스트의 응답 프레임 프레임 변형 오류를 확인한 수신 호스트는 송신 호스트에 응답 프레임 전송 원래의 데이터 프레임을 재전송하도록 요구함 송신 호스트의 재전송 기능은 수신 호스트의 부정 응답 흐레임 회신에 의해 이루어짐 긍정 응답 프레임 : 데이터 프레임이 정상적으로 도착했을 때 회신 부정..
(1) 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 쉽게 배우는 데이터 통신과 네트워크 개인적으로 정리한 내용입니다. 네트워크 관련 기초 용어 1. 네트워크(Network) : 전송매체를 매개로 서로 연결되어 데이터를 교환하는 시스템(System)의 모음 2. 인터페이스(Interface) : 시스템(System)과 전송매체의 연결 지점에 대한 규격입니다. 시스템과 시스템을 연결하기 위한 표준화된 접근 방법을 의미합니다. 3. 프로토콜(Protocol) : 시스템(System)이 데이터를 교환하는 임의의 통신 규칙, 표준화된 특정 규칙을 뜻합니다. 4. 시스템(System) : 내부 규칙에 따라 능동적으로 동작하는 대상을 가리킵니다. 물리적인 대상 뿐 아니라, 신호등 운영시스템, MS 윈도우즈 등의 운영체제, 프로그램의 실행상태를 의미하는 프로세스 같은 ..
(1) 데이터베이스에 관해서 TRANSCATION에 대해서 설명해주세요. 데이터베이스의 논리적 연산 단위입니다. 또한 분할할 수 없는 최소의 단위입니다. TRANSACTION의 특성에 대해서 설명해주세요.(ACID) 원자성입니다. 트랜잭션에 정의된 연산들은 모두 성공적으로 실행되던지, 아니면 전혀 실행되지 않은 상태로 남아 있어야 합니다. 일관성입니다. 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안됩니다. 고립성입니다. 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안됩니다. 지속성입니다. 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장됩니다. DB에서 rollback과 commit에 대해서 설명해주세요. COMMIT은 트랜잭션을 실행, ..
(1) 네트워크에 관해서_ 동기(Synchronous)와 비동기(Asynchronous)에 대해서 설명해주세요 동기(Synchronous)는 요청후 시간이 얼마나 걸리던 요청한 자리에서 결과가 주어져야합니다. 설계가 매우 직관적이며 결과가 주어질때까지 아무것도 하지 못합니다. 비동기(Asynchronous)는 요청과 그 결과가 동시에 일어나지 않습니다. 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있어 자원을 효율적으로 사용 가능합니다. Blocking / Non Blocking에 대해서 설명 해주세요. Blocking / Non Blocking은 처리되어야 하는 작업이 전체적인 작업 흐름을 막나, 안막나의 관점입니다. 즉, 제어권이 누구한테 있는지가 관점입니다. Sync / Async의 차이에 대해서 설..
(1) 운영체제에 관해서_ 메모리에 대해서 설명해주세요 메모리 구조는 4가지 영역으로 나뉘어 집니다. 코드영역은 실행할 프로그램의 코드가 저장되는 영역입니다. 사용자가 프로그램을 실행하면, OS가 실행 코드를 메모리로 로드하고, CPU는 코드영역에 저장된 명령을 하나씩 처리하게 됩니다. 데이터 영역은 프로그램의 전역 변수, 정적 변수가 저장되는 영역이며, 프로그램의 시작과 함께 할당되며, 종료되면 소멸됩니다. 힙 영역은 코드에서 생성된 객체가 저장됩니다. 또한, 메모리를 동적으로 할당하며, 힙 영역은 스택 영역과 달리 낮은 주소에서 높은 주소로 메모리가 할당됩니다. 스택 영역은 함수의 호출과 함께 할당되며 지역 변수와 매개 변수가 저장되는 영역입니다. 스택 영역은 함수의 호출이 완료되면 소멸하고, 스택 영역은 높은 주소에서 낮은 ..
(1) 자료구조에 관해서_ Array(배열)의 특징에 대해서 설명 배열은 특정 크기만큼 연속된 메모리 공간에 데이터를 저장하는 자료구조입니다. 연속된 메모리 공간에 데이터들이 나열되어 있기 때문에 첫 주소만 알면 다른 위치도 쉽게 알수 있습니다. 또한 크기가 고정적, 제한적이며 논리적 저장 순서와 물리적 저장 순서가 일치하게 됩니다. Array(배열)의 검색, 삽입, 삭제에 대해서 설명 검색시 인덱스를 통해 직접 접근이 가능하기 때문에 시간 복잡도는 O(1)로 상수시간이 됩니다. 삭제와 삽입의 경우 삭제한 인덱스보다 큰 인덱스를 가진 원소들을 옮겨주는 비용이 들어 시간 복잡도 O(n)의 시간이 걸리게 되며 삽입의 경우도 마찬가지 입니다. 삽입 삭제의 경우 데이터가 많을 때 비효율적이기 때문에, Linked List를 사용하게 됩니..
[Algorithm] 기본 정렬 알고리즘 기본적인 정렬방법에 대해서 알아보겠습니다. 틀린점이 있을때 매번 발견해 업데이트 하겠습니다. BubbleSort(거품정렬) 버블 정렬은 이웃한 두 요소의 대소 관계를 비교해 교환을 반복하는 정렬 방법입니다. 시간 복잡도 O(n^2)시간에 동작합니다. [과정] 1. 서로 인접한 두 원소를 비교한 후, 큰 원소를 뒤로 보냅니다. 2. 1회전을 수행하면 가장 큰 자료가 맨 뒤로 이동합니다. 3. 이 과정을 요소의 개수가 N개인 배열에서 N-1회 비교 수행합니다. void bubbleSort(int a[], int n){ for(int i = 0; i i; j--){ if(a[j-1] > a[j]) swap(a[j-1],a[j]); } } } In..