하드웨어 기술은 놀라운 속도로 발전하고 있음 -> "무어의 법칙".
소프트웨어의 발전 속도가 하드웨어를 따라가지 못하고 있음 -> "브룩스의 법칙".
그래서 "어떻게 하면 소프트웨어 개발 속도를 하드웨어의 발전 속도에 맞출 수 있을까?"
이 질문에 대한 답이 바로 소프트웨어 공학임
소프트웨어 공학은 단순히 코드를 빨리 작성하는 방법을 가르치는 게 아님.
소프트웨어 개발의 전체 과정을 체계적으로 관리하고(PROCESS를 이해하고) OPTIMIZATION하는 방법을 다룸.
즉 효율적인 알고리즘, 설계패턴, 프로젝트 관리 , 자동화 도구 , 지속적 통합/배포 , 애자일 , 마이크로서비스 아키텍처, 기계학습과 AI 활용 등 배움
소프트웨어 공학과 컴퓨터 과학(CS)을 배우는 것은 단순히 코딩 실력을 향상시키는 것 이상의 의미를 가짐.
빠르게 변화하는 하드웨어 환경에 소프트웨어를 효과적으로 적응시킬 수 있는 능력을 개발하는 것이기도 함.
결과적으로, 이러한 학습을 통해 개발자들은 하드웨어의 빠른 발전 속도에 보조를 맞출 수 있게 되고,
많은 개발자들이 CS와 소프트웨어 공학을 엄청 공부하는거임.
이건 단순히 트렌드를 따르는 것이 아니라,
빠르게 변화하는 기술 환경에서 경쟁력을 유지하고 더 나은 소프트웨어를 만들기 위한 노력임
난 대학교에서 교수님한테 이렇게 배움 ㅇㅇ
20년 전에는 그 말이 맞음. 근데 지금은 하드웨어가 오히려 소프트웨어 발전을 못따라감.
오.. 이유가 뭐야?? - dc App
딥러닝 신경망 node에 대한 weight 행렬 연산이 어마무시하게 리소스를 많이 씀. 그래서 alu가 ㅈㄴ 달려있는 gpu를 써온 건데, 훨씬 고성능 계산이 가능한 process unit이 나와주기만 한다면 노드를 늘리든 feature을 늘리든 해서 성능 더 좋게 설계할 수 있음
model training 과정에서
ㅇㅎ 오.. 알려줘서 고마워 ㅜㅜ - dc App
무어의법칙 물리적한계 왔잖아
브룩스는 사공이 많으면 배가 산으로간다 아님? 무어도 양자컴퓨터 아닌이상 깨졌고 황은 그냥 ㅈㄴ 때려박는중이고 ㅋㅋ