22년 백엔드 로드맵

Ik·2023년 1월 5일
0

CS

목록 보기
5/27

22년 백엔드 로드맵과 그에 따른 간략한 이해를 정리하고자 글을 쓴다




로드맵

22년 로드맵이고 노란색 박스를 기준으로 진행하려 한다






1. 인터넷

  • 네트워크 모음(대부분 TCP)
  • 컴퓨터간 정보 교환 할 수 있게 하는 통신 인프라

TCP

  • 전송 제어 프로토콜
  • IP 패킷 데이터 스트림으로 결합해 양방향 교환
    • 패킷 : 정보 덩어리
    • 데이터 스트림 : 패킷의 묶음

종류

  • HTTP
    • Web에 사용되며 Web은 인터넷의 특수한 경우라 생각하면 된다
    • 이 때 브라우저 <=> 서버 구조로 데이터가 오고 가며 브라우저는 서버에 요청을 하고 받은 데이터를 HTML로 표시해주는 역할
  • P2P
  • Telnet
  • SSH

IP

  • 인터넷 데이터 교환에서 최소한의 프로토콜
  • 네트워크 공통어라 생각하면 된다

DN

  • ip 주소에 네이밍하는 것을 의미

DNS

  • ip <=> DN 변환해주는 대규모 분산 DB

구성

  1. Domain Name Space
  2. Name Server : 권한 있는 DNS 서버
  3. Resolver : 권한 없는 DNS 서버

방식

  1. 웹 브라우저 --(요청)--> 해결사 서버 --(요청)--> Name Server
    • Name Server에서 가비아 서버로 요청하라고 응답
  2. 해결사 서버 --(요청)--> 가비아 서버
    • 가비아 서버는 해결사 서버에 응답
  3. 해결사 서버 --(응답)--> 웹 브라우저

호스팅

  • 서버 임대 서비스
  • 임대 업체가 미리 구상해 놓은 서비스 임대해 사용하는 것을 의미






2. 프론트엔드 기본 지식

HTML

  • Hyper Text Markup Language
    • Hyper Text : 텍스트 초월, 링크(단순히 텍스트로서의 역할 이상)
    • Markup Language : 프로그램 언어로 정보를 구체적으로 표현 가능
      • ex) XML, SGML, XHTML 등
  • 태그들로 구성
    • 태그 : 가장 중요하고 기본이 되는 규칙으로 내부에 속성 포함 가능
    • 속성 : 이름 + 값으로 이루어져 있고 태그에 추가적인 정보 더하거나 태그의 동작이나 표현 제어

CSS

  • Cascading Style Sheets
  • HTML을 포함한 마크 다운 언어 꾸며주는 표현용 언어
  • HTML이 문서의 정보, 구조를 설계한다면 CSS는 문서를 보기 좋게 디자인하는 역할
  • HTML과 독립적이지만 HTML이 없으면 존재의미 없음
  • 전세계 수 많은 페이지가 모두 HTML로 이루어져 있고 그 중 자주 사용되는 태그는 10여개 밖에 않된다
    • 결국 홈페이지의 차이점을 만드는 언어는 CSS

JS

  • JavaScript
  • 웹 페이지 동적인 효과
  • 객체 기반의 스크립트 언어
    • 스크립트 언어 : 기존에 이미 존재하는 소프트웨어를 제어하기 위한 용도
  • 동적이며 타입 명시 필요 없는 인터프리터 언어
  • 객체 지향형 프로그래밍과 함수형 프로그래밍 모두 표현 가능
  • 모든 브라우저의 포함되어 있어 소프트웨어 별도 다운 필요 X
    • JS 인터프리터가 포함되어 있다는 의미
  • 광범위한 언어군
    • Node.js 프레임워크 이용하면 서버 측 프로그래밍도 가능
  • Java와 마찬가지로 C문법 기반으로 만듬

ref






3. OS에 대한 전반적인 지식

OS

  • Operating System
  • 사용자가 컴퓨터를 편리하고 효과적으로 다룰 수 있는 환경 제공
    • 효과적인 사용 위해선 HW detail, HW access code 알아야되는데 OS에서 대신해줌
  • 컴퓨터 자원 관리, 사용자 <=> 하드웨어 사이의 인터페이스
  • 여러 프로그램들을 실행 가능하게 해준다(스케줄링)
  • 다양한 API 제공
    • 이는 App이 HW detail 알지 못해도 가동 가능하게끔 해준다
    • OS가 App이 HW를 사용하는데 있어 호환 가능하게끔 해준다 보면된다
User
App
OS
Hard Ware
  • Program은 실행하면 Program이 memory에 load되고 cpu에 의해 실행된다
    • memory에 load되고 cpu에 의해 실행, 이를 process라 칭한다(=program이 hw resource에 할당되는 것)
    • program 실행할 때마다 생성
    • 컴퓨터 내부에 1개의 program, 다수의 process 존재

구성

  • kernel과 other component로 구성

kernel

  • HW resource
    • cpu
    • Disk(Data 영구 저장) : program 저장소
    • input, output
    • memory(Data 영구 X)
  • manages
    • process, memory, I/O
  • synchronization & communication
  • allocates
  • schedules

other component

  • file system
  • network protocol
  • lib 등

역할




콘솔

  • 서버의 로컬 장치에서 직접 명령어를 작성할 수 있는 입, 출력 장치

터미널

  • 단말기라고도 부름
  • 데이터를 입력하거나 표시하는 기능
  • GUI 시스템 위에서 동작하는 CIL
  • 서버의 로컬 또는 원격으로 접속할 수 있는 콘솔을 구현한 소프트웨어

Shell

  • 실제 명령어를 전달하고 결과를 받는 프로그램
  • CLI 명령어 처리하고 결과 출력
  • 해석기라고 보면 된다
  • SSH(Secure SHell)도 shell 종류 중에 하나
  • linux, unix의 명령어 처리 프로그램도 shell이라 부르기도 함

종류

  • GUI(Graphical User Interface) : 마우스 등을 이용해 컴퓨터 조작, 그래픽 쉘이라고도 부르며 현재 주로 사용
  • CLI(Command Line Interface) : 터미널에서 텍스트를 이용해 조작, 명령줄 쉘이라 부르며 GUI 이전에 많이 사용, Unix 종류는 아직도 사용, 사용 위해서는 터미널 필요

결과적으로 터미널은 사용자가 입력하고 컴퓨터가 출력하는 내용을 볼 수 있는 인터페이스이며 쉘은 사용자가 입력한 명령어를 컴퓨터의 언어로 번역해 컴퓨터에게 전달해주고 컴퓨터의 응답을 받아오는 소프트웨어를 의미

ref 1

0개의 댓글