입력 -> 규칙대로 처리 -> 결과 저장 및 출력
소프트웨어 + 하드웨어
시스템 소프트웨어 + 응용 소프트웨어
-응용 소프트웨어 : 시스템소프트웨어를 제외한 모든 소프트웨어.
중앙처리장치, 기억장치, 입력장치, 출력장치
시스템버스
제어장치, 연산장치, 레지스터
- 제어장치 : CPU의 모든동작, 데이터 통제 및 관리, 운영체제와 소통
- 연산장치 : 프로그램 명령어 수행
- 레지스터 : 작고 빠른 CPU 기억장치. 연산장치에 필요한 데이터 임시보관 및 제공
보조기억장치, 주기억장치
- 보조기억장치 : 반영구적 저장, 용량은 크지만 속도는 느림, 속도가 느려 CPU와 소통불가, SSD(Solid State Drive), HDD(Hard Disk Drive)
- 주기억장치 : 프로그램수행에 필요한 데이터 저장, 용량은 작지만 속도가 빠름, 빠른 속도로 CPU와 소통가능, RAM(Random Access Memory), ROM(Read Only Memory)
전원 on -> 운영체제가 보조기억장치에 저장된 프로그램을 주기억장치(RAM)에 로드.(로딩) -> 모니터 출력 -> 입력장치를 통해 입력 - > CPU에서 코드 해석 및 계산 -> 주기억장치에 결과저장 -> 모니터출력
프로그램을 만드는 과정. 프로그래밍 언어를 사용해 코드작성하는 과정.
프로그래밍의 결과. 컴퓨터 명령문 집합체.
컴퓨터의 언어와 사람의 언어를 연결해주는 언어
프로그래밍 언어로 작성된 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정
작성한 소스코드를 실행할 수 있는 산출물로 변환시키는 과정
- 컴파일도 빌드과정의 일부.
- 컴파일 된 코드는 컴퓨터가 이해할 뿐, 실행불가.
- 실행할 수 있도록 .exe 또는 .msi 확장자를 가진 파일로 만드는게 빌드 과정.
IDE는 코드작성 프로그램. 디버깅,빌드 등의 작업을 하나의 IDE안에서 할수있다. VS code, IntelliJ, Eclipse 등
클라이언트 - 서버 아키텍처
리소스가 존재하는곳과 사용하는곳을 분리시킨것.
클라이언트 -> 서버 : 사용 및 요청
서버 -> 클라이언트 : 응답 및 제공
서버는 리소스를 전달해주는 역할.
리소스를 저장하는 공간은 "데이터베이스"
2티어 아키텍처에 데이터베이스가 추가되면 3티어 아키텍처.
이렇게 2일차가 끝났다!
오늘은 개발을 하기위해서 알아두면 좋은 기본적인 지식들을 공부했다.
워낙 기계를 좋아했던 터라서 아는 부분을 다시한번 짚어보고, 몰랐던 부분까지도 하나하나 알아가는게 너무 재미있었다!!
컴퓨터는 굉장히 단순하면서도 복잡한 이중적인것같다.
구성요소는 많으면서도 시킨일밖에 해내지 못한다는게 정말 재미있는 부분이다.