저 많은 사람 중에 '나'

    전자서명과 CA

    https://www.getoutsidedoor.com/2021/02/13/ssl-tls-%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C/ SSL/TLS 에 대해서 - Real Insight Comes From Fixing Error 이번 포스팅에서는 SSL/TLS 프로토콜이 어떤 방식으로 동작하며 왜 이런 프로토콜이 등장하였는지 그 배경에 대해서 살펴본다. 실제로 SSL/TLS 그리고 이것을 사용하여 만들어진 HTTPS 프로토콜이 코 www.getoutsidedoor.com 위 글을 참고하여 공부한 내용입니다. 자세한 내용은 위 블로그를 참고해주세요. 전자서명 일반적으로 문서에 서명을 한다고하면 해당 문서를 읽어보았고 동의한다는 뜻으로 서명을 하게 된다. 디지털 세계에서는 서명은 해..

    HTTP 와 HTTPS

    HTTP 와 HTTPS

    HTTP(HyperText Transfer Protocol) 하이퍼텍스트(HyperText)를 전송(Transfer)하기 위해 사용되는 통신 규약(Protocol)입니다. 또한 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 이라고도 할 수 있습니다. HTTP 서버는 기본 포트인 80번 포트에서 서비스 대기 중이며, 클라이언트(웹 브라우저)가 TCP 80 포트를 사용해 연결하면 서버는 요청에 응답하면서 자료를 전송합니다. HTTP는 정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있습니다. 이러한 보안 취약점을 해결하기 위한 프로토콜이 HTTP에 S(Secure Socket)가 추가된 HTTPS입니다. HTTPS ..

    명령어 집합 구조, CISC 와 RISC

    명령어 집합 명령어 집합 (ISA): CPU가 이해할 수 있는 명령어들의 모음입니다. CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속입니다. 인텔의 CPU는 일반적으로 X86 명령어 집합을, 애플의 CPU는 일반적으로 ARM 명령어 집합을 따릅니다. 명령어 집합이 다르기 때문에 같은 소스코드를 컴파일 할지라도 나오게 되는 명령어가 다르기때문입니다. CISC (Complex Instuction Set Computer) 복잡한 명령어 집합을 활용하는 컴퓨터(CPU) x86, x86-64는 CISC 기반 명령어 집합 구조입니다. 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용합니다. 장점 다양한 명령어를 활용할 수 있다. 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다...

    패리티 비트 & 해밍 코드

    패리티 비트(Parity Bit) 시리얼 통신에서 데이터의 오류를 검출하기 위한 일종의 장치 중 하나입니다. 정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트로 전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송합니다. 짝수 패리티 데이터의 모든 1의 개수를 짝수로 맞춰야합니다. 예를 들어, 1100100의 1의 개수는 3개(홀수)이므로, 자동적으로 패리티 비트는 1이 되어 11100100 총 1의 개수를 4개(짝수)로 만듭니다. 홀수 패리티 데이터의 모든 1의 개수를 홀수로 맞춰야합니다. 예를 들어, 1100100의 1의 개수는 3개(홀수)이므로, 자동적으로 패리티 비트는 0이 되어 01100100 총 1의 개수를 3개(짝수)로 유지합니다. 만약 짝수 패리티일 때, 데이터가 중간에 ..

    CPU의 구조와 기능

    https://blog.naver.com/ds4ouj/222566933623 [컴퓨터구조] CPU의 구조와 기능 (1) 이번엔 컴퓨터의 핵심 요소인 CPU의 구조와 동작 원리에 대하여 정리할 것입니다. CPU는 기억장치에 ... blog.naver.com 위 글을 공부하여 쓴 글 입니다. 자세한 내용은 위 블로그의 CPU의 구조와 기능 시리즈 글을 참고해주세요. CPU 의 동작 CPU는 기억장치에 저장되어 있는 프로그램 코드인 명령어를 실행함으로써 프로그램을 수행합니다. CPU의 동작은 다음과 같습니다. 명령어 인출 기억 장치로 부터 명령어를 읽어옵니다. 명령어 해독 수행해야할 동작들을 결정하기 위해 1에서 읽어온 명령어를 해독합니다. 데이터 인출 명령어 실행을 위하여 데이터가 필요한 경우 기억장치 혹은..

    컴퓨터 시스템의 개요

    https://m.blog.naver.com/ds4ouj/222565520844?referrerCode=1 [컴퓨터 구조] 컴퓨터 시스템의 개요 학교 전공교재를 이용하여 컴퓨터 구조를 제대로 공부하기 시작했습니다. 컴퓨터 시스템은 기본적으로 ... blog.naver.com 위 글을 보고 공부한 내용입니다. 자세한 내용은 위 블로그를 참고해주세요. 컴퓨터 시스템이란 하드웨어(Hardware) + 시스템 소프트웨어(System software)로 구성됩니다. 이러한 시스템에 각종 응용 소프트웨어(application software)들이 탑재되어 사용자와 상호작용합니다. 하드웨어 컴퓨터의 각종 정보가 처리되는 물리적 실체입니다. 소프트 웨어 정보들이 이동하는 방향과 정보 처리의 종류, 수행될 시간을 지정..

    캐시 메모리의 쓰기 정책 / 버퍼와 캐시의 차이

    캐시 메모리 쓰기 정책 Write-Through Through 의 의미는 관통한다 라는 의미로 받아들이면 이해가 수월해집니다. Write-Through는 쓰기를 할때 Cache Memory 와 Main Memory 모두 업데이트 하는 방식입니다. 일관성을 유지할 수 있다는 장점과 동시에 일관성을 유지하기위해 메모리에 쓰는 시간동안 CPU가 대기해야하는 시간이 발생합니다. 위와 같은 단점을 보완하기위해 Write Buffer 를 추가로 사용합니다. 위와 같이 Buffer를 두면 CPU가 Buffer 에 업데이트할 데이터를 적재해놓으면 Memory가 업데이트 되는 동안 CPU는 다른 일을 할 수 있습니다. 장단점 장점 : 캐시 일관성을 유지할 수 있다. 단점 : 처리 속도가 느리며 CPU 대기시간이 늘어난다..

    캐시 메모리

    https://blog.naver.com/PostView.naver?blogId=ds4ouj&logNo=222609509733&categoryNo=31&parentCategoryNo=0&from=thumbnailList\ [컴퓨터 구조] 캐시 메모리 (Cache Memory) (1) 주기억장치로 사용되는 반도체 기억장치 부품들의 액세스 속도가 최근 크게 개선되었지만, 여전히 CPU의... blog.naver.com https://hyeo-noo.tistory.com/308 [컴퓨터 구조] 캐시 메모리 캐시 메모리 CPU와 주기억장치의 속도차이를 보완하기 위하여 그 사이에 설치하는 반도체 기억장치. 용어 정리 CPU가 원하는 데이터가 이미 캐시에 적재되어 있는 상태를 캐시 적중(cache hit)이라 hy..

    부동소수점에 대한 이해

    부동 소수점은 실수의 표현과 아주 작은 수와 아주 큰수를 표현하기 위해 도입되었습니다. 또한 고정 소수점이라는 방식도 존재하며 우선 고정 소수점 부터 무엇인지 알아봅시다. 고정 소수점(Fixed Point) 소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식입니다. 장점: 실수를 정수부와 소수부로 표현하여 단순합니다. 단점: 표현의 범위가 너무 적어서 활용하기 힘듭니다. (정수부는 15bit, 소수부는 16bit ) 정수부만 따졌을때 2^16 - 1 의 수 까지 표현이 가능한데, 터무니 없이 작은 수 입니다. 부동 소수점 지수의 값에 따라 소수점이 움직이는 방식을 활용한 실수 표현 방법입니다. 즉, 소수점의 위치가 고정되어 있지 않습니다. 실수를 가수부 + 지수부로 표현합니다. 가수: 실수의 실제값..

    자바스크립트의 해시테이블

    해시테이블에 대해 공부하게 된 사연.. 백준에서 알고리즘 문제를 풀다 똑같은 로직인데, 배열로 value에 접근할 때와 object를 사용해 구현한 Map 을 통해 value에 접근했을때 속도차이가 유의미하게 나는 것을 경험했다. 자바스크립트에서 배열은 객체 보다 더 나은 성능을 가진다. 자바스크립트의 배열은 배열을 흉내낸 객체이다. 따라서 배열 요소에 접근할 때 일반적인 배열보다 느릴 수밖에 없는 구조적인 단점을 보완하기 위해 모던 자바스크립트 엔진은 배열을 일반 객체와 구별하여 좀 더 배열처럼 동작하도록 최적화하여 구현했다. 위 자료를 근거로 배열과 객체를 모두 사용할 수 있는 경우가 있다면 배열을 통해 value에 접근하는 편이 더 성능상 유리하다는 것을 알았다. (나는 객체를 Map 처럼 만들어서..