728x90
반응형
SMALL

CS 26

[컴퓨터구조] CPU 설계 방식을 알아보자.

명령어로 할 수 있는 연산, 주소 지정 방식 등은 CPU마다 조금씩 차이가 있다.똑같은 코드로 만든 프로그램임에도 CPU가 이해하고 실행할 수 있는 명령어가 달라 어셈블리어도 다를 수 있다. 명령어 집합 설계 (Instruction Set Architecture, ISA)명령어 집합이란 CPU가 이해할 수 있는 명령어들의 모음을 말한다.실행 파일은 명령어로 이루어져 있고 서로의 컴퓨터가 이해할 수 있는 명령어가 다르기 때문에 CPU마다 ISA가 다를 수 있다.ISA는 명령어 병렬 처리 기법들을 도입하기 유리하다. 1. CSIC: 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다.다양하고 강력..

CS/컴퓨터구조 2024.11.19

[컴퓨터구조] CPU 3가지 구성요소에 대해 알아보자.

CPU는 메모리에 저장된 명령어를 읽어 들이고 읽어 들인 명령어를 해석하고 실행하는 부품을 여러 개 포함하는 부품이다. CPU는 산술논리 연산장치, 레지스터, 제어장치로 구성된다.  1. 산술논리 연산장치 (ALU)ALU는 계산을 수행하는 CPU의 핵심 부품이다.ALU는 산술 연산과 논리 연산, 두 가지 주요 작업을 처리한다. 1.1 받아들이는 정보피연산자: 레지스터로부터 받아들인다.제어 신호: 제어장치로부터 받아들이며 수행할 연산을 알려준다. 1.2 내보내는 정보연산을 수행한 결과는 특정 숫자나 문자가 될 수도 있고 메모리 주소가 될 수도 있다.이 결괏값은 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장된다.ALU는 계산 결과와 더불어 플래그(추가 정보)를 보낸다. 1.3 플래그플래그는 연산 결..

CS/컴퓨터구조 2024.11.18

[네트워크] OSI 7 Layer

OSI 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말하며 개방형 시스템 상호 연결 모델의 표준입니다. 실제 인터넷에서 사용되는 TCP/IP 는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것입니다. 탄생 배경 초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었습니다. 모든 시스템들의 상호 연결에 있어 문제없도록 표준을 정한 것이 OSI 7계층입니다. 표준(호환성)과 학습도구에 의미로 제작했습니다. OSI 7 계층을 나눈이유는? 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다. 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기..

CS/네트워크 2023.12.10

[컴퓨터구조] 컴퓨터 하드웨어 구성

컴퓨터 시스템은 하드웨어와 소프트웨어로 구성된다. 하드웨어: 데이터를 처리하는 물리적인 기계장치 소프트웨어: CPU에게 어떤 작업을 지시하는 명령어로 작성된 프로그램 그리고 운영체제 (OS, Operating System)은 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 컴퓨터 하드웨어는 크게 프로세서, 메모리(기억장치), IO 장치로 구성되고, 이들은 시스템 버스로 연결된다. 하드웨어 실체가 있는(시각적으로 보이면서도 만질 수 있는), 컴퓨터의 모든 물리적인 부품을 통틀어 의미한다. ※ 예를 들어, Windows를 사용하기 위한 노트북 혹은 Android/iOS 사용을 위한 스마트폰, 그 외 모니터, 키보드 마우스 등이 모두 하드웨어 IT 기업은 대고객 서비스를 위한 엔터프라이즈 급의 고성능 하드웨어를 주..

CS/컴퓨터구조 2023.12.08

[컴퓨터구조] 시스템 프로그래밍

시스템 프로그래밍(System Programming)이란? 시스템 프로그램은 컴퓨터 시스템을 동작시키는 또는 활용하는 소프트웨어 개발 프로그램을 말한다. Windows 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것으로 하드웨어를 사용할 수 있도록 도와주는 프로그램이다. 예로 Windows, Unix 와 같은 운영체제들이 있다. Windows나 UNIX와 같은 운영체제에서 제공하는 라이브러리(운영체제의 기능을 활용할 수 있는 시스템 함수들의 집합)를 사용하여 프로그램을 개발하는 개발자들도 시스템 프로그래머라고 부를 수 있다. 또한 어셈블리 언어나 C 언어를 이용하여 하드웨어를 직접 컨트롤하는 개발자들도 시스템 프로그래머라고 부른다. 시스템 프로그래밍의 폭 넓은 정의 → 특정 운영체제 ..

CS/컴퓨터구조 2023.12.05

[Network] REST API

REST(Representational State Transfer) REST이란 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 즉, 자원의 표현(representational)에 의한 상태 전달(State Transfer)을 말한다. 이때 자원이란 해당 소프트웨어가 관리하는 모든 것을 말하며 자원의 표현은 그 자원을 표현하기 위한 이름을 뜻한다. 예로 DB의 학생 정보가 자원일 때, 'students'를 자원의 표현으로 정하는 예가 있다. 상태(정보) 전달이란 데이터가 요청되어지는 시점에 자원의 상태(정보)를 전달하는 것을 말하며 JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다. 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹..

CS/네트워크 2023.12.04

[Network] Cookie vs Session

HTTP 프로토콜의 비연결성과 무상태성으로 인해 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않습니다. 이러한 특징은 리소스 낭비가 적다는 큰 장점도 있지만 통신할 때마다 새로 연결해야 하기 때문에 클라이언트가 매번 인증을 해야 한다는 단점도 있습니다. 매번 인증을 해야 하는 번거로움을 해결해야 하기 위한 기술로 쿠키와 세션이 있습니다. 쿠키 (Cookie) 사용자가 어떠한 웹사이트를 방문할 때 사이트가 사용하고 있는 서버에서 클라이언트 로컬에 서버에 인증하기 위한 클라이언트 정보를 저장하는 값을 말합니다. 클라이언트의 상태 정보를 클라이언트 로컬에 저장하여 참조한다. 구성 요소 쿠키의 이름(name) 쿠키의 값(value) 쿠키의 만료시간(Expires) 쿠키를 전송할 도메..

CS 2023.12.03

[Network] TCP/IP 프로토콜

TCP/IP 란? 사람끼리 소통할 수 있는 언어에도 한국어, 영어, 일본어, 중국어 등 여러 언어가 있듯이, 컴퓨터끼리 소통할 수 있는 프로토콜에도 TCP, HTTP, FTP 등 여러 프로토콜들이 존재합니다. 그 중 인터넷과 관련된 프로토콜을 모은 것을 TCP/IP라고 부릅니다. 계층으로 관리하는 TCP/IP TCP/IP는 OSI 7 Layer 중에서 Layer 3, Layer 4를 다루는 프로토콜입니다. TCP/IP는 4계층으로 나뉩니다. 그런데 왜 굳이 TCP/IP를 계층으로 나누어야할까요? 😮 그 이유는 아래와 같습니다. 변경의 용이성 만약 어디에서 사양이 변경되었을 때, 전체 계층을 바꿀 필요 없이 해당 계층만 변경하면 됩니다. 효율 증가 각 계층에서 해야하는 일에 충실해지기 때문에 효율이 증가하..

CS 2023.12.02

[Package] npm vs yarn

npm과 yarn은 자바스크립트 런타임 환경인 노드(Node.js)의 패키지 관리자입니다. npm과 yarn의 차이점을 알아보기 전, 패키지 관리자에 대해서 잘 모르신다면 여기를 참고해주세요. 전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스(opens new window)에 올리면 npm, yarn과 같은 패키지 관리자를 통해 설치 및 삭제가 가능합니다. 그리고 CLI(Command-line interface)를 통해 패키지 설치 및 삭제뿐 아니라 패키지 버전 관리, 의존성 관리도 편리하게 할 수 있습니다. npm (Node Package Manager) 노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자입니다. 크게 두 가지 역할을 수행합니다. 첫 번째 역할은 온..

CS 2023.12.01

[Package] Package manager

우리는 프로젝트를 만들 때 npm과 yarn을 통해서 패키지를 다운받은 후 개발을 시작한다. 이때 npm과 yarn은 패키지 관리자라고 불리는데 패키지 관리자란 무엇일까? 패키지 관리자(Package manager) 패키지 관리자는 패키지를 관리하는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴을 말합니다. 여기서 패키지를 관리하는 작업이란 패키지를 설치, 업데이트, 수정, 삭제하는 작업을 의미합니다. 패키지(Package) 라이브러리와 유사하게 코드의 배포를 위해 사용되는 코드의 묶음이라고 생각하면 됩니다. 패키지는 아래의 정보를 가지고 있는 코드의 배포 단위입니다. 라이브러리 실행 파일 컴파일한 소프트웨어의 바이너리(binary) 환경설정(configuration) 정보 의존성(dependen..

CS 2023.11.30
728x90
반응형
LIST