html,자바 등 강의를 보다보면 컴퓨터 기초를 몰라서 답답해지는 일들이 생긴다.
그래서 간간히 추천받은 강의를 봐야겠다. 길고 깊게 파면 자바 회피용이 된다.
컴맹을 위한 Go언어 기초 프로그래밍 1~6 강의
https://youtu.be/Tq3W8UyltFs
-> 컴퓨터의 근본!
-> 전기 흐름을 증폭하여 원하는만큼 스위치 켜고 끄는 반도체 소자
-> 0, 1을 표현할 수 있다.
-> 1bit = 1트랜지스터..복잡도가 커질수록 많이 필요
-> 트랜지스터 증폭원리를 찾아보면 재밌을 것이다
-> BOOL대수를 만들 수 있다
(두 입력값의 참/거짓 여부에 따라 결과값 달라지는 애들: and,x/or,not)
-> 만드는 방법..은 좀 어렵다
-> 옴의 법칙: 저항이 클수록 물체에 전기가 흐르지 않는다 -> 부/도체로 이를 구분하는데..
트랜지스터는 전류가 흐를 때는 도체, 안 흐를 때는 부도체가 됨 -> 반도체라 함
-> 뒷부분 적기가 좀 곤란하다. 논리소자 원리?
트랜지스터 ~ 논리소자 ~ 계산기 ~ 컴퓨터
프로그램: 명령과 순서 쓴 문서....에 써져 있는 글이 프로그래밍 언어
인간의 언어(고급언어: c,자바 등)를 기계가 알아듣는 언어(기계어)로 변환해야 컴퓨터 작동
가능, 이 중 변환이 쉬운 언어를 어셈블리어라 함, 변환기는 compiler
프로그래머 -> 코딩 -> 빌드(변환) -> 기계어
명령어에 숫자 대입한 것 : OPCODE(예. ADD= 0001 이런 식으로)
- 컴파일 언어
C, C++, GO / 코딩 -> 빌드 -> 기계어, 기계어를 한번에 만든다 / 속도 빠름
- 동적 언어
C#, JAVA, JS, PYTHON / 코딩 -> 빌드?->중간언어 문서 (->필요한 것 그때그때 기계어로)
C#, JAVA는 중간과정 필요, 완성도 높다.
첫 언어 C추천
(이랬다가 포기했었던 아픈 역사가 떠오른다)
프로그램 기본은 빠른 컴파일 언어로, UI등은 동적 언어로 만들고는 한다.