[웹개발] Development 웹개발 - 컴퓨터와 프로그래밍의 이해

kai6666·2022년 4월 26일
0

TIL. 웹개발

목록 보기
1/3
post-thumbnail

컴퓨터의 정의

컴퓨터는 입력된 데이터를 정해진 규칙대로 처리하고 처리한 결과를 저장하고 출력하는 전자 장치이다.

구성요소

소프트웨어

  • 시스템 소프트웨어
    응용 소프트웨어가 작동하기 위한 플랫폼 역할, 하드웨어 장치와 직접 소통
    ex. 운영체제, 런타임 환경, 프린터 드라이버, USB 드라이버 등
  • 응용 소프트웨어
    시스템 소프트웨어를 제외한 모든 소프트웨어
    ex. 애플리케이션, 게임 등

하드웨어

  • 중앙처리장치(CPU/프로세서)
    - 제어장치: 컴퓨터의 모든 동작과 데이터 흐름, 자원 관리
    - 연산장치: 프로그램에 기술된 명령어 실행 (코드를 실행하는 곳)
    - 레지스터: 작고 빠른 기억 장치, 연산에 필요한 데이터를 임시 보관
  • 처리 장치
    - 주기억장치: ROM, RAM 같이 처리 속도가 빠른 기억 장치. 프로그램 수행시 필요한 정보를 저장(CPU 속도를 어느정도 따라가서 CPU랑 소통O)
    - 보조기억장치: 용량이 커 컴퓨터에 필요한 정보를 반영구 저장하지만, 처리 속도는 느린 기억 장치(CPU와 직접 소통X, ex. SSD HDD)
  • 출력 장치: 사람이 이해할 수 있는 형태로 처리 결과 출력
    ex. 스피커, 모니터 등
  • 입력 장치: 마이크, 키보드, 마우스 등
  • 시스템 버스: CPU를 포함한 각 하드웨어 간 연결 통로
    - 데이터 버스: 하드웨어 간 데이터 전달 통로
    - 주소 버스: 데이터가 도착해야하는 주소 정보를 전하는 통로
    - 제어 버스: 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로

컴퓨터 동작

응용 프로그램을 실행하면 생기는 일:
1. 운영체제가 프로그램을 보조기억장치에서 주기억장치의 RAM으로 로드시킨다. (=메모리에 적재)
2. 모니터 상에 실행중인 프로그램에 출력된다.
3. 입력장치를 통해 데이터를 입력하고 처리를 누르면, CPU는 프로그램의 소스코드에 작성된 명령어 토대로 데이터를 처리한다.
4. 그 결과를 주기억장치에 저장 후 출력한다.

프로그래밍의 이해

  • 프로그램: 프로그래밍으로 만들어진 결과물 ("컴퓨터 명령문의 집합체")
  • 프로그래밍: 어떤 목적을 달성하기 위해 설계된 알고리즘을 "프로그래밍 언어를 사용하여" 코드를 작성하는 것
  • 프로그래밍 언어: 기계어와 사람의 언어를 매개해주는 언어
  • 컴파일: 소스 코드를 기계어 코드로 번역해주는 작업
  • 빌드: 컴파일을 포함한 개념으로, 작성하고 번역된 코드의 집합체를 .msi, .exe 같은 "확장자를 가진 실행 파일" 형태로 만들어서 실행 가능한 프로그램으로 만드는 과정
  • 통합개발환경(IDE): 코드 작성 뿐만 아니라 컴파일 등 프로그램을 만들 때 필요한 다양한 동작을 할 수 있는 환경. 이클립스, 인텔리제이 등이 여기에 해당.

클라이언트 서버 아키텍처 aka 2티어 아키텍처

소스가 존재하는 곳(서버)와 리소스를 사용하는 앱(클라이언트)를 분리시킨 것

3티어 아키텍처

2티어에 데이터베이스 추가. 보통 서버는 데이터를 전달해주고, 데이터베이스에 데이터를 저장한다.

클라이언트? 서버?

  • 클라이언트: 웹사이트(웹앱), 모바일 앱, 데스크톱 앱 (플랫폼따라 구분)
  • 서버: 웹 서버, 파일 서버, 메일 서버, 데이터베이스 서버

🌟학습 회고🌟
컴활1급 딸 때 공부했던 내용이라 낯선 개념은 없었다. 다만 이제는 휘발성 지식이 아니라 기초 지식으로 계속 머리에 기억해둬야겠다고 다짐하며, 개념을 꼼꼼히 이해하려고 노력했다. 기초 지식인만큼 소화하지 못한 내용은 아직 없다.

profile
성장 아카이브

0개의 댓글