CS 22

[컴퓨터 구조] chapter2-1 정리(컴퓨터 언어 : 명령어)

2장은 양도 많고, 기록할 것도 많아서 2번에 걸쳐서 포스팅하려고 합니다. 2장에서 다뤄볼 부분은 명령어입니다. chapter2 2.1 서론 2.2 하드웨어 연산 2.3 피연산자 2.4 부호 있는 수와 부호 없는 수 2.5 명령어의 컴퓨터 내부 표현 2.6 논리 연산 명령어 2.7 판단을 위한 명령어 컴퓨터 하드웨에게 일을 시키려면 하드웨어가 알아들을 수 있는 언어로 말을 해야 합니다. 컴퓨터 언어에서 단어를 명령어(instruction)이라고 하고, 그 어휘를 명령어 집합(instruction set)이라고 합니다. 오늘 배워볼 명령어 집합은 MIPS입니다. - MIPS(Microprocessor without Interlocked PipeLine Stages)란 MIPS Technologies 기반의..

CS 2023.04.11

[HTTP] 개발자로서 갖춰야할 HTTP 지식

오늘은 김영한님 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고, 공부했던 것을 복습하기 위해 총정리하는 시간을 가지려고 합니다. 강의 내용은 다음과 같습니다. 1. 인터넷 네트워크 인터넷 통신 IP(인터넷 프로토콜) TCP, UDP PORT DNS 2. URI와 웹 브라우저 요청 흐름 URI 웹 브라우저 요청 흐름 3. HTTP 기본 모든 것이 HTTP 클라이언트 서버 구조 Stateful, Stateless 비 연결성(connectionless) HTTP 메세지 4. HTTP 상태코드 HTTP 상태코드 소개 2xx(성공), 3xx(리다이렉션), 4xx(Client Error), 5xx(Server Error) 5. HTTP 헤더(일반헤더, 캐시와 조건부 요청) 1장은 예전에 포스팅한 적이 있어..

CS 2023.04.11

[컴퓨터 구조] chpater1 정리(컴퓨터 구조 및 설계)

1장 목차는 다음과 같습니다. 1.1 서론 1.2 컴퓨터 구조 분야의 일곱 가지 위대한 아이디어 1.3 프로그램 밑의 세계 1.4 케이스를 열고 1.5 프로세서와 메모리 생산 기술 1.6 성능 1.7 전력장벽 1.8 현저한 변화: 단일프로세서에서 멀티프로세서로의 변화 1.9 결론 1.10 오류 및 함정 서론 부분은 앞선 포스트에 상세히 적혀있으니, 생략하고, 1.2부터 정리하도록 하겠습니다. 1.2 컴퓨터 구조 분야의 일곱가지 위대한 아이디어 설계를 단순화 하는 추상화 -> 자원의 수가 증가함에 따라 생산성을 높이기 위한 기술 개발 자주 생기는 일을 빠르게 병렬성을 통한 성능 개선 파이프라이닝(명령어의 실행을 중첩시켜 프로그램을 빠르게 실행시키는 기술)을 통한 성능 개선 예측을 통한 성능 개선 메모리 계..

CS 2023.04.07

[컴퓨터 구조] 컴퓨터 시스템의 구성

컴퓨터의 기본 구성은 하드웨어, 소프트웨어 두 가지로 구성됩니다. 하드웨어 : 컴퓨터에서 각종 정보를 입력하여 처리하고 저장하는 동작이 실제로 일어나게 해주는 실체이며 시스템이 동작하는 데 있어서 필요한 물리적 구성 요소 소프트웨어 : 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모임, 프로그램(컴퓨터를 사용해 어떤 일을 처리하기 위해 순차적으로 구성된 명령들의 집합) 다음과 같이 하드웨어는 중앙 처리 장치(CPU), 주기억 장치, 보조 기억 장치, 입력 장치, 출력 장치로 구성됩니다. 또한 이들은 컴퓨터의 기능 수행을 위해 시스템 버스를 통해 서로 연결되어 있습니다. 여기에서 말하는 버스는 컴퓨터 부품들 간, 혹은 컴퓨터 간 데이터와 정보를 전송하는 통로입니다. 앞서 설명드린 하드웨어의 구성 요소들의..

CS 2023.04.07

[HTTP] Internet Network

인터넷 통신에서 클라이언트와 서버는 어떻게 통신할까요? 클라이언트 컴퓨터와 서버 컴퓨터 사이에 인터넷이라는 것이 존재합니다. 이 복잡한 인터넷 망은 수많은 노드들로 구성되어 있습니다. 그래서 이러한 복잡한 망을 처리하기 위해 각각의 컴퓨터에 IP(Internet Protocol) 주소라는 것을 부여했습니다. IP프로토콜을 통해 다음과 같이, 클라이언트와 서버는 각각의 IP주소를 통해 Packet 단위로 데이터를 전달할 수 있게 됩니다. IP 패킷은 S.A IP(출발지 IP), D.A IP(목적지 IP), 전송 데이터로 구성되어 있으며, 클라이언트에서 이 패킷을 전송할 때, 수많은 노드들을 거쳐 서버로 전송됩니다. 또한 같은 맥락으로 서버도 잘 받았다는 응답 패킷을 클라이언트로 전송하게 됩니다. 하지만 I..

CS 2023.03.30

[컴퓨터 구조] 컴퓨터의 혁명과 컴퓨터 종류

컴퓨터의 기술이 어떻게 발전해 왔고, 다양한 컴퓨터의 종류에 대해서 알아보려고 합니다. 들어가기에 앞서, Moore's Law(무어의 법칙)에 대해서 간략히 설명드리겠습니다. 설명드리는 이유는 컴퓨터 기술의 발전은 무어의 법칙에 의해 보이기 때문입니다. 무어의 법칙이 어떤 것인지 알아보겠습니다. Moore's Law 반도체 집적회로의 성능(메모리 용량, CPU 속도)이 약 2년마다 2배로 증가합니다. 컴퓨터의 성능은 18개월마다 2배로 증가합니다. 컴퓨터의 가격은 2년마다 반으로 줄어듭니다. 컴퓨터의 발전은 여러 분야에서 나타났습니다. 예시가 몇 가지 있습니다. 자동차 제어 컴퓨터 스마트폰 WWW(World Wide Web) 인간 게놈 프로젝트 검색 엔진 컴퓨터의 종류 개인용 컴퓨터 일반적인 목표, 다양..

CS 2023.03.27

[컴퓨터 구조] 컴퓨터 구조를 알아야 하는 이유

훌륭한 개발자가 되기 위해서는 반드시 컴퓨터 구조와 운영체제를 배워야 합니다. 왜냐하면, 개발자가 내부적인 시스템 오류에 직면했을 때, 컴퓨터 구조에 대한 지식이 부족하다면 이를 해결하지 못하고 어려움을 겪게 될 것입니다. 더불어 개발자 채용 공고에도 컴퓨터 구조에 대한 지식을 요구하는 기업들도 많아지고 있는 추세입니다. 컴퓨터 구조를 배움으로써, 문법에 맞는 소스 코드를 컴퓨터에 입력만 하는 개발자에서 컴퓨터를 내려다보며 문제를 해결할 수 있는 개발자가 될 수 있습니다. 컴퓨터 구조를 알아야 하는 이유 두 가지 문제 해결 능력을 기를 수 있습니다. 성능, 용량, 비용을 고려한 프로그래밍을 할 수 있습니다. 강의실에서 다양한 학생들이 같은 코드를 입력했는데 어떤 사람은 코드가 작동하지만, 또 다른 사람은..

CS 2023.03.27

Blocking & Non-Blocking, Synchronous & Asynchronous

블로킹 blocking -> 어떠한 A 함수 가 B 함수를 호출하면 제어권(함수를 실행할 권리)을 A가 B에게 넘겨주는 작업 방식이다. 제어권을 가진 B는 함수를 실행하고, A는 제어권을 B에게 넘겨줬기 때문에 함수 실행을 멈춘다. 그리고 B의 함수가 종료되면, A에게 다시 제어권을 돌려준다. 논블로킹 Non-blocking -> 어떠한 A 함수가 B 함수를 호출해도 제어권을 그대로 자신이 가지고 있는 작업 방식이다. A 함수가 B 함수를 호출해도, 제어권은 A에게 있기 때문에, A의 함수를 멈추지 않고 B의 함수를 실행한다. 데이터를 처리하는 방식 동기 synchronous programming -> 요청과 결과가 동시에 일어나는 프로그래밍(A, B 노드 사이의 작업 처리 단위를 동시에 맞춤) 결과를 ..

CS 2022.11.28

CS 스터디 4주차 Network & Spring

최근 2~3주 동안 시험기간이라서 CS에 집중하지 못했습니다. 이제 다시 커리큘럼에 맞춰 또 집중해야 할 것 같습니다. 4주차 내용은 다음과 같습니다. 4주차 학습 내용 Network 대칭키 / 공개키 HTTP / HTTPS 로드 밸런싱 Blocking, Non-blocking / Synchronous, Asynchronous Blocking / Non-Blocking I/O Spring Bean Scope MVC Framework Spring Boot, SpringApplication 대칭키 / 공개키 대칭키(Symmetric key) / 공개키(Public Key, Asymmetric Key) 대칭키는 보내는 사람의 key와 받는 사람의 key가 동일하다. 속도 측면에서는 빠르지만, 안정성이 떨어진다..

CS 2022.10.27

CS스터디 3주차 Network & Java

3주차 학습내용 Network OSI 7 계층 TCP 3 way handshake & 4way handshake TCP/IP 흐름제어 & 혼잡제어 UDP Java Error & Exception Stream API Record OSI 7계층 OSI란 무엇인가? 모든 종류의 컴퓨터 시스템 간 통신을 가능하게 하는 네트워크 설계를 위한 구조이다. Open System Interconnection(개방형 시스템 간 상호 접속) 1 계층 : 물리 계층(Physical layer) 물리적인 매체를 통하여 비트 전달(기계적, 전자적, 절차적 규격 제공) 데이터의 단위는 Bit이고, 장치로는 랜카드, 케이블, 커넥터, 전기신호 등이 있다. 2 계층 : 데이터링크 계층(Data-Link Layer) 투 포인트(poin..

CS 2022.10.26