Search
😶‍🌫️

[혼공컴운] Ch1. 컴퓨터구조 큰 그림

 컴퓨터 구조를 알아야 하는 이유

프로그래밍 언어의 문법만 알고 있다면, 컴퓨터란 코드를 입력하면 어찌어찌 알아서 결과물을 툭 내놓는 ‘미지의 대상’이다.
컴퓨터구조를 알고 컴퓨터가 ‘미지의 대상’이 아닌 ‘분석의 대상’이 된다면, 문제 상황을 빠르게 진단하고 해결의 실마리를 다양하게 찾을 수 있다.
예산이 한정된 상황에서 프로그램을 위한 최적의 컴퓨터 환경을 스스로 판단할 수 있어야 한다.
상황) 서버 컴퓨터 구매 또는 클라우드 서버에서 CPU, 메모리, 저장용량 선택
어떤 선택으로 하는지에 따라 성능, 용량, 비용이 달라진다.
에러가 발생한 상황에서 컴퓨터 구조를 모를 때와 알 때 상황
1.
스택 오버플로우
함수가 무한 재귀 호출되거나, 너무 많은 지역 변수를 사용하면 프로그램이 비정상적으로 종료된다.
문법적 관점: "재귀를 많이 돌려서 그런가?" 정도의 판단밖에 못 함.
컴퓨터 구조 관점: 프로그램의 실행 시 콜 스택(Call Stack) 에 쌓이는 함수 호출이 한계를 초과하면 스택 오버플로우가 발생함. 대부분의 시스템에서는 스택 크기가 제한되어 있고, 무한 재귀나 너무 깊은 함수 호출은 스택 메모리 초과로 이어질 수 있음.
2.
Endianness 문제
네트워크에서 데이터를 전송했는데, 숫자가 뒤바뀌어서 전달됨.
문법적 관점: "이상하게 값이 깨지네?" 정도의 의문.
컴퓨터 구조 관점: Big-Endian vs. Little-Endian 개념을 알아야 함. 서로 다른 CPU 아키텍처(예: x86 vs ARM)는 바이트 순서(Endianness)가 다를 수 있음.

 컴퓨터구조 큰 그림