전체 글 115

[네트워크]NET, PAT, TCP/IP, OSI 7 Layer, 유니캐스트, 브로드캐스트

네트워크 통신방식 유니캐스트 (1대1 통신) 통신하고자 하는 PC의 주소를 유니캐스트 프레임에 넣어 뿌린다. 로컬 네트워크 상에 있는 모든 PC들은 일단 이 프레임을 받아드리고, 랜카드에서 자신의 맥 어드레스와 비교를한다. 이때, 자신의 맥어드레스와 일치 하지 않는 경우 프레임을 랜카드에서 버린다. 때문에 유니캐스트 방식은 PC들의 CPU성능을 저하시키지 않는다. 브로드캐스트 (전부를 대상) 로컬 랜에 붙어있는 모든 네트워크 장비들에게 보내는 통신이다. 상대방의 맥주소를 알아내기 위해 ARP를 하는데 이게 브로드캐스트다. 프레임을 버리지 않고 CPU에 전달 하기 때문에 성능이 저하된다. 멀티캐스트 (그룹을 대상) 보내고자 하는 그룹 멤버들에게만 한번에 보낼 수 있다. 스위치나 라우터가 멀티캐스트 기능을 ..

[네트워크]인터넷, 통신방식, 케이블, MAC

인터넷 네트워크를 여러개 묶어놓은 네트워크 연합을 말하고, TCP/IP라는 공통의 프로토콜을 사용한다. 인트라넷 인터넷과 똑같아 보이지만 특정 회사 사람들에게만 허가된 사내 네트워크이다. 엑스트라넷 인트라넷 범위를 협력회사나 고객사까지 확대 한 네트워크이다. LAN 한정된 지역에서의 네트워크 구축(사무실 컴퓨터 30대 를 네트워크로 구성한다면, 사무실에 LAN을 구축한다고 한다.) WAN 멀리 떨어진 곳과의 네트워크 구축 이더넷 CSMA/CD라는 프로토콜을 사용해서 통신하는 방식, 지금 회사나 학교에서 사용하는 통신 방식, 우리나라 대부분 이더넷방식을 사용한다. CSMA/CD 통신하고자 하는 컴퓨터가 네트워크를 살펴봐서 아무도 통신을 하고 있지 않으면 무조건 자기 데이터를 실어서 잘 보낸 후 잘 갔는지 ..

ROM, 블록장치, SSD와 HDD

ROM (read only memory) 읽기전용 메모리 한 번 쓰고 나면 여러번 읽을 수 있는 메모리다. 가장 초기의 ROM은 한 번 쓰면 지울 수 없었으나 지울 수 있는 메모리로 점차 발전해 나갔다. 컴퓨터를 구동하기 위한 기본적인 정보가 담겨있다. 그리고 그 정보들을 기억하기 위해 다른 정보들은 기억하지 않는다. 단점으로만 보이는 특성 외에, 전력 공급과 무관하게 데이터가 유지되는 비휘발성이라는 강력한 특징이 있어서, 모든 종류의 기계에 쓰인다. ROM이 없다면 전기 아깝다고 전기밥솥 전기코드를 뽑는 순간 당신의 전기밥솥은 먹통이 된다. 당장 전기밥솥도 일종의 프로그램된 로봇이기 때문에 한번 데이터가 날아가면 코드를 연결해도 전기가 흐르는 고철덩이 그 이상도 이하도 아니게 된다. 보통은 컴퓨터의 바..

컴퓨터구조 2021.09.08

자료형

자료형의 종류 : 정수 자료형, 실수 사료형, 문자 자료형, 논리 자료형 (참과 거짓을 따짐) 1 Byte char (문자 자료형), bool (논리자료형) 2 Byte short (정수 자료형) 4 Byte int, long (정수 자료형), float (실수 자료형) 8 Byte long long (정수 자료형), double, long double (실수 자료형) unsigned 음수를 사용하지 않는다. (이진법에서 맨 앞쪽 비트 까지 숫자를 표현하는데 사용한다.) signed defalt 값이다. 캐릭터 형이라고 부른다. 문자 자료형이지만 기본적으로 정수값을 저장한다. (ASCII 코드표 에서 알아서 변환하여 저장) char ch1 = 97; cout

프로그래밍/C++ 2021.09.07

[C언어]포인터 상수와 상수 포인터(const int* 와 int* const)

int *ptr ( ptr은 + 가르킨다(*) +int형을 ) ptr은 int형의 무언가를 가르킴 (주소를 저장하여 가르킴) ptr이 가르키는건 int형 무언가 int const *ptr (ptr은 + 가르킨다(*) + int const 형을) =const int *ptr ptr은 const int형의 무언가를 가르킴 ptr이 가르키는건 const int형 무언가 (ptr이 가르키는 건 변할 수 없음) int *const ptr (const ptr은 + 가르킨다(*) + int 형을) const ptr(변하지 않는 값을 가진 ptr)은 int형의 무언가를 가르킴 const ptr이 가르키는건 int형 무언가 (ptr의 값 즉, 저장된 주소값을 변하게 할 수 없음.) int a = 10; int b; co..

부동소수점 이해하기

부동 소수점의 오차 1/3을 소숫점으로 표현하면 0.333333...처럼 끝이 없는 수인 것을 알고 있다. 이것을 십진 무한 소숫점 수 라고 한다. 마찬가지로 이진법에서도 이진 무한 소숫점 수가 있다. 대표적으로 0.1이다. 0.1을 이진법으로 표현하면 0.10000000149011611938..로 끝이 없는 수가 나타난다. 컴퓨터는 유한한 저장공간을 가지고 있고, 그 중 실수는 32비트(float) 또는 64비트(double)에 저장 된다. 따라서 컴퓨터(2진법을 사용)는 십진법의 0.1을 정확하게 이진법으로 같은 값을 나타낼 수 없다. 0.1 * 0.1 조차도 이진법의 0.01 근사값이 아니다. 따라서 연산이 많아질 수록 오차는 더 커질 것이다. 0.1 * 0.1 (0.1 의 이진법의 제곱) = 0...

컴퓨터구조 2021.09.07

스택(stack), Heap, MMU 레지스터

스택 (Stack) 함수는 단순한 코드로만 이루어지지 않고, 다른 함수를 호출 하거나, 자기자신을 호출(재귀함수)하는 경우도 있다. 이때, 재귀함수가 제대로 작동하려면 반환주소를 가지고 있어야지 원래 함수로 돌아 갈 수 있다. 스택은 이러한 반환 주소를 저장하여 함수 호출에서 돌아 올 수 있도록 해준다. 또한, 지역변수를 저장하는데도 사용된다. 스택에 저장되는 데이터의 모음을 스택 프레임 이라고 부른다. 스택은 LIFO구조(last in first out) 이다. 스택에 더 이상 들어갈 공간이 없으면 이를 스택 오버플로라고 한다. 같은 스택에서 스택으로 넘치는걸 의미한다. 빈 스택에서 물건을 가져오려고 하는 경우를 스택 언더플로라고 한다. 메모리의 구조 Stack 함수에 대한 정보, 함수 내 지역변수 힙..

scanf 사용시 오류 (scan_f)

#define _CRT_SECURE_NO_WARNINGS (소스코드 첫 부분) #pragma warning(disable:4996) (소스코드 첫 부분) _CRT_SECURE_NO_WARNINGS (프로젝트 속성\c/c++\전처리기\전처리기 정의에 추가) 소스파일 만들 시 Security 체크 해제 sizeof 연산자를 세번째 인자에 넣는다. char str[50]; scanf_s("%s", str, sizeof(str)); scanf 가 버퍼 오버플로우에 취약한 문제때문에 scanf_s를 대신 사용하도록 한다. 오버플로우란 할당된 버퍼에 들어갈 수 있는 양보다 더 많은 양을 넣게 되면 프로그램이 멈추는데 이것을 해커들이 이용했기 떄문에 문제를 해결하기 위해 scanf_s가 등장했다. %d, %f와 같은..

[C언어]typedef와 구조체

typedef int main() { typedef int int32; } typedef 는 기존의자료형(int) 에다가 별명 (int32)을 붙여주는것이다. int와 int32랑은 같은의미를 말한다. - 예시 - typedef int pair[2]; pair point = { 3,4 }; pair은 2개짜리 인트형 배열을 의미한다. int point[2] = { 3,4 }와 같은 의미이다. typedef를 사용하여 문자열 담기 char* name = "hello"; char name[] = "hello"; typedef char* String; String name = "hello"; char형 포인터에 새로운 이름(String)을 만들어 준다. 즉, 자료형에 특별한 의미가 부여될떄 typedef를 쓴..