본격적으로 프로그램 개발 공부를 시작한지 1년이 넘어가고 있다. 진작에 알면 좋았을 것들 많았지만 지금 생각해보면 그 과정들이 다 필요한 과정이 아니었나 하는 생각이 든다.
개발 방향 정하기
프로그램이라고 생각하면 터미널 창에 글자들이 주루룩 나오고 키보드를 계속 쳐가면서 컴퓨터를 사용하는 것만 생각했었는데, 막상 프로그램을 시작하니 방향이 어느정도 보였다.
만약 웹 서비스를 개발한다고 하면 프론트, 백엔드, 데이터베이스, 도커 등을 이해하고 AWS나 AZUR, 헤로쿠와 같은 IaS등을 사용해 배포까지 진행할 수 있다. 이 때 프론트는 리액트를 사용할지 VUE.js를 사용할지 정해야 하고 백엔드도 Express를 사용할지 Django를 사용할지 Spring을 사용할지 결정해야 한다.
만약 모바일 앱을 만든다면 구글 안드로이드 앱을 만들지 애플의 Swift를 사용할지 정해야 하고, React Native를 사용할 지 등등을 결정해야 한다.
모바일이나 웹이 아니면 커널 개발이나 데스크톱 서비스를 개발할지 정해야 하고, 이런 서비스를 만드는 개발방향이 아니라면 요즘 각광받고 있는 빅데이터나 인공지는 머신러닝 분야로 개발 분야를 정할 수 있다.
결국 프로그램 개발이라고 하는 근본적인 존재 이유를 생각해보면 사람들이 조금더 편안하게 생활할 수 있도록 돕는 기술이라고 정의할 수 있다. 따라서 사람들이 겪는 문제만큼이나 개발의 방향은 무궁무진하다. 분명한건 시대가 거듭될 수록 데이터의 중요성과 연결의 중요성은 커지게 될 것이다.
- 웹 개발
- 모바일 개발
- 커널 개발
- 데스크톱 개발
- 빅데이터
- 인공지능
프로젝트 많이 해보기
시중에는 많은 부트캠프들이 존재한다. 코드스테이츠, 항해99, 멋쟁이 사자처럼 등 계속해서 새로운 과정이 나오고 있고 이전보다는 훨씬 개발 공부에 대한 접근성이 높아진 상황이다.
이 부트캠프들의 가장 큰 장점은 내용을 배우는 것보다는 프로젝트를 경험해볼 수 있다는 점이다. 그것도 나 혼자 진행하는 프로젝트가 아니라 다양한 사람들과 새로운 서비스, 프로덕트를 만들어 볼 수 있는 경험은 굉장히 소중한 시간들이 될 것이다.
프로젝트를 만들면서 하나의 프로덕트를 만드는데 컴퓨터, 웹, 데이터베이스의 1부터 100까지 모든 것을 알 필요는 없다. 심지어 MongoDB 사장도 MongoDB 자격증 시험에 떨어졌다는 내용을 감안한다면 이제 막 개발 공부를 시작한 사람이 모든 정보를 알고 개발을 할 필요는 없다는 소리다.
즉 프로젝트를 진행해보고 소수의 스택들을 이해했다면 이를 기반으로 다음 프로젝트를 진행할 때는 더 수월하게 기존의 스택을 사용하면서 다른 스택도 사용해볼 수 있다.
프로젝트 경험이 쌓이고 쌓이면, 시중에 서비스 되고 있는 웬만한 프로덕트들은 만들어볼 수 있을 것이고, 좀더 advanced된 프로젝트에 참가할 체력이 생기게 된다.
한 가지 언어에 정통하자
프로그램 언어의 종류는 굉장히 다양하다. C, C++, JAVA, Javascript, GO, RUST, Python 등등 각자 자신만의 강점을 가지고 계속해서 살아남은 언어들이 현재 시중에 개발자들이 쓰고 있는 언어가 된다.
하지만 앞서 얘기했듯 모든 언어에 대해 능통할 필요는 없다. 딱 1가지 언어에만 능통하면 다른 언어를 배우는 일은 굉장히 쉬워진다. 만약 개발을 처음 시작하시는 분들이라면 이것도 좋아보이고, 저것도 좋아보여서 여러개를 공부하는 일이 발생하게 되는데, 개인적으로 이렇게 되는게 최악의 상황이라 생각한다.
여러가지 언어는 조금씩 차이가 있다. 예를 들어 C나 JAVA는 컴파일 언어인 반면 Python, Javascript는 인터프리터 언어라고 해서 바이트코드를 뽑아내는 컴파일 과정이 필요가 없다. 이렇게 조금씩 다른 언어를 동시에 배우게 되면 한가지 언어도 제대로 사용하지 못하는 어중이 떠중이가 되어 버린다.
초보자가 접근하기 가장 쉬운 언어는 Python, Javascript다. 그중에서도 Javascript는 웹 프론트, 서버, 데이터베이스 전반에 사용되는 언어이면서 Web3에서도 핵심적으로 사용되는 언어이므로 처음 접근하는 언어로 추천한다.
계속해서 진화해야 된다
개발자는 자신이 가진 능력을 사골 곰탕 처럼 계속 우려먹을 수 있는 직종이 아니다. 과거에는 명성을 떨쳤지만 현재는 사라진 언어나 기술이 상당히 많다. 마찬가지로 현재는 중요하지만 향후에는 사라질 언어도 분명 존재할 것이다. 만약 내가 사용하고 있는 언어나 기술이 사라질 분야라면 어떨까? 개발을 접지 않는 이상 새로운 분야에 대한 공부가 지속되어야 한다.
특히 웹 프론트 분야는 굉장히 빠르게 발전하고 있고, web3, 머신러닝, 빅데이터 분야도 실생활에 적용되기 위해 끊임없이 새로운 프로젝트가 생성되고 발전하고 있는 분야다. 미래는 어떻게 될지 알수 없지만 현재도 PHP언어이 가능하지만 향후에는 불가능 해질 수도 있다는 것이다.
'Programming' 카테고리의 다른 글
JWT 비대칭키로 암호화 복호화 하는 법 (0) | 2022.09.07 |
---|---|
Node.js event eventEmitter 란? 이벤트 처리하기 (0) | 2022.09.06 |
Node.js file System 폴더 파일 지우기 폴더 내용 확인하기 (0) | 2022.09.04 |
Node.js Error Handling Object 에러 처리하기 (0) | 2022.09.03 |
Node.js fs.access fs.mkdir fs.open fs.rename 사용법 (0) | 2022.09.03 |
댓글