CS

CS/개발지식

중위 표기법과 후기 표기법

중위 표기법 후위 표기법 1 + 3 1 3 + 23 / 7 + 12 23 7 / 12 + (117.32 + 83) * 49 117.32 83 + 49 * 1 - 3 * 2 1 3 2 * - 우리 일상적으로 사용하는 계산식을 중위 표기법(Infix Notation)이라 부른다. 이 방법은 사람이 보면 바로 계산이 가능하지만 컴퓨터가 보기엔 계산이 힘들다. 그래서 컴퓨터가 비교적 쉽게 받아 들일 수 있는 표기법이 없을까 하고 나온게 후위 표기법이다. 그럼 후위 표기법(Postfix Notation)이란 무엇일까? 후위 표기법은 역 폴리쉬 표기법이라고도 하는데 이 표기법의 규칙은 연산자를 피연산자 뒤에 위치시키는 것이다. 그래서 계산을 후위표기식으로 한다면 계산식을 쉽게 이해가능하다. 후위 표기식을 계산하는 ..

CS/네트워크

네트워크 구성요소

네트워크를 이해하기 위해서는 이론을 공부하는 것도 중요하지만 실제로 네트워크가 어떻게 구성되어있는지에 대해 아는 것이 필요하다. 네트워크 인터페이스 카드(NIC) 흔히 랜 카드라고 부르는 부품의 정식 명칭은 네트워크 인터페이스 카드(Network Interface Card)이다. 이는 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치이다. 보통 온보드 형태로 장착되지만 서버에서는 여러 네트워크에 동시에 연결되어야 하거나 더 높은 대역폭이 필요한 경우가 있기 때문에 이때에는 추가 장착한다. 허나 최근 서버에는 10GT NIC가 기본 장착되는 추세라 추가 장착하는 빈도는 줄어들 것이라고 예상된다. NIC의 종류로는 아래와 같다 PC 내장형 일반형 서버용(10G) NIC의 주요 역할은 다음과 같다 직렬화 : 전..

CS/자료구조

스택(Stack) 개념 및 구현

스택이란 스택은 뭔가를 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 스택은 오직 top에서 삭제, 추가가 이루어지기 때문에 중간 인덱스에 데이터 변경을 할 수 없다. 특정위치의 데이터를 추가/삭제 하고싶다면 해당 위치까지 pop을 해야한다. 따라서 스택은 가장 마지막에 들어간 데이터가 제일 먼저 나오고(Last In - First Out) 가장 먼저 들어간 데이터는 가장 나중에 나오게(First In - Last Out)된다. 스택의 주요 기능 삽입 제거 스택의 대표적인 기능은 위와 같이 2가지 연산이 있다. 먼저 삽입은 스택 위에 새로운 요소를 쌓는 작업이다. 제거는 스택에서 최상위 요소를 걷어내는 작업이다. 스택 구현 방식 스택을 구현하는 방식으로는 아래와 같이 2가지가 있다 배열을 이용..

CS/네트워크

네트워크 연결 구분과 회선

네트워크 연결 부분 네트워크는 규모와 관리 범위에 따라 LAN, MAN, WAN 으로 구분된다. 예전에는 네트워크마다 사용하는 기술이 모두 달라 프로토콜, 전송 기술에 따라 쉽게 구분할 수 있었지만 현재는 이더넷으로 통합되면서 전송 기술을 구분하는 것이 무의미해져 관리 범위 기준으로 구분한다. LAN(Local Area Network) : 홈 네트워크용과 사무실용 네트워크처럼 비교적 소규모의 네트워크를 말한다. 또한 자신이 소유한 건물이나 대지에 직접 구축한 선로로 동작시키는 것도 LAN라고 한다. MAN(Metro Area Network) : 수~수십 km 범위의 한 도시를 네트워크로 연결하는 개념 WAN(Wide Area Network) : 먼 거리에 있는 네트워크를 연결하기 위해 사용한다. 멀리 떨..

CS/자료구조

더블 링크드리스트(Doubly Linked List) 개념과 구현

더블 링크드리스트란? 링크드리스트의 탐색 기능을 개선한 자료구조이다. 링크드리스트는 노드를 찾으려면 헤드에서 테일 방향으로만 탐색할 수 있었는데 더블 링크드리스트는 양방향으로 탐색이 가능하다. 아래는 더블 링크드리스트의 노드 구조이다. class Node { private Object data; private Node prevNode; private Node nextNode; public Node(Object newData) { this.data = newData; this.prevNode = null; this.nextNode = null; } } 주요 연산 링크드리스트와 동일하며 이전 노드를 처리하기 위한 구현이 더 추가될 뿐이다. 노드 생성 Node CreateNode(Object newData) ..

CS/자료구조

링크드리스트(LinkedList) 개념 및 구현

링크드리스트란 기본적으로 배열을 선언할 때 new int [10]으로 크기를 지정해서 선언한다. 허나 배열의 용도에 따라 계속 크기가 변할 수 있다면 결과를 예상해 크기를 선언하기엔 메모리 낭비가 발생하여 애매모호합니다. 이때 유연하게 크기를 바꿀 수 있는 자료구조를 사용해야 하는데 그중에 하나가 링크드리스트이다. 노드 링크드리스트 내의 각 요소는 노드(Node)라고 부른다. 이 노드에는 데이터를 보관하는 필드와 다음 노드와의 연결고리 역할을 하는 포인터로 이루어져 있다. 링크드리스트는 아래처럼 리스트의 첫 번째 노드인 헤드와 마지막 노드인 테일을 갖고 있다. 이런 구조라면 데이터의 크기를 미리 알지 못해도 된다. 데이터가 늘어날 때마다 노드를 만들어 테일에 붙이면 되기 때문이다. 리스트 사이에 노드를 ..

CS/네트워크

인캡슐레이션과 디캡슐레이션

현대 네트워크의 대부분은 패킷 네트워크이다. 패킷 네트워크란 데이터를 패킷이라는 작은 단위로 쪼개 보내는데 이런 기법으로 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러 단말이 통신하도록 해주는 것을 말한다. 애플리케이션에서 데이터를 테이터 플로 계층으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는데 이 과정을 인캡슐레이션이라고 한다. 4 계층부터 네트워크 전송을 위한 정보를 헤더에 붙여 넣고 3 계층으로 내려보낸다. 이때 헤더에는 Source Port, Destination Port, Sequence Number, Acknowledgement Number가 들어간다. 다시 3계층에서 필요한 헤더 정보를 추가한 후 2 계층으로 내려보낸다. 이때 헤더에는 Source IP Address, D..

CS/네트워크

OSI 7계층

네트워크 데이터 통신을 설명할 때 반드시 있어야 하는 중요한 개념이다. 과거 통신용 규약이 표준화되지 않고 별도로 개발했기 때문에 이를 통합하고자 했던 노력이 현재의 OSI 7계층으로 남아 있게 되었다. OSI 래퍼런스 모델 계층 용어 데이터(PDU) L7 Application Data 애플리케이션 계층 상위 계층 L6 Presentation Data L5 Session Data L4 Transport Segments 데이터 플로 계층 하위 계층 L3 Network Packets L2 Data Link Frames L1 Physical Bits OSI 7계층은 이 표와 같이 구성되어있으며 애플리케이션, 데이터플로 계층으로 구분하기도 한다. 전자는 말 그대로 애플리케이션 개발자들이 고려해야할 영역이고 후자..

옥탑방고래
'CS' 카테고리의 글 목록 (4 Page)