소프트웨어 가 어려운이유?
"소프트웨어는 눈에 보이지 않아."
이 말을 한번 곱씹어보고 아래글을 읽어봐.
핸드폰, 차, 비행기, 여객선, 전투기, 의자, 책상, 컴퓨터, 1층집, 빌딩, 소갈비탕, 짜장면 ..... 전부 눈에 보이는거는
대강 감으로, 아 이거 만들기 어렵겠네. 쉽겠네. 비싸겠네. 싸겠네 감이 오잖아?
그리고 일의 양도 대강 감잡을수 있어. 차 만드는거랑 비행기 만드는거랑 1대만 만든다면, 어느게 일의 양이 많을까?
근데, 윈도우, 리눅스, 카메라앱, 인스타그램, 카카오톡... 이런것들은 딱히 감이 없어.
만들기 어렵나? 쉽나? 일의 양은 얼마나 되나? 얼마나 고용해야 하나? 눈에 안보이니까.
그리고 딱히 일상생활에 필요한 경우도 없어. 그냥 소프트웨어(카카오톡, 인스타그램 등등) 들이 만들어지고 나오니까 쓰는거지.
일반 개인이 소프트웨어가 필요해서 만드는 경우는 거의 없거든.
(홈페이지는 만들기도 하지만, 솔직히 홈페이지도 뭐 없어도 그만이잖아.)
그럼에도 소프트웨어가 중요하고 우리가 이해해야 하는 이유는.
이세상에 거의 모든 하드웨어(장치)는 소프트웨어가 없으면 동작할수 없고(의자이런거말고. 딴지금물),
그리고 이건 앞으로 기술이 발전하면 할수록 더더욱 심해질꺼거든
사람이 소프트웨어를 만들던 AI 가 소프트웨어를 만들던 상관없어. 어쨋든 하드웨어를 움직이게 해야 하니까.
* 딱봐도 시큐리티가 중요하겠지? 궁금하면 링크 글 읽어봐
그래서 본인이 소프트웨어 엔지너어로 일할때마다 이런 말을 많이 들었어.
(다른글에도있지만 베이스가 임베디드시스템이라서 그럴수도)
"너 뭐하냐?"
"그냥 led 켜! 간단해! 뭐가 여렵냐" (이걸 키기위한 단계가 엄청 많을수도 있는데 ㅎ)
방법론도 너무 많고 툴도너무 많고 툴마다 사용법도 겁나많아
방법론 : 에자일이니 워터폴이니 객체지향이니
툴 : 언어는 뭘쓰고 ( c, c++, python, nodejs, golang, java, javascript, c# etc) 프레임웍은 뭘쓰고 (nodejs express, python dango, golang go-kit, go-micro .. etc)
개발환경운영체제는 뭘쓰고 ( linux, windows, unix etc) 그거에 따라서 컴파일러나 환경은 어떻게 설정하고 (C나 C++ 면 GCC 쓸껀지, LLVM 쓸껀지)
툴은 어떤걸 쓰고 ( IDE 는 vim, vscode , visual studio2020, etc)
만약에 임베디드시스템이라면 디버거는 뭘쓰고 ( lauterbach TRACE32, segger j-link..) cpu 는 어디꺼고 (삼성, 퀄컴, 엔비디아, 티아이 ...)
led 하나 키기위해서도 너무나도 많은 방법과 너무나도 많은걸 알아야 하지만 (물론 하나도 몰라도 켤수 있지)
눈에 보이지 않는게 문제야.
이걸 어떻게 눈에 보이게 하느냐.. 이걸 알면 소프트웨어가 이해하기 훨씬 쉬울텐데
누가 좋은 생각있으신 분 ? 손!
'소프트웨어 엔지니어 > 일반' 카테고리의 다른 글
| [소프트웨어 엔지니어] 스탠다드 라이브러리 왜 필요할까. (1) | 2024.08.28 |
|---|---|
| 소프트웨어 뭐지? (소프트웨어 엔지니어가 하는일?) (0) | 2024.08.21 |
| CI/CD 이건 왜? (1) | 2024.08.21 |
| 모놀리틱 vs 마이크로서비스 아키텍쳐 (0) | 2024.08.20 |
| tcp/ip, http, ? 프로토콜 (protocol) ? (0) | 2024.08.19 |