스프링을 이해하기 위해 객체 지향 강의를 다시 찾았고,
객체 지향 강의를 이해하기 위해 자바 프로그래밍 강의를 다시 찾았고,
자바 프로그래밍 강의에 기본 지식이 되는 사전 지식을 다시 찾게 되었습니다.
01강 ~ 12강 전 강의를 스트레이트로 수강 후
메모하고자 하는 내용 정리하였습니다!!!
01강 프로그래밍이란?
- pro(사전에) + gram(기록).
프로그램이란 사전에 수행한 절차를 기록해놓은 것.
- pro(사전에) + gram(기록).
프로그램이란 사전에 수행한 절차를 기록해놓은 것.
02강 컴퓨터란?
- 컴퓨터 플랫폼.
- 컴퓨터의 구성.
- 중앙 처리 장치(CPU)
- 산술/논리 연산
- 흐름 제어
- 주기억장치(Memory)
- 임시 저장소
- 다양한 입/출력장치(HDD/ODD/...)
- 데이터 소스 / 영구 저장소
- 기본 입 출력 장치 : 키보드/모니터 => 기계를 다루기 위한 기계 = 콘솔
- 중앙 처리 장치(CPU)
- 컴퓨터란 CPU Memory 다양한 입출력 장치를 합친 것!
03강 컴퓨터 프로그래밍이란?
- 컴퓨터 프로그램이란, 컴퓨터를 이용한 절차를 만들어 놓은 것.
- 컴퓨터의 요소들로 절차를 만들어 놓은 것.
시작! 부터 끝까지 요소들을 활용한 절차. - CPU 라는 요소 내 CU(Control Unit) 가 반복 절차를 가능하게 함을 기억.
04강 CPU란?
- ALU : 연산자
- CU : 반복 절차 처리 유닛
- 레지스터 : 메모리로 가기 전 데이터의 임시 저장 공간.
- 캐시 : 메모리보단 빠른, CPU에 맞춰줄 수 있는 공간을 캐시로써 사용함.
- 다양한 입 출력 장치를 통해 데이터를 메모리에 담았다가
> CPU는 메모리에서 데이터를 가져와 산술/논리 연산을 하고, 반복적으로 하는 것
이 것이 일반적으로 우리가 사용하는 프로그램의 형태라고 볼 수 있습니다.
06강 번역기를 이용한 컴퓨터 프로그래밍 언어들
- 대부분의 언어는 C계열이다!
07강 번역기의 종류
08강 고급언어를 이용한 컴퓨터 프로그래밍
- 앞서 언급했던 프로그램이 요소들을 이용해서 절차를 만드는 그림에서,
번역기를 통해 고급언어와 요소들이 어떻게 동작하는지에 대한 이미지입니다.
09강 고급언어의 API란?
- Interface. 어떤 장치를 사용하기 위한 간접적인 접근 도구.
- API(Application Programming Interface) : 어플리케이션이 프로그램을 만들 때 입출력 도구에 대해서 직접 사용하는 것이 아니라 약속되어 있는 형태로 간접적으로 사용하기 위한 것.
- 프로그램을 만들면서 입력하는 장치가 달라질 수 있다는 것을 염두해 두고,
키보드, CD, 프린터, CD 라이터기 등.. 이것을 어떻게 처리할 지 고민했습니다.
프로그램을 만들면서 입력/출력 동작 부분이 장치에 의해, 장치에 맞게 바뀐다는 것은 말이 안되는 것이기 때문에
아예 차단을 합니다. 대신 간접적인 도구 접근을 사용하게 합니다.
10강 API를 실현하기 위한 구현체 / API와 플랫폼의 관계
- API는 플랫폼을 사용하기 위한, 플랫폼을 제공하기 위한 도구로써 사용됩니다.
11강 프로그래밍에서 함수가 제공하는 능력 3가지
- 함수의 능력.
- 코드 파편화 : 코드 분리 효과
- 코드 집중화 : 간편해진 코드
- 코드 은닉화 : 함수 내 코드를 몰라도 됨.
- 플랫폼과 API 의 관계.
- 프로그램은 같은 API 를 사용하며, 플랫폼(모니터, CD 등)은 [드라이버]를 통해 같은 API 를 제공하여
프로그램이 플랫폼 또는 장치에 따라 변환할 필요가 없게 된다! 함수에 의한 간접적 사용이 가능하다!
- 프로그램은 같은 API 를 사용하며, 플랫폼(모니터, CD 등)은 [드라이버]를 통해 같은 API 를 제공하여
- API 란 간접적으로 제공하는 인터페이스이기 때문에
함수 == API 는 아니다.
함수는 함수고, API 가 함수 형태로 지원될 수도 있기 때문에
함수가 API 일 수도 있고, 아닐 수도 있다!
12강 어떤 언어로 프로그래밍을 시작할 것인가?
- 내가 만들고자 하는것이 무엇인가, 운영체제 기반인가? 등.
- 최적화되어 필요한 것이 무엇인지를 생각하는 것이 원론적임!
- 어떤 언어로 시작할 것인가?
- 현존하는 언어 중에서 C 에서 파생되지 않은 언어는 많지 않습니다.
- 원론적으로 첫 걸음부터 다가가는 편의 C를 강사님은 추천.
'Room 101. 개발 지식 관련 > 기타' 카테고리의 다른 글
"Cloud 라는게 뭐야?" (0) | 2019.07.24 |
---|