본문 바로가기

ing

Section 1-2 웹 개발 기초(1)

반응형

<컴퓨터와 프로그래밍의 이해>
   목표

  • 컴퓨터의 구성 요소에 대해서 설명할 수 있다.
  • 프로그램을 실행하면 컴퓨터 내부에서 어떤 일이 일어나는지 이해할 수 있다.
  • 프로그래밍과 관련된 개념들을 설명할 수 있다.
  • 프로그램, 프로그래밍, 프로그래밍 언어, 컴파일, 빌드, 통합개발환경


1. 컴퓨터의 이해

컴퓨터 : 어떠한 입력을 일련의 계산을 통해 결과를 출력하는 기계

  • 입력 : 입력에 필요한 장치(키보드, 마우스 등)
  • 일련의 : 작업을 하기위한 툴(소프트웨어, 어플리케이션)
  • 계산 : 툴로 입력을 가공하는 작업(중앙처리장치(CPU))
  • 결과를 : 작업 후 산출물을 저장하는 기억장치(하드디스크, 램 등)
  • 출력하는 기계 : 출력을 나타내는 장치(모니터, 스피커 등)


따라서 실체하는 하드웨어와 그것들이 움직이는 규칙인 소프트웨어로 나눌수있다. 간단히 사람에 비교하면 소프트웨어는 의식 하드웨어는 신체로 생각할 수 있을 것 같다.


먼저 소프트웨어는 크게 시스템 소프트웨어(System Software)와 응용 소프트웨어(Application Software)로 나눠진다.

시스템 소프트웨어는 응용 소프트웨어의 실행 환경이자 하드웨어 장치를 관리한다.

응용 소프트웨어는 시스템 소프트웨어를 제외환 모든 소프트웨어인데 일반적으로 생각하는 프로그램이 여기에 속한다.


하드웨어는 여러가지 장치들이다.

 

중앙처리장치(Central Processing Unit, CPU)는 제어장치. 연산장치. 레지스터로 구성된다.

 

기억장치(Memory Device)는 주 기억장치와 보조 기억장치로 나눠진다.

주 기억장치는 프로그램 수행에 필요한 만큼만의 데이터를 읽고 쓰는 속도에 최적화가 되어있고 보조 기억장치는 속도보다는 많은 양을 저장하는 것에 최적화가 되어있다.

시스템 버스(System Bus)는 하드웨어 장치들간의 통로로 데이터버스, 주소버스, 제어버스로 구성되어있다.

그리고 입력 장치(Input Device) , 출력 장치(Output Device)가 있다.

 
하드웨어의 역할 혹은 용도 설명을 노예비유에 비유해보면 다음과 같다.

CPU = 노예 집합소

코어의 수 = 니가 부릴 노예의수
cf) i3/i5/i7 CPU : 노예 경력이 3/5/7년(실제 햇수가 아니다. 숫자가 큰게 좋다라는 느낌이라고 받아들이면 좋다.)

쓰레드 = 니가부릴 노예의 손 갯수
eg2) i7 - 10900 = 10년도생 노예의 손이 900개 = 7년 경력의 10년에 태어난 젊고 팔팔한 노예가 손이 900개라서 옥수수 수학도 빠름 

오버클럭 = 노예가 발까지 써가면서 옥수수를 수확하게 만듬
캐쉬 메모리 = 노예가 짊어지고 있는 바구니

램 = 노예가 준비한 리어카 = 많을수록 리어카가 한번에 창고로 가져가는게 쉬워져 작업이 잘됨

하드 디스크 = 수확한 옥수수를 저장하는 창고

파워 = 노예에게 주는 밥 = 일 많이 하는 놈한테 많이주고, 적게 하는 놈한테는 적게 줌 =  딱 마춰주면 가성비가 좋겠지만, 조금 여유있게 주면 서로 좋다 = 부족하면 굶어서 일을 못함

SSD = 최신식으로 겁나 좋은 저장창고

NVme ssd = 자동화 설비가 있는 겁나 좋은 창고, 옥수수 보관이나 꺼낼때 겁나 빠르게 꺼내옴, 안에 거중기 같은 노예들이 도와준다.

그래픽카드/GPU
= 옥수수 생산말고 다른 일을 시킬 노예들 = 감자 생산(모니터 픽셀마다 색을 넣는 것)에 특화되어 있는 노예

케이스 = 노예들의 기숙사, 쿨러란놈을 달아주면 시원해서 노예들이 일을 하기가 좋아짐
                                                                                                                                                         - 참조 : 웹페이지




2. 프로그래밍

프로그래밍이란?

  • 프로그램을 만드는 과정으로서, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어로 코드를 작성하는 과정

프로그래밍 언어

  • 사람의 언어와 컴퓨터의 언어는 다르기 때문에 사람의 언어를 컴퓨터가 알 수 있게 바꾼 매개물.

컴파일(Compile)

  • 프로그래밍 언어를 기계어로 변역하는 작업.

빌드(Build)

  • 컴파일을 포함한 소스코드를 실행 시킬 수 있는 프로그램으로 만들어주는 과정

통합개발환경(Integrated Development Environment, IDE)

  • 프로그래밍에 필요한 모든 작업을 하나의 프로그램 안에서 처리할 수 있도록 만들어진 프로그램

<웹>
학습 목표

  • 웹 클라이언트와 웹 서버가 무엇인지 설명할 수 있다.

 

리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨것 : 2티어 아키텍처 / 클라이언트-서버 아키텍처
cf) 2티어 아키텍처 + 데이터베이스 = 3티어 아키텍처

프론트엔드 : 클라이언트 쪽 개발자
백엔드 : 서버, 데이터베이스 쪽 개발자

클라이언트 : 웹사이트(웹 앱), 스마트폰/태블릿용 앱, 데스크탑 앱
서버 : 웹 서버, 파일 서버, 메일 서버, 데이터베이스 서버

반응형

'ing' 카테고리의 다른 글

웹 개발 용어정리  (0) 2024.02.20
웹 서비스 이론  (0) 2023.08.22
Section 1-2 웹 개발 기초(2)  (0) 2022.10.21
Section 1 -1 메타인지 & 페어프로그래밍  (0) 2022.10.20