훌륭한 개발자가 되기 위해서는 반드시 컴퓨터 구조와 운영체제를 배워야 합니다. 왜냐하면, 개발자가 내부적인 시스템 오류에 직면했을 때, 컴퓨터 구조에 대한 지식이 부족하다면 이를 해결하지 못하고 어려움을 겪게 될 것입니다. 더불어 개발자 채용 공고에도 컴퓨터 구조에 대한 지식을 요구하는 기업들도 많아지고 있는 추세입니다.
컴퓨터 구조를 배움으로써, 문법에 맞는 소스 코드를 컴퓨터에 입력만 하는 개발자에서 컴퓨터를 내려다보며 문제를 해결할 수 있는 개발자가 될 수 있습니다.
컴퓨터 구조를 알아야 하는 이유 두 가지
- 문제 해결 능력을 기를 수 있습니다.
- 성능, 용량, 비용을 고려한 프로그래밍을 할 수 있습니다.
강의실에서 다양한 학생들이 같은 코드를 입력했는데 어떤 사람은 코드가 작동하지만, 또 다른 사람은 안 되는 경우가 빈번합니다. 물론, 문법적인 오류가 있을 수도 있지만, 그렇지 않은 경우가 있을 수도 있습니다.(컴퓨터 내부적인 요소에 의한 이유..) 그래서, 컴퓨터 구조에 대해서 깊게 학습한다면, 컴퓨터의 오류를 바라볼 때, '미지'의 대상이 아닌, '분석'의 대상으로 바라볼 수 있게 됩니다.
성능, 용량, 비용적인 요소들을 고려해야 합니다. 저도 무조건 저렴한 노트북과 컴퓨터만 구매했지만, 저성능으로 인한 답답함을 호소한 적이 종종 있었습니다. 그래서 CPU, 메모리들을 고려하는 것이 중요합니다. 대부분에 기업에서 이를 고려할 것이고, AWS를 이용하더라도 CPU, 메모리, 스토리지를 직접 설정해야 하기 때문에, 이러한 요소들을 어떻게 설정하면 최적화된 서비스를 이용할 수 있는지 알아야 합니다.
웹사이트에서, 이용자가 10만명이라고 가정하면, 사용자들에 대한 데이터들을 저장할 저장 장치, 용량들을 고려한다면 훨씬 최적화된 서비스를 제공할 수 있다고 생각합니다. 저도 이제 컴퓨터 구조를 공부하면서 프로그래밍 언어를 사용하여 개발에만 포커스를 두지 않고, 서버 환경을 구축할 때 성능, 비용적인 요소들도 고려하여 개발해보려고 합니다.
<참고 자료>
https://www.youtube.com/watch?v=JqH7yCeu2Us
'CS' 카테고리의 다른 글
[HTTP] Internet Network (0) | 2023.03.30 |
---|---|
[컴퓨터 구조] 컴퓨터의 혁명과 컴퓨터 종류 (0) | 2023.03.27 |
Blocking & Non-Blocking, Synchronous & Asynchronous (0) | 2022.11.28 |
CS 스터디 4주차 Network & Spring (0) | 2022.10.27 |
CS스터디 3주차 Network & Java (1) | 2022.10.26 |