요즘에 선망받는 직업 중에 하나로
개발자를 많이 거론합니다.
세월이 지나갈수록 전자시스템이 적용되면서
컴퓨터를 다룰 수 있는 개발자들의 수요가 높아집니다.
특히나 알파고, Chat GPT등
SW적으로 빅 이슈가 있으면
그 해에 컴퓨터공학과 입결 컷이 높아집니다.
요즘에는 컴퓨터공학이나 전자공학 이외에
인문계 출신 등 다양한 분야의 사람들이
개발자로 일하는 경우가 많습니다.
유튜브로 종종 광고를 보면
"코딩의 코짜도 모르는 내가, 개발자로 취업했다"
라는 교육강좌들도 종종 보입니다.
그럼 이런 생각이 들 수 있습니다.
"그럼 컴퓨터공학을 졸업해서 개발자가 될 이유가 없는거 아니야?
4년동안 공부해서 개발자가 될 바에
저런 교육 6개월짜리 들어서 개발자가 되는 게 더 가성비있는거 아니야?"
이런 오해는 "개발자"마다 어떤 특성이 있는지 모르기 때문이라고 생각했습니다.
그래서 오늘은 개발자의 종류와
각각의 개발자가 되기위해서는 뭘 공부해야하는지 보겠습니다.
가장 먼저, 웹 개발.
그 중에서 프런트엔드 개발자가 있습니다.
이 사람들은 사람들이 웹페이지에서 보이는
Client단의 코드를 짜는 사람들입니다.
홈페이지 화면을 보기좋게 띄워주기
개인정보 조회해주기
사용자가 원하는 정보 서버단으로 넘기기 등등
사용자가 직접적으로 하거나 보는 행동에 대한 요청을 받습니다.
비전공자를 위한 개발교육 대다수가 프런트엔드인 경우가 많습니다.
그 이유는 상대적으로 "필요지식이 적기 때문"
타 영역 대비 필수지식량이 적고
이미지에 대한 부분은 Tool을 활용하면 되기 때문에
개발하는 난이도도 상대적으로 쉬운 편입니다.
대신, "재능"의 영역이 큽니다.
디자인과도 이어지는 부분이 많아,
깔끔하게 웹페이지를 기획하고 정리하는 재능이 필요합니다.
개발자의 대부분을 차지하는
백엔드 개발자입니다.
아까 보신 프런트엔드가 client를 다룬다면
백엔드는 server를 다룹니다.
쉽게 말해, 우리가 웹서비스를 사용할 때
보여지지않는 부분을 관리하는 사람들입니다.
대한민국 롤 동시 접속자가 2만명이 된다고 가정할 때
해당 게임을 활용하는 2만명이
끊김없이 게임을 하게 만들어줍니다.
또 해커가 개인정보를 빼돌리지 못하도록
정보보안에도 열을 내고 있습니다.
컴퓨터공학을 전공한 대부분의 사람들이 백엔드쪽 개발을 맡고 있습니다.
해당 영역의 수요가 많아 취업에 매우 유리합니다.
당장 웹 서비스 관리만 해도 필요한 곳이 많으니까요.
최근에는 가상화폐 거래소가 많이 생겨나면서
웹개발자 수요가 늘어 대우도 엄청 좋아졌습니다.
특히나 컴퓨터공학 전공에서 배우는 지식을 활용할 일이 제법 많고
(DB,정보보안,알고리즘 등등)
진입장벽도 타 분야대비 낮은 편이라
전공자들은 프런트엔드보다는 이쪽을 더 선호하는 경향이 많습니다.
다음은 프런트엔드,백엔드 개발을 동시에 할 수 있는
풀스택 개발자입니다.
혼자서 양쪽 영역을 모두 다룰 수 있는 개발자로
양쪽의 문제 모두를 해결할 수 있습니다.
프런트-백엔드 개발자 중
각자의 영역 지식 외에는 잘 모르는 경우도 적지 않습니다.
그래서 서로의 협업을 원할하게 할 수 있도록
양쪽 모두를 이해하는 풀스택을 점차 선호하게 되었습니다.
다룰 수 있는 영역이 많은만큼
범용성이 높은 개발자입니다.
이것저것 다 할 수 있기 때문에
다재다능합니다.
문제해결에 대한 아이디어도 좋습니다.
서로 각각의 문제만을 바라볼 때
"프런트랑 백인드 각각에서 서로 어떻게 안 맞은거지?"
라는 사고를 가질 수 있죠.
그리고 모두 다 할 수 있기 때문에
개인이 웹서비스를 홀로 구현할 수 있습니다.
하지만 "두 영역 다 할 줄 압니다"라는 말이
"두 영역 애매하게 할 줄 안다"가 되는 경우도 많습니다.
이런 부분 때문에
풀스택 개발에 대한 부정적인 시각도 존재하며
어떤 사람들은 "웹개발 초반에는 풀스택으로 접근하되, 나중에 한 분야를 전문적으로 하자"
라고 주장하시기도 합니다.
https://yozm.wishket.com/magazine/detail/1265/
풀스택 개발자에 대해서는
해당 글을 더 참고해보시면 좋을 거 같습니다.
개발자들의 로망이라고 볼 수 있는 앱 개발자입니다.
종종 이런 글들을 보셨을 겁니다.
"퇴사하고 앱 개발로 몇 억 벌어"
모바일은 개발환경에 따라
안드로이드,IOS로 나눠집니다.
개발환경에 따라 사용하는 언어랑 툴이 달라집니다.
모바일을 다룬다면 웹으로 치면
풀스택개발을 하듯이
UI/UX부터 서버까지 구현하는 경우가 많습니다.
그리고 앱 성격에 따라 다르겠지만
음성처리,영상인식 등등
전자공학 지식을 활용해야할 수도 있습니다.
앱개발은 만들고자하는 앱에 따라서
수준이 천차만별로 갈립니다.
또한 앱 자체의 아이디어를 기획하는 게 중요해서
재능+실력을 모두 겸비해야하는 영역입니다.
이런 로망이 있는 분야이지만
상대적으로 알아야할 지식이 많은데 비해
대우가 좋지 못한 편이라
개발자 비중이 웹보다는 적습니다.
마지막은 HW영역까지 다루는 임베디드개발자입니다.
쉽게 설명하자면 IoT분야,로봇제어 등을 다루는 개발자입니다.
반도체칩이나 작은 기기를 구동시키는 sw를 개발하며
제품의 HW스펙을 분석하며 코드를 작성합니다.
컴퓨터공학보다는 전자공학전공자 비율이 많습니다.
전자공학에서 반도체,회로 등에 대해서 많이 배우기 때문입니다.
(컴퓨터공학 커리에도 있긴하지만
과목 인기가 적은 경우가 많음)
전자공학의 지식들을 알아야 편한 경우가 많아
진입장벽이 타 개발분야 대비 높습니다.
프로그램이 안 돌아갈 경우, HW문제까지 살펴야하기 때문에
개발난이도가 높은 편입니다.
"알아야할 거 많으니깐 대우도 엄청 좋겠네요?"
하지만 현실적으로 그러지 못합니다.
분명히 필요한 분야이고 IoT관련이니깐 유망할 거 같지만
현실적인 대우가 안 좋습니다.
해당 영상을 보면
임베디드가 왜 현실적으로 암울한지 느낄 수 있습니다.
썸네일부터 "망한다고?!"라고 말할 정도로
인식이 좋지 않습니다.
(심지어 영상 제작자도 임베디드 개발자)
"개발자"가 된다고 했을 때
본인의 지식적 베이스+성향에 따라
맞는 분야가 다 다를겁니다.
여러분들이 "개발자가 되고 싶다"라고 생각했으면
개발자가 어떤 종류가 있는지 머릿속으로 그려보고
그 중에 자기랑 어떤 게 가장 맞는지 생각하면
진로에 도움이 될 것입니다.
컴퓨터는 어떻게 데이터를 전송할까? 씨리얼 통신을 알아보자 (0) | 2023.05.26 |
---|---|
IOT시대?? IOT란 대체 무엇일까?? (0) | 2023.05.25 |
삼성페이 vs 애플페이, 둘의 결제방식이 다르다고?? (0) | 2023.03.29 |
12시 30분은 일직선이 아니야? 시계는 언제 일직선이 될까?? (3) | 2023.02.06 |
내가 먹는 식품 영양분은 어떻게 측정할까? (1) | 2022.09.27 |
댓글 영역