C++, Python, JavaScirpt Java 프로그래밍 언어 선택에 대한 고찰

이도현·2023년 10월 27일
0

호기심 천국

목록 보기
2/13

0. 개요

나는 C++로 코딩을 입문하여 코딩테스트를 풀며 자료구조에 대해 공부했고 Python으로 처음 웹을 만들었으며(JavaScript,html,css도 한스푼씩) Kotlin으로 Android 앱을 빌드하고, Java로 쇼핑몰도 제작해 보았다. 사실 다들 너무 재밌는 과정이었지만 무엇을 주력언어로 사용해야할지 아직 고민이다. 해서 한번 취업시장에서 핫한 C++, JAVA, Python 그리고 JavaSript에 대해서 알아보고자 한다.

1. C++

1) 역사

  • 개발자: Bjarne Stroustrup
  • 개발시기: 1980년대 초
  • 목적: C언어의 기능을 확장하여 객체 지향 프로그래밍을 지원하고자 함

2) 개발 철학

  • 성능과 유연성: C의 저수준 접근 방식을 유지하면서 객체 지향 개념을 도입
  • 다중 패러다임 지원: 절차적, 객체 지향적, 일반화 프로그래밍 지원

3) 대표적인 서비스/ 용도

  • 시스템 프로그래밍, 게임 개발, 고성능 컴퓨팅, 임베디드 시스템

4) 대표적인 프래임워크

  • Qt: 크로스 플랫폼 GUI 애플리케이션 개발에 사용
  • Boost: 포괄적인 라이브러리 모음으로, 고성능 애플리케이션 개발에 유용

5) 향후 전망(GPT-4)

  • 여전히 시스템 프로그래밍과 고성능이 요구되는 분야에서 강세. 하지만 더 높은 수준의 언어가 많이 사용되면서 점진적으로 사용빈도가 감소하는 추세

2. Python

1) 역사

  • 개발자: Guido van Rossum
  • 개발 시기: 1991년
  • 목적: 가독성이 높고 쉽게 배울 수 있는 범용 프래그래밍 언어 제공

2) 개발 철학

  • 간결성과 명확성: 코드는 작성보다는 읽히는 횟수가 더 많다 는 원칙
  • 다양한 사용자 지원: 초보자부터 전문가까지 쉽게 사용할 수 있게 설계

3) 대표적인 서비스/용도:

  • 웹 개발, 데이터 과학, 인공 지능, 네트워크 서버

4) 대표적인 프레임워크

  • Django: 웹 애플리케이션 개발을 위한 고수준 프레임워크
  • Flask: 가벼운 웹 애플리케이션 프레임워크로, 맞춤형 개발에 유용
  • TensorFlow, PyTorch: 인공 지능 및 머신 러닝 개발을 위한 프레임워크

5) 향후 전망(GPT-4)

  • 데이터 과학과 인공지능 분야에서 지속적으로 강세. 간결하고 다용도 적인 특성으로 인해 계속해서 인기가 높을 것으로 예상됨.

3. JAVA

1) 역사

  • 개발자: Sun Microsystems(현재는 Oracle에 속함)
  • 개발 시기: 1995년
  • 목적: 플랫폼 독립적이고 객체 지향적인 안정적인 프로그래밍 언어 제공

2) 개발철학

  • "한 번 작성하면 어디서든 실행": 플랫폼 독립성을 강조
  • "강력한 객체 지향 구조": 모든 것을 객체로 다루는 일관성

3) 대표적인 서비스/용도

  • 기업 시스템, 안드로이드 앱 개발, 웹 서버, 소프트웨어 개발

4) 대표적인 프레임워크

  • Spring Framework: 엔터프라이즈 애플리케이션 개발을 위한 강력한 프레임워크
  • Hibernate: 데이터베이스 관리 및 ORM(Object-Relational Mapping)을 위한 프레임워크

5) 향후 전망

  • 기업 환경과 안드로이드 개발에서 여전히 중요한 위치를 차지. 안정성과 확정성 때문에 오랫동안 사용될 것으로 예상됨.

4. JavaSript

1) 역사

  • 개발자: Brendan Eich
  • 개발 시기: 1995년
  • 목적: 웹 페이지에 동적인 요소와 상호작용성 추가.

2) 개발 철학

  • 웹 상호작용 강화: 사용자 경험을 향상시키기 위한 경량 스크립팅 언어
  • 이벤트 기반 프로그래밍: 사용자의 행동에 반응하는 웹 개발 지원

3) 대표적인 서비스/용도

  • 웹 개발, 프론트엔드 및 백엔드 개발(Node.js를 통해), 데스크탑 및 모바일 ㅇ앱 개발

4) 대표적인 프레임워크

  • React: 사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리
  • Angular: 웹 애플리케이션 개발을 위한 프레임워크
  • Node.js: JavaScript로 서버 사이드 애플리케이션을 개발할 수 있게 해주는 환경
  • Vue.js: 점진적인 JavaScript 프레임워크, 인터페이스 개발에 사용

5) 향후 전망(GPT-4)

  • 웹 기술의 핵심으로 계속해서 중요하게 여겨질 것. 프론트엔드 개발뿐만 아니라 Node.js등을 통해 백엔드 영역에서 활발히 사용될 것으로 예상됨.

5. 학습에서의 비교

  • C++: (절차적 언어 + 객체지향적 언어)이다 보니 배워야할 양이 상당하다. 다 배우고 다 이해하고 프로젝트를 만든다면 짧게 잡아 1년이다. 메모리 관리, 포인터등 좋은 개념들을 배울 수 있다. 지금 못하더라도 나중에 배워보시면 좋을 거다.
  • Java: 그냥 객체 그 자체다. 다른 언어로 웹을 개발한 것과 비교하여 보았을 때 왜 대기업에서 Java가 1등인지 알 수 있다. 속도도 준수하고 개발을 빠르게 해주며 유지보수에도 용이하다.
  • Python: C++의 문법이 영어라면 Python의 문법은 제주도 방언 정도이다. 많은 것을 짧은 시간에 배우고 싶다면 Python을 선택하시길 바란다.
  • JavaScript: 사용해보지 않아서 잘 모르겠다. GPT-4 말로는 Java와 비슷하다고 한다.

6. 취업시장에서의 비교(개인적인 생각)

  • C++: 컴퓨터공학자를 많이 우대한다.
  • Python: AI, 빅데이터에 관련 학위를 많이 우대한다.
  • Java: 취업 자리가 제일 많다. 하지만 지원자는 더 많다.(들리는 얘기로는 '왜 우리회사에 이렇게 많이 지원했냐' 라는 말도 나왔단다. Java뿐만은 아닐 것이다. 근데 지원률을 보면 압도적이긴 하다.)
  • JavaScript: 스타트업에서 많이 사용하는 것 같다.

7. 결론

임베디드, 게임 개발자가 되고 싶다면 C++
대기업 개발자 Java
스타트업 개발자 JavaScript
AI전문가, BiGData 분석가 Python
로 정리 되는 것 같다.
하지만 나의 생각은 이렇다

  • 한가지 언어만 고집하는 것은 개발자가 아닌 코더이다. 주력언어는 필요하지만 다른언어도 필요하다면 배워야한다.
  • 취업만 생각하여 주력언어를 결정했다면 5년안에 고꾸라진다.

여러 프로젝트를 하며 자신에게 맞는 것이 무엇인지 어떤 개발을 하고싶은지 어떤 개발을 할 때 더 몰입하고 행복한지를 먼저 고민하시고 각 언어의 패러다임과 사용되는 프레임워크 등을 참고하시길 바랍니다.

profile
좋은 지식 나누어요

0개의 댓글