Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-11 00:15
Archives
Today
Total
관리 메뉴

Developer_Neo

[코드스테이츠 백엔드 2기(40기) SEB BE] 2일차 Daily 회고록 본문

코드스테이츠

[코드스테이츠 백엔드 2기(40기) SEB BE] 2일차 Daily 회고록

_Neo_ 2022. 6. 24. 10:48
반응형

오늘 나의 학습 목표는 무엇인가요?

       컴퓨터와 프로그래밍의 이해, 웹 클라리언트와 웹 서버에 대해 이해하고, IntelliJ 환경 setting하기

 

오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요?

      IntelliJ는 미리 깔려있고 사용도 많이 해왔기에 이것은 할 필요가 없다.

      이것 이외의 것은 생각해봤을 때 설명을 다른사람에게 못하는 나를 발견하였다.


컴퓨터와 프로그래밍의 이해


컴퓨터의 이해

출처 : HP코리아 컴퓨터 사진

컴퓨터란

- 입력 받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력해줌

- 중앙처리장치를 통해 정해진 규칙대로 연산을 수행하고 이 연산을 기억장치에 저장한다.

- 기억장치에 저장된 것이거나 연산을 한 결과를 출력장치를 통해 출력한다.

 

 

컴퓨터의 구성 요소

  • 소프트웨어
    • 시스템소프트웨어
      • 하드웨어를 컨트롤 할 수 있는 소프트웨어
      • 종류 :운영체제(OS, operating system), 링커(linker), 로더(loader), 컴파일러(compiler), 어셈블러(assembler), 유틸리티(utility)
    • 응용소프트웨어
      • 시스템 소프트웨어를 제외한 모든 소프트웨어
      • 애플리케이션 및 앱
  • 하드웨어
    • 컴퓨터를 구성하는 기계적 장치들의 집합
    • 종류 : 중앙처리장치(CPU), 기억장치, 입력장치, 출력장치, 시스템 버스
    • CPU vs Processor
      • CPU  : 기억, 연산, 제어를 담당 (레지스터 포함)
      • Processor : CPU와 같은의미로 사용하는데  CPU+ MMU+Cache를 합친 것이라고 이야기를 한다
        • MMU : CPU코어 안에 탑재되어 가상주소를 실제 메모리주소로 변환해주는 장치
    • 기억장치
      • 보조기억장치
        • 반영구적으로 저장
        • 데이터 읽고 쓰는 속도가 느림
        • CPU연산속도는 매우 빠르지만 보조기억장치는 느려서 CPU는 보조기억장치와 직접적으로 소통하지 않는다.
        • 종류 : SSD, HDD
        • 하지만 CPU가 보조기억장치에 접근해야하는 경우가 있는데 이때 Disk Access가 일어난다고 하며, 시간을 많이 잡아먹게 된다. 이런것을 줄이고자 Cache, RAM을 사용한다.
      • 주기억장치
        • 큰 용량 데이터 저장 불가하지만 데이터 읽고 쓰는 속도가 빠르다
        • CPU는 주기억장치와 직접적으로 소통한다. 이렇게 함으로써 Disk Access횟수를 줄인다.
      • 캐시메모리
        • Cache는 재사용가능성이 높은 데이터를 주기억장치또는 보조기억장치에서 가져와 저장해놓고 있는 것이다.
        • 바로바로 쓸수 있으며 CPU의 연산속도만큼 빠를 수 있다.
    • 시스템 버스
      • 데이터 버스, 주소 버스, 제어 버스
      • 데이터 버스
        • 시스템 모듈들 간의 데이터 이동 경로 제공
      • 주소버스
        • 이것의 폭은 최대 기억장치의 용량을결정지어준다.
        • 데이터 주소에 대한 정보 전달
      • 제어버스
        • 데이터버스와 주소버스를 제어하기 위해 사용

프로그래밍의 이해

프로그래밍이란

-  프로그램을 만드는 과정으로서, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정을 의미한다.

 

프로그래밍 언어

- 컴퓨터는 기계어를 사용하는데 사람이 보기에 이해하기 어렵다. 이렇기에 프로그래밍 언어는 컴퓨터의 언어와 사람의 언어를 매개해주는 언어이다.

 

peter의 우아한 프로그래밍 블로그 중 사진

 

컴파일러

- 소스코드가 전처리기를 거쳐 완전한 소스코드가 되었다면 어셈블리어 코드로 변환시켜주는 것이다.

 

어셈블러

- 어셈블리어 코드를 기계어로 번역시켜주는 것이다.

 

링커

- 프로그램을 빌드하는 과정에서 하나의 프로그램을 돌리는데 여러 소스코드들과 데이터가 필요할 수 있다. 이것들을 모아서 연결시킨 실행될 수 있는 하나의 프로그램파일을 만드는 것이다.

 

전처리기

- 내부소스 코드에서 버전관리, 이미 작성된 다른 라이브러리 가져오기, 함수정의, 상수정의 등의 목적을 수행

 

어셈블리어

- 컴퓨터 구조과목에서 배울 수 있는 것으로  MOV, START, ADD 이런것들로 기계어로 번역되기 이전의 것이다

- 어셈블리어코드를 우리가 작성할 수 도 있다.

 

 

 

cf) c언어에서 gcc를 사용하고 makefile이라는 것을 직접 작성하고 사용해보면 조금 감이 잡힐 수도 있다.

 


클라이언트와 서버의 이해

 

서버, 서비스란?

- https://devloper-dreaming.tistory.com/108

 

서버, 서비스란?

서버란 Serv + er이 붙어져서 만들어진 것으로 무언가를 제공하는 것이다. 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(

devloper-dreaming.tistory.com

2티어 계층 구조

위의 경우에는 2티어 계층 구조라고 합니다.

클라이언트에서 서버에 요청을 하게 되고 서버가 응답을 클라이언트에게 넘겨주는 역할입니다.

 

3티어 계층 구조

위의 경우에는 3티어 계층 구조라고 합니다. 보통의 실제 서비스들은 3티어 계층 구조입니다.

동작방식과 순서를 알아보자

  1. 클라이언트가 서버에 request (파일을 주세요, 로그인..)
  2. 서버 프로그램(서버)이 client에게 알맞는 response를 주기 위해 request에 따른 맞는 파일을 해석할 수 있는 Backend Language에게 찾아달라고 서버프로그램이 request.
  3. Backend Language는 파일을 해석하여 DB에 query를 날린다.
  4. DB는 query에 대한 결과를 Backend Language에게 Response로 준다
  5. Backend Language는 받은 결과와 코드를 요청에 따른 맞는 파일로 변경해 서버프로그램에 Response
  6. 서버프로그램은 받은 Response를 Client에게 호환되게 Response한다.

 

Web Server(WS) Vs Web Application Server(WAS)

Web Server(WS)

  • 정적컨텐츠(단순 HTML, 문서, CSS, JavaScript, 이미지, 파일)를 제공하는 서버
  • 웹 브라우저 클라이언트로부터 HTTP요청을 받아들이고 HTML문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램

 

Web Application Server(WAS)

  • 인터넷 상에서 HTTP프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서 주로 동적 서버 컨텐츠를 수행하는 것으로 데이터베이스 서버와 같이 수행된다.

 

더 자세한 정보는 https://codechasseur.tistory.com/25이 블로그에서 알아보면 좋을 것같다

 

[Web] 웹 서버와 WAS의 차이를 쉽게 알아보자

서버 개발에 있어서 가장 기초적인 개념인 '웹 서버'와 'WAS(Web Application Servier)'의 차이점을 다뤄보려고 한다. 💡 웹 서버 사전적 정의 "웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML

codechasseur.tistory.com


  • 오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요?

       - 시스템 버스에 관한 이야기이다.

  • 오늘 새롭게 학습한 내용을 다른 사람에게 설명할 수 있나요?

      - 외우지는 못했지만 노력해봐야겠다

  • 오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요?

     - 시스템 버스에 대한 자세한 내용을 모르겠다

  • 이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요?

     - 유투브를 찾아보고 글들을 찾아본다

  • 나의 오늘 학습 만족도는 몇 점인가요?

     - 90점 (아는 내용들이라고 설렁설렁 넘어간 것들이 있는 것같다.)

 

3티어 계층 구조 사진 출처: https://docs.aws.amazon.com/ko_kr/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/three-tier-architecture-overview.html

 

반응형
Comments