React

  • 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리

React.createElement()

  • jsx는 사실상 react.createElement()를 호출하기 위한 슈가 문법
  • React.createElement(
      type,
      [props],
      [...children]
    )
    type의 인자로를 div와 span 같은 tag가 와도 되고, React Component, React Fragment 타입이 올수 있다.
  • props에는 보통 attribute를 넣어준다.
  • children은 자식요소를 넣어주는거로, 문자열일수도 있으며, 컴포넌트일수도 있다.
  • 그리고 children을 props의 객체로 넣어줘도 가능하다.
  • 만약 props를 통해 children Component에 data를 넘겨주고 싶으면, function으로 만들어 놓던지 아니면 class형태로 만들어서 쓰면 된다.
  • 자세한 예제는 https://reactjs.org/docs/react-without-jsx.html
  • https://reactgo.com/react-createelement-example/ 를 쓰면 된다.

JSX 를 주로 사용하지만, JSX의 기본이 되는 React.CreateElement는 위와 같이 작용을 한다.

'기술공부 > React' 카테고리의 다른 글

[React] 06. Component State Handle  (0) 2021.12.16
[React] 05. event handler  (0) 2021.12.15
[React] 04. rerendring  (0) 2021.12.14
[React] 03.JSX  (0) 2021.12.10
[React] 02. Multi Element  (0) 2021.12.09

Ch 1.2 네트워크 가장 자리

종단 시스템은 웹브라우저 프로그램 웹서버프로그램 전자 메일 클라이언트 프로그램 또는 전자메일 서버 프로그램 같은 애플리케이션을 수행하므로 호스트 라고도 불린다.

  • 종단 시스템들은 데스크톱 컴퓨터, 서버, 모바일 컴퓨터 등을 포함한다.
  • 호스트는 클라이언트와 서버로도 구분된다.

1.2.1 접속 네트워크

​ 접속네트워크는 종단시스템을 그 종단시스템으로부터 다른 먼 거리의 종단시스템까지의 경로상에 있는 첫번째 라우터에 연결되는 네트워크 경로

가정접속 : DSL, 케이블, FTTH, 다이얼-업 그리고 위성
  • DSL(digital sub-scriber line) : 각 고객의 DSL 모뎀은 텔코의 지역 중앙국에 위치한 DSLAM(digital subscriber line access multiplexer) 과 교환하기 위해 기존 전화 회선을 이용한다.
    • DSL 모뎀은 디지털 데이터를 받아서 전화서를 통해, 지역 중앙국(CO)로 전송하기 위해 고주파신호로 변환한다.
    • DSL은 다른 주파수 대역으로 인코드 되어, 3개의 분리된 링크인 것처럼 보이게한다. 그래서 하나의 전화회선과 인터넷 연결이 동시에 DSL 링크를 고유할수 있게된다.
    • DSL은 고객쪽에 스플리터가 있어, 데이터와 전화신호를 분리하고, 데이터신호를 DSL 모뎀으로 전송한다.
  • 케이블 인터넷 접속 : 케이블 TV회사의 기존 케이블 TV 기반구조를 이용한, 인터넷 서비스이다.
    • 광케이블은 헤드엔드를 이웃-레벨 정션에 연ㄴ결하며, 여기 광 노드에서 각 집에 도착할때까지는 전통적인 동축케이블을 사용한다.
    • 케이블 헤드엔드의 CMTS(cable modem termination sysyem)은 DSL의 DSLAM와 유사한 기능을 한다.
    • 케이블 인터넷 접속은 공유 방송매체이므로, 모든 패킷은 모든 링크의 다운스트림 채널을 통해 모든 가정에 전달되며, 업스트림 또한, 모든패킷이 업스트림 채널을 통해 헤드엔드로 간다.
    • 그러므로,각 사용자가 비디오파일을 동시에 수신하고 있다면, 실제 수신율은 다운스트림 전송율보다 상당히 낮아진다.
    • 그래서 분산 다중 접속 프로토콜로 전송을 조정하고, 충동을 피하기 위한 노력이 필요하다.
  • FTTH(Fiber to the Home) : CO(지역 중앙국)으로 부터, 집까지 광 성유 경로를 제공한다.
    • CO(중앙국)에서 하나의 광섬유로 와서, 고객이 있는곳에서 분리가 되어, 제공이된다.
    • 위와 같은 기술을 스플리팅으로 하며, AON(active optical network)과 PON(passive optical network)이 대표적이다.
기업접속 : 이더넷과 와이파이
  • 이더넷은 기관에서 이더넷 스위치를 통해, 연결하고 기관 라우터를 통해 기관 IPS로 제공된다.
  • 와이파이는 유선으로 연결된 AP의 수십미터 반경에서 무선으로 클라이언트와 연결이 된다.

1.2.2 물리 매체

  • 물리매체는 전자파나 광펄스를 전파하여 비트를 전송하는 매체를 의미한다.
    • 유도매체와 비유도매체가 있다.
      • 유도매체 : 광섬유케이블 꼬임쌍선, 동축케이블 (견고한 매체를 따라 파형을 유도)
      • 비유도 매체 : 무선 lan 혹은 디지털 위성채널(대기와 야외공간으로 파형을 전파)
  • 꼬임 쌍선
    • 가장 싸고 가장 많이이용하는 전송매체
    • 전화망에서 자주 사용된다.
    • 2개의 절연동선이 각각 약 1mm의 굵기로 규칙적인 나선형태로 배열된다.
    • 꼬임 쌍선의 데이터 전송률은 10Mbps 에서 10Gbps에 이른다.
    • 데이터 전송률은 전송선의 두께와 송신기와 수신기 사이의 거리에 따라 다르며, 짧은 수백m의 거리에서는 광섬유에 비견될 정도로 10Gbps의 속도를 낼수 도 있다.
  • 동축 케이블
    • 꼬임쌍선 처럼 동축케이블은 2개의 구리선으로 되어있으나, 두 구리선이 평해하지 않고 동심원 형태를 이루고 있다.
    • 일반적으로 꼬임 쌍선보다 더 높은 데이터 전송률을 얻을 수 있다.
    • TV시스템에 흔히 사용된다.
    • 동축케이블은 유도 공유매체로 사용할 수 있다. 여러 종단시스템은 케이블에 직접 연결할 수 있고, 모든 종단시스템은 다른 종단시스템이 전송하는 모든것을 수신한다.
  • 광섬유
    • 비트를 나타내는 빛의 파동을 전하는 가늘고 유연한 매체이다.
    • 단일 광성유는 10~100기가의 전송률을 가지며, 100KM까지느 신호 감쇠현상이 적고, 전자기성 간섭에 영향을 받지 않으며, 도청하기 어렵다.
    • 인터넷의 백본과 해저케이블에 자주 쓰인다.
    • 그러나 송,수신기, 스위치의 광장비가 고가이므로, 랜이나 가정처럼 근거리 전송에는 이용하기 어렵다.
  • 지상 라디오 채널
    • 라디오 채널은 전자기 스팩트럼으로 신호를 전달한다.
    • 물리선로를 설치할 필요가 없고, 벽을 관통할수 있으며, 이동 사용자에게 연결성을 제공하고 먼거리 까지 신호를 전달할수 있다.
    • 주변환경에 영향과 전달되는 거리에 많은 영향을 받아, PATH LOSS(경로 손실)과 shadow fading(경로상의 손실), 다중경로 페이딩, 간섭을 받을 수 있다.
  • 위성 라디오 채널
    • 정지위성과 저궤도 위성을 통해 통신을 하는 시스템
      • 정지 위성은 보통 DSL접속 또는 케이블 기반 인터넷접속을 할수 없는 지역에서 이용된다.
      • 정지위성은 긴 신호 전파 지연을 일으키는 단점이 있다.
      • 저궤도위성은 지구 위 한곳에 고정되지 않고, 지상국뿐만 아니라, 자기들끼리도 통신이 가능하다. 많은 저궤도 통신시스템이 개발 중에 있다.

운영체제 : 02 운영체제의 개념과 구조

  • Comupter System

    • the hardware
    • the operating system
    • the application programs
    • user

운영체제의 정의

  • There are No universally accepted definition of an operating system
  • A more common definition is that
    • the one program running at all times on the computer
      • 운영체제는 컴퓨터에서 항상 돌아가는 프로그램이라고 정의한다.
    • usallay called the kernel
  • kerneal에서 제공하는 프로그램
    • system programs
    • application programs

컴퓨터의 기본적인 구조 (classical computer system)

  • one or more CPUs and
  • a number of device controllers connected through a common bus

부트스트랩 프로그램 (bootstrap program)

  • 컴퓨터가 켜졌을때 가장 처음에 실행되어야하는 프로그램
    • 운영체제를 로딩하는 일
    • 하드에 있는 운영체제를 메모리에 로딩해주는 일

인터럽트 (Interrupts)

  • I/O device가 CPU에 신호를 보내는 트리거
  • Hardware may trigger an intterupt at any time
    • 시스템 버스를 통해, 시그널을 CPU에 보낸다.

폰 노이만 아키텍쳐

  • 산술 논리 장치와 프로세서 레지스터를 포함하는 처리 장치
  • 명령 레지스터와 프로그램 카운터를 포함하는 컨트롤 유닛
  • 데이터와 명령어를 저장하는 메모리
  • 외부 대용량 스토리지
  • 입출력 매커니즘
  • A typical instruction - execution cycle
    • first fetches an instruction from memory
    • and stores that instruction in instruction register
      • 명령어 레지스터가 있어서, 명령어를 fetch를 하고 execute를 해주는 방식을 폰 노이만 구조라 한다.
  • The instruction is the decoded
    • and may cause operands to be fetched from memory
    • and stored in some internal register
  • After the instruction on the operands
    • has been executed
    • the result may be stored back in memory
  • Storage System의 계층 구조

    • register : CPU 내에 있는 저장장치
    • cache : register와 main memory사이에 있다. 메모리보다 빠르다.
    • main memory : 우리가 흔히 말하는 램
    • solid - state dist : 메모리 형태의 하드디스크
    • hard dist : HDD
  • I/O Structure

  • DMA : Direct memory access
  • A large portion of OS code is dedicated to managing I/O
  • 컴퓨터 시스템 컴포넌트의 정의

    • CPU : The hardware that executes instructions
    • Processor : A physical chip that contains one or more CPUs
    • Core : The back computation unit of the CPU
    • MultiCore : Including multiple computing cores on the same CPU
  • Symmetric multiprocessing(SMP)

  • 둘 이상의 동일한 프로세서가 단일 공유 주 메모리 에 연결되고 모든 I / O 장치에 대한 전체 액세스 권한을 가지며 처리하는 단일 운영 체제 인스턴스에 의해 제어되는 다중 프로세서 컴퓨터 하드웨어 및 소프트웨어 아키텍처
  • Multi Core design

    • 같은 프로세서에 여러개의 core로 나눈게 멀티 코어 디자인이다.

  • multiprogramming
    • 여러개의 프로그램을 동시에 메모리에 올려놓고 실행하는 것
    • keeps several proccesses in memory simulaneously
    • to increase CPU utilization( CPU의 사용율을 높여줌)
  • Multitasking(멀티프로세싱) : concurrency(pallerelism과 차이를 알아야한다.)
    • a logical extension of multiprogramming
      • CPU가 여러개의 작업을 자주 바꾸면서 여러개의 프로그램을 동시에 돌아가는 것처럼 사용자가 느낄수 있게 된다.
    • CPU scheduling : (CPU 스케쥴링이 중요)
      • 만약에 같은 시간에 여러개의 프로세스가 실행이 되었을때, 시스템은 무조건 그 프로세스 중에서 다음에 실행될것을 결정해줘야한다.
  • Two separate mode of operations

    • user mode and kernel mode

    • 프로그램의 잘못된 행동을 예방해주기 위해, 커널모드와 유저모드가 있다.

    • 그러므로, 컴퓨터에 직접적인 제어는 커널모드에서만 가능하고, 유저모드에서는 동작이 불가능하게 했다.

  • Virtualization (가상화)
    • technology that allow us
      • to abstract the hardware of single computer
      • into several diffrent execution enviroments
      • 한 컴퓨터에서 다양한 OS를 실행
  • OS의 제공하는 환경

    • User interface
    • Program execution
    • I/O operation
    • File system manipulation
    • Communications
    • Error detection
    • Resource allocation
    • Logging
    • Protection and security

  • System call

    • provide an interface to the services made available by the OS
    • API : Application Programming Interface
  • 2강 후기
    • 기초적인 컴퓨터에서 쓰이는 용어들에 대해 배웠다. 하지만 비 전공자라 그런지 모든 용어들이 새로워 이해하는데 시간이 걸렸다.

'기술공부 > OS' 카테고리의 다른 글

운영체제 3강  (0) 2022.05.18
운영체제 2강 - 2(반효경)  (0) 2022.05.13
운영체제 2강( 반효경)  (0) 2022.05.12
운영체제 소개 1강 (반효경)  (0) 2022.05.05
1. 운영체제가 뭐길래 (운영체제 강의 : 주니온)  (0) 2021.04.21

컴퓨터 네트워킹 하향식 접근

Chapter 1 컴퓨터 네트워크와 인터넷

1.1 인터넷이란 무엇인가?

  1. 인터넷의 구성요소를 기술하는 방법 ( 인터넷을 구성하는 기본적인 하드웨워와 소프트웨어 요소를 기술)
  2. 분산 애플리케이션에 서비스를 제공하는 네트워킹 인프라 관점에서 인터넷을 기술하는 것

1.1.1 구성요소로 본 인터넷

  • 인터넷에 연결되는 모든 장치는 호스트 혹은 종단 시스템(end system) 이라 부른다.

  • 종단시스템은 통신 링크(Communication Link)와 패킷 스위치(packet switch)의 네트워크로 연결된다.

  • 통신링크 : 동충 케이블, 구리선 광 케이블, 라디오 스펙트럼 등을 포함한 다양한 물리매체

    • 각각의 링크들은 다양한 전송률을 이용하여, 데이터를 전송한다.
  • 한 종단시스템에서 다른 종단 시스템으로 보낼 데이터를 가지고 있을때, 그 데이터를 세그먼트로 나누고, 각 세그먼트에 헤더를 붙인다.

  • 이렇게 만들어진 정보 패키지를 패킷(packet)이라고 부른다.

  • 패킷을 목적지 종단 시스템으로 보내지고, 목적지에서 재 조립이 된다.

  • 패킷을 전달해주는 패킷 교환기는 라우터링크 계층 스위치가 있다.

    • 라우터 : 네트워크 코어에서 사용
    • 링크 계층 스위치 : 액세스 네트워크에서 사용
  • 종단 시스템은 *ISP(Internet Service Provider) *를 통해 인터넷에 접속한다.

    • ISP은 다양한 네트워크들이 있고, ISP 네트워크는 따로 관리되고, IP 프로토콜을 수행하며, 네이밍, 주소배정 방식을 따른다.
  • 인터넷의 구성요소들은 인터넷에서 정보 송수신을 제어하는 프로토콜을 수행하며, TCP, IP가 가장 유명한 프로토콜이다.

    • IP 프로토콜 : 라우터와 종단시스템 사이에서 송수신되는 패킷 포맷

1.1.2 서비스 측면에서 본 인터넷

애플리케이션에 서비스를 제공하는 인프라 구조로 인터넷을 기술한 방법

  • 서로 데이터를 교환하는 많은 종단 시스템을 포함하고 있는 애플리케이션을 분산 애플리케이션 이라고 부른다
    • 인터넷 애플리케이션들은 종단시스템에서만 수행된다. 즉, 패킷교환기에서는 수행이 되지 않는다.
    • 패킷교환기들은 종단시스템 간의 데이터 교환을 쉽게 해주지만, 이 애플리케이션이 무엇을 하는지 관심이 없다.
  • 소켓 인터페이스 : 인터넷에 접속된 종단시스템에서 한 종단시스템에서 다른 종단시스템에서 수행되는 특정 목적지 프로그램에게 데이터를 전달하도록 요구사항을 명시되어있는 것
    • 예를 들면, 우편 서비스를 이용을 할때, 봉투에 우편을 붙이고, 봉투에 편지를 넣은뒤, 그 봉투를 우체통에 넣는 이 과정을 우편 서비스 인터페이스라고 한다.
    • 즉, 송신프로그램이 데이터를 목적지 프로그램에 전달할수 있도록 따라야하는 과정이 소켓 인터페이스이다.

1.1.3 프로토콜이란 무엇인가?

​ 프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서 뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.

ex ) 혼잡제어(congestion - contral) 프로토콜 : 종단 시스템에서 송수신자 간의 전송되는 패킷률을 조절한다.

​ 라우터에서의 프로토콜 : 송신지에서 목적지까지 패킷의 경로를 설정한다.

1. 운영체제가 뭐길래

  • Operating System

    • a software that operates a computer system
  • Computer

    • A machine that proccesses the informatin
  • Information

    • Cladue Shannen

      • $$
        I(X) = - log_2{P(X)}
        $$

      • 정보의 양은 해당 정보의 확률의 로그를 취한것의 마이너스이다.

      • 정보 하나의 단위는 1bit이다.

    • A quantitative representation that measures the uncertainty

  • 컴퓨터가 정보를 처리하는 법

    • 정보의 최소 단위 : bit(binary digit)
      • 8 bit = 1byte
    • 정보의 처리 : 정보의 상태 변환 (0에서 1로, 1에서 0으로)
    • 부울 대수(Boolean Algebra) : NOT, AND, OR
    • 논리 게이트 : NOT, AND, OR, XOR, NAND, NOR
    • 논리 회로 : IC,LSI,VLSI,ULSI,SoC...
      • 무어의 법칙, 황의 법칙
    • 정보의 저장과 전송 : 플립 - 플롭, 데이터 버스
    • 범용성 : universality
      • NOT,AND,OR 게이트 만으로 모든 계산을 할 수 있다.
      • NAND 게이트만으로 모든 계산을 할 수 있다.
      • 범용 컴퓨터 : general - purpose computer
    • 계산 가능성 : computability
      • Turing-computable : 튜링 머신으로 계산 가능한 것
      • 정지 문제 : Halting Problem : 튜링머신으로 풀수 없는 문제
  • 튜링머신

  • 컴퓨터의 구조와 튜링 머신의 구조가 비슷하다.
  • 폰 노이만

    • A stored - program computer is
      • a computer that stores programs in memory

    • Instruction Set Architecture라 부른다
  • 프로그램

    • A program is a set of instructions
      • that tells a computer's hardware to perform a task
  • 운영체제

    • Operating System
      • is a program running at all times on the computer
      • to provide system services to application programs
      • to manage processes, resources, user interfaces and so on

1강 후기

기본적인 부분부터 알려주는 시간이었다 매일 1~2강씩 들으면서 정리해야겠다.

강의 주소

주니온 유튜브 운영체제 1강

Vue를 이용하면서 Node.js에 대한 환경을 잘 모르니깐 이 pakage.json이 무슨역할을 하는지 babel 같은게 무슨역할을 하는지 정확히 모르는 상태로, Vue에서 주어진 기본값 그대로 쓰다보니, 원하는 효과를 내기가 힘들었다.

 

그래서 Vanilla JS를 다시 공부하는 김에 Node.js에 대해서 공부를 해볼려고 위의 책을 샀다.

 

영어를 잘 못하는 관계롤 원어가 아닌 번역판을 샀다. 이 책을 읽으면서 공부한 것들을 정리하기로 하겠다.

 

목표는 주 1~2회 글을 올릴수 있도록 해보겠다.

+ Recent posts