공부/JUN STUDY 29

컴퓨터의 주소표현 (포인터의 크기 & 표현가능한 메모리 주소가 크면 좋은 이유)

컴퓨터의 주소개념을 이해할때 헷갈리는 가장 큰 이유는 개인적으로 주소를 나타내는 방법도 "숫자"이고 안에 들어가는 값도 "숫자"이기 때문이라고 생각한다. 무슨 말이냐면, 우선 어떤 호텔이 있다고 생각해보자. 이 호텔은 101호부터 503호까지 있는 5층짜리 호텔이다. 자, 이 호텔이 만약 101호부터 1003호까지 있는 10층짜리 호텔이면, 당연히 손님을 많이 받을 수 있을 것이다. 결론부터 이야기하면 컴퓨터에서 표현가능한 메모리 주소가 커지면 좋은이유는 호텔이 커지면(방을 많이 가지면) 손님을 더 많이 받을 수 있는 이유와 같다. 아니 방이 많으면 당연히 많은 손님들을 받을 수 있지 않을까? 어려운 논리가 전혀아니다. 컴퓨터도 표현가능한 주소가 많아질수록, 당연히 넣을 수 있는 데이터가 많아진다. 이게..

공부/JUN STUDY 2022.03.30

WORD에 대해 (CPU가 한번에 다루는 데이터의 단위란?)

컴퓨터에서 WORD란, CPU가 한번에 다루는 데이터의 단위이다. n bit 프로세서(64bit/32bit)라고 이야기할때 이 n이 바로 해당 컴퓨터의 WORD인 셈이다. 사실 WORD라는 단어는 1. CPU가 한번에 다루는 데이터의 단위라는 뜻 2. 16bit 라는 값 그 자체 로 쓰이는데, 우선은 1번 뜻에 집중해서 살펴보자. 자 그러면 CPU가 한번에 다루는 데이터의 단위란 무슨뜻일까? 우선 결론부터 말하면, WORD 단위로 처리되는 일들은 다음과 같은 것들이 있다. 1. CPU안에 있는 ALU(Arithmetic Logic Unit)에서 연산되는 데이터 2. 레지스터 크기 3. 표현가능한 주소의 크기 (포인터의 크기) 4. 버스(BUS)의 대역폭 예를들어 64bit 컴퓨터의 경우, 1. ALU에서..

공부/JUN STUDY 2022.03.30

탐색을 위한 해시 (해시가 값 검색을 위해 사용되는 원리)

탐색을 위한 해시 해시 목적 : 탐색을 엄청나게 빨리 하기 위함 ⇒ 해시 값을 키로 이용하면 배열로 원하는 데이터에바로 접근할 수 있음 탐색 할때는 해시 함수 결과를 해시 주소(인덱스)로 해석 키 : 값의 개념으로 direct 접근 근데 충돌 무조건 발생함 -> 잘 관리하자 충돌관리 슬롯 여러개 관리 : 슬롯 만들어서 같은 해시주소에 여러개 저장가능하게! 선형 조사법 : 슬롯 오버플로나면 다른 해시 주소(바로 다음)에 저장 ⇒ 선형조사법 근데 이러면 군집화 현상 발생. 군집화 : 특정 지역에 키 값이 몰리는 현상(앞 찼네? 바로 뒤로.. 찼네?? 바로 뒤로..) 이차 조사법 : 키가 몰리는거 방지하기위해 다른 위치(4칸 뒤, 8칸 뒤..)로 점프해서 저장토록하면??? ⇒ 이차조사법 근데 이거 규칙 일정하..

공부/JUN STUDY 2021.11.11

패킷 손실과 딜레이 / 패킷 손실 4가지 원인 (packet loss, delay, 4 sources of packet delay)

How do loss and delay occur? 패킷 로스와 딜레이는 왜 발생하는 것일까? delay → 패킷이 라우터에 도착하면, 라우터 버퍼에 놓고 처리를 하는데, 이때 버퍼에서 다음 라우터로 가는 링크로 보내는 속도보다 패킷이 도달하는 속도가 빠르면 패킷이 쌓임 loss → 만약에 패킷이 계속 쌓여서 버퍼의 메모리 사이즈를 넘으면 버려짐! 4 sources of packet delay 패킷 딜레이의 4가지 원인 어디서 패킷 딜레이가 발생할까? 뭐 때문에 발생??? 1. 노드 처리 지연 (Nodal processing) 라우터안에서 패킷을 처리하는 작업때문에 발생하는 딜레이 데이터 패킷 헤더 처리, 라우팅 알고리즘 적용, 라우팅 테이블 업데이트, 비트 데이터 오류 검사 등등등.. 2. 큐 지연 (..

공부/JUN STUDY 2021.10.10

구문 VS 명령어 (Statement VS Instruction) 소스코드 어셈블리어 인간이 하이 레벨 언어를 쓰는 이유

소스코드의 한 문장을 statement(구문)이라고 하고, 실제로 컴퓨터가 명령을 수행하는 하나의 단위를 instruction(명령어)라고 한다. 프로그램은 명령어의 유한집합을 의미하며, 여기서 명령어는 instruction에 해당한다. CPU는 한번에 하나의 instruction을 수행한다. (구체적으로 CPU의 ALU, Arithmethic Logic Unit) c = a+b; 이렇게 C언어 소스코드의 한 문장(statement)을 쓰게되면, 컴퓨터 내부에서는 레지스터에 값을 가져오고 계산해서 C의 위치에 더한 값을 집어넣는 세부적인 일(instruction)들이 필요하다. 컴파일러가 이 하나의 statement를 수행하기 위해서 세개의 instruction을 실행해야한다. mov eax, dword..

공부/JUN STUDY 2021.09.14

컴파일 VS 인터프리터 (Compile VS Interpreter)

프로그램을 해독하는 방식 (소스코드를 기계어로 변환하는 방식)에는 컴파일과 인터프리터 방식 두가지가 있다. 대부분의 프로그래밍 언어가 컴파일 방식을 택하기 때문에 프로그램의 해독(소스코드 => 기계어)을 컴파일이라고 이야기하는 것이다. 컴파일은 소스코드 => 기계어로의 해독 과정을 뜻하는 단어가 아니다!!! (기계어로의 변환 방식 중 하나가 컴파일) 오브젝트를 생성하고 저장하는 방식 ⇒ 컴파일 (번역본 제작 - 한번 해독 해두고 계속 실행) 그때그때 실행코드를 생성하는 방식 ⇒ 인터프리터 (옆에서 통역 - 실행시 마다 해독) 우리가 한글(=기계어) 밖에 모르는 사람을 위해 영어(=하이레벨언어) 책을 읽어줘야하는 상황에 놓여있을때 (기계어 밖에 모르는 컴퓨터를 위해 하이레벨언어를 해독해줘야하는 상황에 놓여..

공부/JUN STUDY 2021.09.14

Zeroday VS Oneday VS Olday(N-day) 제로 데이 VS 원데이 VS 올데이

핵심 정리 Olday, Oneday, Zeroday 모두 취약점의 종류를 나타내는 단어입니다. 0, 1, N day 취약점은 패치발표, 패치 적용, 해당 취약점에 대한 관심도를 기준으로 나뉩니다. 0 - day 패치를 발표하지 않음. 무방비 상태 1 - day 패치를 발표함. 적용은 안됨. 시간이 생명 N - day 패치를 발표한지 오래임. 아직도 적용이 안됨 구분 0-day 1-day N-day 취약점 해결(취약점X) 패치 발표 X O O O 패치 적용 X X X O 벤더 관심도 O O X O 0-day VS 1-day VS N-day 비교 표 서론 평소 Zeroday attack이 굉장히 위험하다. 뭐 이런 이야기들은 손쉽게 들어볼 수 있습니다. 반면에 Oneday, Olday(N-day)라는 단어를..

공부/JUN STUDY 2021.01.24

인터넷에 연결되는 과정(2) - DNS(Domain Name Service)에 대해

안녕하세요, 우리가 크롬이나 인터넷 익스플로어 같은 브라우저를 클릭해서, 구글이나 네이버 같은 웹 페이지를 눈으로 직접 확인할때까지 기술적으로 어떤일들이 일어날까요? 본 포스터는 '인터넷에 연결되는 과정' 시리즈 포스팅의 두번째 글로 본격적인 내용에 들어가기에 앞서 관련개념인 'DNS(Domain Name Service)' 에 대해 알아보도록 하겠습니다. ※ 첫번째 포스팅을 보고 싶으신 분들은 다음 링크를 이용해 주세요!! 인터넷에 연결되는 과정(1) - IP에 대해 첫번째 글에서 언급했듯이, 앞으로 이어질 내용에서 굵은글자 효과를 가지고 있는 문장들은 전문적인 글에서 정의한 문장을 가져온 것이고 '풀어서 이해해보기 : ' 부분은 해당 문장의 의미를 저와 함께 천천히 이해해보는 것임을 알려드립니다! 그럼..

공부/JUN STUDY 2020.05.30

인터넷에 연결되는 과정(1) - IP에 대해

안녕하세요! 우리는 흔히 사용하는 크롬(Chrome)이나 인터넷 익스플로러(Internet Explorer)를 이용하여 네이버나 구글 즉, 인터넷 웹 사이트에 접속을 하죠. 우리는 본인의 컴퓨터를 이용해 크롬 아이콘을 더블 클릭하고 주소창에 www.google.com 과 같은 인터넷 주소(?)를 입력하거나 여기 왼쪽에 있는 파란글자인 하이퍼링크를 클릭하는 방법으로 손쉽게 웹 사이트에 접속을 할 수 있습니다. 사실 우리가 이렇게 손쉽게 웹 사이트에 접속하고 우리의 눈에 보이기까지 기술적으로 다양한 과정들이 숨어 있는데요. '인터넷에 연결되는 과정' 시리즈 포스팅에서는 인터넷에 연결되기까지 과연 어떤 과정들이 숨어 있는지 살펴보도록 하겠습니다! 이 글은 그 첫번째 단계로 관련개념인 IP에 대해 알아봅시다. ..

공부/JUN STUDY 2020.05.29
728x90