개발시스템 있으면 좋은 이유
사실 개발이란게 다 산업별로 직군별로 쓰이는 기술도 다르고 도메인 지식도 다 다릅니다. 그에 맞는 전문가를 찾기란 쉽지도 않습니다.
그런데 한가지 공통점은 IT에서 서비스를 런칭하는 일련의 과정은 일맥상통 한다는 겁니다. 게임개발을 하든, 로봇, 키오스크, 웹,앱을 출시하던 데스크탑 애플리케이션을 만들건, 솔루션을 출시하건, 펌웨어 같은 제품을 설계하건, CCTV의 모듈을 만들건, IOT 제품을 만들던지, 자동차에 들어가는 모듈을 만들던지 간에
서비스 기획, 디자인, 프론트 설계 및 개발, 백엔드 설계 및 개발, 인프라 설계 및 개발, 성능최적화, 보안, 품질 테스트, 제품 출시, 유지보수 ,하자보수
이러한 일련의 과정은 일맥상통하기 때문에 각각의 파트별로 정석적인 핵심 개념을 정리해서 개발할 때 적용하자는 취지로 개발시스템을 만드는 바 입니다.
각각의 산업별, 직무별에 맞는 기술에 대한 개념을 기술한 내용이 아니라 실무적인 적용방법, 심화내용을 다룹니다. 각각의 기술애 대한 개념이 알고싶으시면 기술별 공식문서 홈페이지를 참조하는게 더 정확합니다.
그리고 언어도 산업군별로 특성에 따라 저급언어 (어셈블리, 기계어), 고급언어 ( C, C++, java, python, ruby, javascript, php, swift, kotlin, go, rust), 스크립트 언어 ( Bash, Perl, Lua, PowerShell), 데이터베이스 언어 ( MSSQL, MYSQL, Oracle, MONGDB), 객체지향 언어(java, C++, C#), 웹개발 ( HTML, CSS, javascript) 등등 천차만별인데요.
javascript 를 기준으로 기술한다는 점 양해바랍니다. 이유는 javascript 가 프론트, 백엔드, 앱, 데스크톱, 게임개발 등등 커버리지가 높다고 판단되기 때문입니다. 최대한 함수형, 객체지향 프로그래밍 두가지 예시를 다 담도록 하겠습니다.
마지막으로 모든 시스템을 다 현업에 적용하기란 쉽지않은데요. 상황에 따라 skip 할 때가 더 효율적인 경우도 많으니간요. 그래도 최대한 알고있어야 skip 하지 실행할지를 의사결정 할 수 있는거구요, 최대한 실행하자는 생각을 갖고 개발에 임하면 더욱더 제품을 잘만들꺼라 생각합니다.
(feat: 전반적인 내용들은 저도 이것저것 인터넷 검색, 책 읽고, AI 참조, 현업에서 얻은 경험들을 요약 및 발췌한 정보들입니다. 오탈자 있을수도 있다는점 양해바랍니다.)