🤔 Java를 왜 배우는가?
Java는 웹(web)과 모바일(안드로이드)에서 잘 쓰이면서 국내에서 가장 인기있는 언어이고, 이는 취업과도 연결이 된다.
하지만 최근 Google(구글)에서 밀고있는 Kotlin(코틀린)이 자바를 대체할 것이라는 말이 있다.
이 코틀린은 자바와 100% 연동되며 자바보다 더 편한 장점들이 있다.
그래서 지금껏 자바로 해왔던 것들도 코틀린으로 대체하여 나타나고 있는 추세이다.
* e.g. 코틀린과 스프링, 코틀린과 안드로이드 스튜디오
그리고 AI, 딥러닝, 사물인터넷 트렌드에 맞춰서 자바보다 더 작성하기 편한 파이썬을 배우기도 한다.
자바의 특징 중 하나인 "운영체제에 독립적이다" 에서 나오지만 다른 언어에 비해 한번 더 컴파일을 한다.
그래서 다른 언어보다 상대적으로 느리다고 공격받고 있다.
(초기 자바 때는 그랬고, 지금은 성능이 발전해서 그 정도까진 아니다)
프로그래밍 언어 중 고려해야할만한 사항이 있다면 메모리 관리를 보면 된다.
메모리 관리를 알아서 해주는 언어를 Managed Lanaguage 라 부른다.
반대로 사용자가 직접적으로 해야하는 언어를 Unmanaged Language라 부른다.
Managed Lanaguage에는 Java, Python, C#, JavaScript 등이 있다.
이 언어들의 장점은 컴퓨터의 구조를 잘 몰라도 쉽게 프로그램을 작성할 수 있다.
Unmanaged Language에는 C, C++, Assembly가 있다.
이 언어를 배우면 메모리를 관리해야하는데, 그렇다면 컴퓨터 구조를 알아야 한다.
즉, 메모리 관리하는 법을 알게되므로 다른 언어를 넘어갈 때 좀 더 빨리 이해를 할 수 있다.
만약 프로그래머로 취업을 생각하신다면 Managed Lanaguage로 취업준비를 하실텐데
꼭 메모리 관리같은 컴퓨터 구조를 학습하시는 것을 추천드린다.
🤔 국내에서는 자바 개발자를 압도적으로 선호한다. 왜?
전자정부프레임워크를 쓰는 정부와 대기업의 기여도가 현재로써 크다고 생각한다.
전자정부프레임워크는 정부에서 만든 웹 기반 어플리케이션 프레임워크이다.
Java의 Spring 프레임워크와 유명 Java 라이브러리를 미리 만들어놓은 것이라고 생각하면된다.
이런 전자정부프레임워크는 구조가 보수적인 기술이라는 것이 문제점으로 작용하고 있다.
정부 프로젝트에 기대는 SI 회사가 절대 다수를 차지하는 현실로 인해 Java + Spring 개발자를 많이 구하는 것이다.
그리고 "네카라쿠배 당토직야두" 같은 대기업들도 Java와 Spring을 쓰는 경우가 많다.
스타트업쪽은 자바&스프링과 Node.js(노드)가 체감상 반반인 것 같다.
개발자 대우가 좋은 스타트업이나 중소기업들을 보면 Node를 뽑는곳이 생각보다 많다.
내가 개발자 강의를 듣는 인프런 사이트와 직방도 Node.js로 운영하고 있다.
📑 2021년 스택오버플로우 개발자 설문조사를 통한 언어 트렌드
https://insights.stackoverflow.com/survey/2021
전 세계적으로 설문조사를 했다지만 한국과는 맞지 않는 부분이 많으므로 한국과 비교해서 외국은 어떤 것이 트렌드를 이루는가로 보면 될 듯 하다.
가장 많이 사용되는 프레임워크 분야
가장 많이 사용되는 프레임워크 분야에서는 React가 jQuery를 제치고 1위를 찍었다. 국내에서도 리액트를 쓰는 곳이 많아지고 있는걸로 느껴지는데 확실히 외국 트렌드가 React라서 그런것도 있는 것 같다.
가장 사용하고 싶은 프레임워크 분야
가장 사용하고 싶은 프레임워크 분야도 React가 1위를 달성하고, 2위는 Vue로 달성했다.
Vue가 React에 비해 소규모 프로젝트를 만들기에는 좀 더 나은것 같았다.
가장 인기있는 언어
Python이 치고올라오는 속도가 매우 빠르다. AI 인공지능과 사물인터넷으로 인한 수요가 급증한 것이 아닐까 추측된다.
그리고 역시 JavaScript가 가장 일반적으로 사용되는 프로그래밍 언어 1위로 9년 연속 선정되었다.
대부분 개발자들의 프로그래밍은 웹 프로그래밍이라 그런 것 같다고 적혀있다.
Node.js와 TypeScript가 개인적으로 눈에 띄고 배워보고 싶은 언어이다.
이렇게 자신이 무엇을 배우고 싶은지 잘 모르는 개발자 또는 취미로 배워보고 싶은 개발자라면 트렌드에 맞게 체험해보는것도 나쁘진 않을 것 같다.
📑 자바를 학습할 때 참고할 도서들
참고할 도서는 Java의 정석 기초편, 어서와 Java는 처음이지! 이다.
자바의 정석은 기초편과 기본편이 있는데 기본편인 자바의 정석은 Java를 처음 접한 사람들이 읽기에는 조금 무리가 있는 도서이다.
즉, 전공자나 프로그래밍을 직업으로 삼으려는 사람을 대상으로 집필하기도 했지만 어느정도 Java에 대해 알고 있는 사람을 위한 책이라고 볼 수 있다.
그렇기에 쉽게 프로그래밍을 배우려면 기초편을 택해야 한다.
엄청 차이가 있는건 아니지만 기초편이라 난이도를 낮추고 응용을 줄이고 기초를 넣었기때문에 기초편을 학습하는게 낫다.
쌩 초보자보단 어느정도 Java에 대해 숙지한 사람
기초보단 실무와 응용에 대해 실력을 갖추고 싶은 사람
쌩 초보자라면 권하고 싶은 책
기초가 부족한 사람
대학교 교재로써 산 도서인데 개인적으론 Java의 정석 기초편을 사서 학습하는게 나은 것 같다.
💻 결론
Java를 처음 배울때 학습할만한 도서를 추천한다면 Java의 정석 기초편을 사서 학습하는 것을 추천한다.
국내 취업만 생각하여 개발언어를 배운다면 Java를 배우고 그 후 백엔드는 Spring,
웹 개발은 Android Studio를 배우면서 Java와 100% 연동되는 구글에서 만든 Kotlin을 연계하여 배우는것도 추천한다.
그저 취미로 하고싶다면 외국 트렌드에 따라 체험하는것도 추천한다.
공기업이나 대기업은 자바와 스프링이 다수를 차지하고 있지만, 개발자 대우가 좋은 스타트업이나 중소기업들은 Node.js를 쓰는 곳이 많다.
그래서 자신이 가고싶은 회사나 목표로 하는 미래가 있다면 거기에 맞춰서 선택하는 것이 좋을 듯하다.
😎 개인적인 생각들
무엇보다 개발은 속도도 중요하지만 꾸준함 즉, 오래가는것이 제일 중요한 것 같다.
그렇기 위해서는 재미와 흥미에 따라 가는게 제일 좋은 것 같다.
글쓴이는 처음 대학교 입학했을 때 배우는 것이 Java여서 배웠었다.
배우면서 Java에 대한 언어 학습이 재밌다고 느껴졌고, 개발에 흥미가 있다는 것에 기분이 좋았다.
Node.js, Vue.js, Java, Spring Boot 를 대학교에서 맛보기처럼 했었고 이 중 Java와 Spring을 계속하여 학습하고 있다.
앞으로 Java에 대한 글을 쓸 때는 위에 나온 도서들과 블로그, 유튜브 등 참고하여 쓸 것이다.
블로그 글을 쓰는 것은 처음이지만 내가 모르는 것을 검색하여 본 것처럼 다른 이들도 검색하여 내 블로그 글에 접속했을 때 도움이 되었으면 하는 바람으로 쓰는것을 목표로 할 것이다.
'프로그래밍 > Java' 카테고리의 다른 글
Java(자바) API 문서 다운받기 (0) | 2022.01.11 |
---|---|
Java(자바) 환경변수 설정하기 (0) | 2022.01.11 |
Java란? (3) | 2022.01.11 |
Java 삼항 연산자(조건 연산자) - 응용 (0) | 2022.01.06 |
Java 삼항 연산자(조건 연산자) - Conditional Operator (0) | 2022.01.05 |