우선 컴퓨터공학에는 소프트웨어 하드웨어 두 분야를 같이 다룬다
기업에서는 소프트웨어의 최신버전보다 안전성을 중요시함
시니어와 주니어를 나누는 기준은 연차의 기준이 아니다 이유는 전문적인 기술력의 차이이면서 타 직업의 이해도와 직무의 대한 노련함이 생기는 경험에 의한 안목이 생길때 시니어라고 불릴수있다
본인의 특기 분야 이외 지식들을 접목시킨다면 좋은시니어가 될수 있다.
포부 : 본인의 설계, 발전방향성 등 구체적이면서 이상적인 생각을 자소서에 적어두는게 좋다
CS지식은 시대에 변화에 따라 같이 변화기 때문에 본인도 가지고 있는 CS지식을 변화에 맞춰 가는게 좋다
이미테이션 게임 영화에 나온 앨린튜링은 CS에 ai시초 를 기여한 인물이기도 하다 그래서 ai와 사람이 대답하는게 비슷함을 테스트하는 튜링테스트도 있다
튜링테스트를 첫통과한게 최근 2014년이 최초이며 상용화된건 2023년이 시발점이라고 한다
존 폰 노이만: 구형 ENIAC(애니악), 하버드 마크2 등 개발함 컴퓨터를 기계공학에서 전자공학으로 변형하고 프로그램을 내장형으로 제안하는등 현대컴퓨터의 시초이자 현재까지 쓰이는 구조를 개발한 사람임
ai가 인간을 능가하는 시점을 특이점 이란 단어를 제시한것도 폰 노이만이다
게임이론도 폰 노이만이 제시함
아래 폰 노이만이 현대 컴퓨터의 구조를 만들어낸 그림이있다
입력장치 : 옛날 컴퓨터 혹은 연산장치에 입력은 천공카드같은 명령어 카드를 사용하여 입력을 행했다 왜냐면 처음엔 이진법방식을 바꾸어 사용하는 기술이 없었다 현대까지 이진법을 코드로 담는 기술력이 발전하면서 지금의 코딩이 만들어젔다
cpu(연산장치) :
1. 비트메모리 : 기억시키고자 하는 데이터 + 기억여부 0 또는 1이 들어오면 저장 가능함
저장만 하던 구조에서 무한연속적인 출력만 하던 구조에서 필요에 따라 출력을 조절 할수있게 하는 구조로 변했고 이 구조는 레지스터로 불린다.
버스가 많은 하드웨어가 메인보드다.
비트 - 0,1 둘중 하나
바이트 - 1바이트 == 8비트
비트에서 바이트로 오게된 계기 : ASCII(아스키)코드 같이 컴퓨터언어를 사람이 사용하는 문자열을 구현하기 위한 과정중 발생했다
레지스터의 순서가 꼬여 계속 실행되는 순간 쓰레기 데이터가 쌓이게 되는데 이걸 방지하기 위해 각 레지스터 마다 클럭이라는 기술을 접목시키게 된다
클럭은 각 레지스터의 실행을 담당하는데 실행과 꺼짐을 각각 실행하기위해 레지스터마다 달려있다.
오버클럭 : 같은 초내에 더욱 빠르게 클럭속도를 올리는 작업(단점: 호환은 못할시 잘못된 순서가 발생하여 쓰레기 데이터가 쌓이면서 하드웨어가 돌발상황을 일을킬수있다)
디코더는 모든 데이터를 컴퓨터가 이해가능한 이진법 방식으로 변환해주는 방식이다.
`
컴퓨터의 하드웨어의 한 부품으로 컴퓨터의 전기를 공급하는 역할을 한다.
CS예상 질문 : 쓰레드가 뭔지 설명, 프로세스와 차이는?
소프트웨어적 쓰레드와 하드웨어적 쓰레드는 차이가 있는데 소프트웨어는 하나의 작업(코드)의 흐름을 말하고 하드웨어는 물리적인 의미에서 cpu에서 쓰인다.*(unity는 단일 쓰레드로 처리한다.)
CPU의 최대 클럭과 다른 하드웨어와 관계성으로 cpu 클럭보다 값이 큰 연산을 처리해야할때 병목현상이 발생한다.
RAM : 주 기억장치로 주소값을 통해 저장하며 보조기억장치에 안들어간 메모리는 전원이 꺼짐과 동시에 제거된다 이것을 휘발성이라 한다.
보조기억장치(HDD, SSD) : RAM의 휘발성을 개선한 장치이지만 속도는 RAM보다 느리다 그래서 컴퓨터는 RAM, 보조기억장치 둘을 혼합하여 사용한다.
메인보드 : 파워서플라이에서 받은 전력을 메인보드에 연결된 하드웨어에 전력을 분배해준다.
입력장치 : 키보드, 마우스, 카메라, 마이크 등등 있음
출력장치 : 스피커, 모니터 등등 있음
응용프로그램 : 하드웨어의 사양에 따라 운영체제에서 실행 가능한 각종 프로그램
부팅과정 : 전원 - 파워(전력공급) - 메인보드 - 메인보드의 바이오스 실행 - 보조기억장치들의 부팅 데이터를 불러옴 MBR(Master Boot Record) - 부팅당시 각 하드웨어 해당되는 드라이버들을 불러옴 - 운영체제 작동
바이오스 : 전력이 들어올때 메인보드의 부착된 하드웨어의 동작에 문제가 없는지 검사를 한다.
컴파일 과정 : 사람이 쓴 코드(소스코드)를 컴파일러가 컴퓨터 언어(이진법, 기계어)로 번역되어서 Object 코드가 됨.
Object Code : 사람이 코드를 쓰고 저장하면 .obj 확장명을 가진 파일이 만들어짐.
Linker : 모든 Obect Code를 취합하는 역할을함
Loader : 로더에 의해 실행된 프로그램은 메모리에 올라간다 Loader의 의해 콘솔창에 올라간 실행중인 프로그램은 프로세스라고 불린다.
부동 소수점의 단점 : 제곱근 표현이 어렵고, 소수점 근사값밖에 표현이 안됨
'개발관련공부자료' 카테고리의 다른 글
오버헤드(Overhead)에 관하여 (0) | 2023.10.05 |
---|---|
자료구조 (0) | 2023.10.05 |
객체지향 프로그래밍 (0) | 2023.09.22 |
메모리 구조 (0) | 2023.09.22 |
클래스 (Class) (0) | 2023.09.22 |