안녕하세요? 개발자 Tuan입니다.
오늘은 개발자가 왜 컴퓨터 구조에 대해 잘 숙지하고 있어야하는지 알아보겠습니다.
사실 컴퓨터의 구성 요소와 작동 원리를 알지 못해도 우리는 프로그래밍을 할 수 있습니다.
프로그래밍 언어의 간단한 문법을 익히고 프로그램을 실행하는 것은 책이나 구글링을 통해 나오는 스탭을 그대로 따라가기만 하면 문제 없이 실행 가능합니다. 최근에는 AI의 발전으로 바이브 코딩을 통해 개발하는 개발자, 비개발자도 존재합니다.
즉, 컴퓨터 구조를 알지 못해도 개발은 할 수 있습니다만...
실력 있는 개발자가 되기 위해서는 컴퓨터 구조를 기본 소양으로 가지고 있을 필요가 있습니다.
이제 그 이유를 알아보도록 합시다.
우리가 개발한 프로그램은 항상 완벽할 수 없습니다. 당장이 아니더라도 언젠가 문제가 생길 수 밖에 없죠. 즉, 우리는 문제 해결을 위해 컴퓨터 구조를 숙지하고 있을 필요가 있습니다.
구글링이나 AI 프롬프트 작성 등 문제 해결 능력이 좋다면 컴퓨터 구조를 알지 못해도 문제 자체는 해결할 수 있을 것입니다. 하지만 문제가 발생한 이유. 즉, 왜 문제가 일어났는지 파악하지 못한다면, 본질을 이해하지 못한다면 이는 추후 나에게 문제를 넘기는 폭탄돌리기가 되거나, 비효율을 유발하게 될 수도 있다고 생각합니다.
컴퓨터 구조를 이해하고 있다면 빠르게 문제를 진단할 수 있고, 다양한 방법으로 문제를 해결해나갈 수 있습니다. 알고 있는 지식이 많다면 분석할 수 있는 수단과 방법이 필연적으로 많아질테니까요.
조금 현실적인 부분으로 생각해봅시다.
문제 해결 능력, 컴퓨터에 대한 이해는 하나의 역량으로 업무 수행에 자격 조건으로 적용됩니다.
당장 우리가 기술 면접에서 컴퓨터 구조에 대한 소양을 검증받는 이유가 이 때문이죠.
컴퓨터 구조를 숙지하고 있으면 효율적인 설계가 가능합니다.
효율적인 설계라고 함은 "주어진 조건 안에서 최고의 성능을 발휘할 수 있도록 설계하는 것" 정도로 알아주시면 좋을 것 같습니다.
내가 지금 작성하는 코드가
등을 고려하기 위해서는 아무래도 컴퓨터의 본질을 알아야된다고 생각합니다.
프로그램을 기본적으로 하드웨어 위해서 동작합니다.
무작정 저렴한 하드웨어를 선택하게 된다면 프로그램이 정상작동하지 않거나 프로그램 실행 자체가 느려 정상적인 개발, 서비스 운용이 힘들 수 있습니다. 반대로 가장 성능이 좋은 최신 하드웨어를 선택하게 된다면 수백, 수천만 원까지 비용이 늘어날 수 있습니다.
직접적으로 하드웨어를 사용하지 않는 클라우드 환경 또한 마찬가지입니다. 어떤 CPU를 사용할 지, 어떤 메모리와 스토리지를 사용할 지에 따라 성능, 용량, 비용이 달라지기 때문입니다.
즉, 현재 내게 주어진 비용 안에서 최적의 성능, 용량을 확보하기 위해서는 컴퓨터 구조를 알아야합니다.
위와 같은 이유로 우리는 컴퓨터 구조를 기본 소양으로 숙지하고 있어야 한다 생각합니다.
제가 작성한 이유 외에도 여러가지 이유가 있을 수도 있겠죠.
개발, 컴퓨터 엔지니어링에 가장 기초가 되는 컴퓨터 구조는 대학 1학년에 배우는 이유가 다 있습니다. 기초가 탄탄해야 앞으로 쌓아올릴 탑도 탄탄히 유지될 수 있으니까요.
필자는 기초가 부족하여 다시 공부하는 케이스입니다.
처음 접하시는 분들은 저와 같은 실수를 하지 않길 바라며, 저와 같은 상황이신 분들은 같이 힘낼 수 있도록 이 글을 작성합니다.