아래는 개인적인 의견이며, 실제 다수의 개발 환경과는 차이가 있을 수 있습니다.

Python

  • 사용범위: 데이터 과학, 웹 개발, 인공지능, 자동화 스크립트
  • 특징: 초보자에게 친숙하고 다양한 라이브러리를 제공
  • 선정 이유: AI와 빅데이터 분야의 성장으로 인해 지속적으로 수요가 증가

파이썬은 함수형 프로그래밍부터 객체 지향 프로그래밍까지 다양한 스타일을 수용하는 다목적 프로그래밍 언어로 주목받고 있습니다YouTube, Google 검색, iRobot 머신과 같은 유명한 플랫폼은 Python의 견고함 덕분에 존재할 수 있었습니다

HackerRank의 데이터에 따르면 Python은 미주 지역 채용 관리자가 두 번째로 많이 찾는 언어입니다사용자 친화적인 특성 덕분에 초보자와 숙련된 개발자 모두에게 인기가 높습니다

Python의 풍부한 라이브러리는 미리 빌드된 명령어로 작업을 간소화하며, 대화형 특성은 실시간 코드 테스트에 도움이 됩니다채용 관리자의 50% 이상이 파이썬 기술을 우선시하는 등 광범위한 수요를 고려할 때, 파이썬은 프로그래밍 환경의 주요 자산으로 남아 있습니다.

JavaScript

  • 사용범위: 웹 프론트엔드, 백엔드(Node.js), 모바일 애플리케이션(React Native)
  • 특징: 웹 표준 기술로서의 지위와 비동기 처리에 강점
  • 선정 이유: 웹 개발의 필수 언어로서의 지속적인 인기

스택 오버플로의 2020년 개발자 설문조사에 따르면 자바스크립트는 전 세계에서 가장 많이 사용되는 언어로 69.7%로 1위를 차지했습니다이러한 우위는 미주 지역의 채용 관리자들 사이에서 자바스크립트에 대한 높은 수요를 통해 더욱 두드러집니다

자바스크립트는 개발자가 애니메이션 그래픽, 인터랙티브 맵 등과 같은 동적 요소를 제작할 수 있도록 웹 페이지의 상호작용성을 향상시키는 데 중추적인 역할을 합니다HTML 및 CSS와 결합된 자바스크립트는 향상된 웹사이트 제어 기능을 제공하여 뛰어난 사용자 탐색 및 가독성을 보장합니다자바스크립트가 널리 사용되는 이유는 대부분의 웹 브라우저와 통합되고 초보자도 쉽게 사용할 수 있기 때문입니다방대한 온라인 커뮤니티와 광범위한 지원 리소스는 자바스크립트의 최상위 프로그래밍 언어로서의 입지를 더욱 공고히 해줍니다.

Java

  • 사용범위: 엔터프라이즈급 백엔드 시스템, 안드로이드 앱 개발

  • 특징: 강력한 크로스 플랫폼 지원과 안정적인 성능

  • 선정 이유: 대규모 시스템 개발과 안드로이드 시장의 확대

    Java는 어디서나 한 번만 작성하면 실행할 수 있다는 철학으로 엔터프라이즈급 애플리케이션과 안드로이드 앱 개발에서 확고한 입지를 다지고 있습니다강력한 커뮤니티 지원과 이식성 덕분에 지속적인 인기를 누리고 있습니다

C#

  • 사용범위: 윈도우 애플리케이션, 게임 개발(Unity), 웹 개발(ASP.NET)

  • 특징: 강력한 개발 환경과 통합된 개발 경험

  • 선정 이유: 게임 개발과 .NET 생태계의 확장

    C++는 시스템 프로그래밍, 게임 개발, 고성능 애플리케이션의 초석이 되고 있습니다높은 수준의 추상화를 통해 낮은 수준의 조작이 가능하므로 성능이 중요한 작업에 적합합니다

    TypeScript

  • 사용범위: 대규모 웹 애플리케이션 개발

  • 특징: JavaScript의 상위 집합으로 타입 안정성 제공

  • 선정 이유: JavaScript의 복잡성 관리와 안정적인 개발을 위한 수요 증가

    자바스크립트의 상위 집합인 타입스크립트는 정적 타이핑을 추가하여 대규모 애플리케이션에 선호되는 선택지입니다기존 JavaScript 코드베이스와의 호환성 및 향상된 개발자 경험으로 인해 그 중요성이 날로 높아지고 있습니다

Swift

  • 사용범위: iOS 및 macOS 애플리케이션 개발

  • 특징: Apple 플랫폼에 최적화된 성능과 간결한 문법

  • 선정 이유: Apple 생태계 내 앱 개발의 필수 언어

    Apple의 프로그래밍 언어인 Swift는 iOS 및 macOS 앱 개발에 필수적인 언어입니다구문이 간결하고 표현력이 뛰어나 개발자들이 원활하고 직관적인 사용자 환경을 만들기 위해 선호하는 언어입니다

Kotlin

  • 사용범위: 안드로이드 앱 개발, 서버 사이드 애플리케이션

  • 특징: 간결하고 표현력 있는 문법, 자바와의 상호 운용성

  • 선정 이유: 안드로이드 공식 개발 언어로의 지정과 개발자 커뮤니티의 성장

    Google이 Android 개발을 위해 승인한 Kotlin은 간결함과 Java와의 상호 운용성으로 인기를 얻고 있습니다Kotlin을 배우면 효율적이고 현대적인 Android 애플리케이션을 만들 수 있는 길이 열립니다

Go (Golang)

  • 사용범위: 시스템 프로그래밍, 분산 시스템, 클라우드 서비스
  • 특징: 간결한 문법과 빠른 실행 속도, 병행성(concurrency) 지원
  • 선정 이유: 클라우드 기반 서비스와 마이크로서비스 아키텍처의 인기

Rust

  • 사용범위: 시스템 프로그래밍, 웹 어셈블리, 임베디드 시스템
  • 특징: 메모리 안전성과 병행성을 보장하는 현대적인 시스템 언어
  • 선정 이유: 안전한 시스템 개발에 대한 수요 증가

Rust는 스택 오버플로와 같은 플랫폼에서 꾸준히 호평을 받고 있으며, 종종 가장 선호도가 높은 상위 프로그래밍 언어 중 하나로 꼽히기도 합니다사용자의 86%에 달하는 상당수가 Rust에 대한 전문성을 강화하는 데 큰 관심을 표명하고 있습니다그러나 이러한 매력에도 불구하고 설문조사에 참여한 개발자 중 단 3%만이 Rust를 사용한다고 답해, 광범위한 프로그래밍 커뮤니티에서 틈새 시장으로 인식되고 있음을 알 수 있습니다

Rust는 구문은 C++와 비슷하지만 응용 가능성이 더 넓은 '다중 패러다임' 언어로 구분됩니다신속한 컴파일, 향상된 크로스 플랫폼 기능 또는 더 밝은 커리어의 길을 우선시하든, Rust를 채택하는 것은 전략적인 선택이 될 수 있습니다.

SQL

  • 데이터베이스 관리
    • 영업 보고서
    • 비즈니스 관리

일반적으로 구조화된 쿼리 언어로 알려진 SQL은 프로그래머가 데이터베이스와 상호 작용할 수 있는 특수 도구로 사용됩니다특히 관계형 데이터베이스 관리 시스템(RDBMS)에 맞게 설계된 SQL은 데이터 검색, 레코드 업데이트, 추가 및 삭제와 같은 작업에 탁월합니다

SQL의 기능은 칭찬할 만하지만, SQL은 소규모 데이터베이스에서 가장 효율적이며 더 크고 복잡한 데이터베이스에서는 한계에 직면할 수 있다는 점에 유의할 필요가 있습니다그럼에도 불구하고 SQL은 프로그래밍 분야에서 세 번째로 많이 사용되는 언어이며, 개발자의 54.7%가 SQL의 기능을 활용하고 있을 정도로 널리 사용되고 있다는 사실은 부인할 수 없습니다.

NOSQL

  • 데이터베이스 관리
  • 영업 보고서
  • 비즈니스 관리

비관계형 SQL의 약자인 NoSQL은 사용자 친화적인 특성을 유지하면서 SQL의 확장성을 향상시키는 것을 목표로 하는 솔루션으로 등장했습니다SQL은 조작과 검색을 위해 데이터를 테이블로 구성하는 관계형 데이터베이스 시스템에 의존하지만, NoSQL은 이러한 테이블 구조를 따르지 않는다는 점에서 차별화됩니다

이러한 유연성 덕분에 NoSQL은 계층적 네트워크 데이터 저장이나 광범위한 클라우드 기반 애플리케이션 지원과 같은 작업에 특히 능숙합니다이러한 적응성을 고려할 때 SQL과 NoSQL은 모두 가장 인기 있는 프로그래밍 언어 중 하나입니다.

반응형

'개발' 카테고리의 다른 글

코딩 AI 랭킹  (0) 2024.03.09
Mac이 AI PC로서 최고인 이유  (0) 2024.02.03
gitlab 설치(apache --proxy--> gitlab)  (0) 2023.12.27
elixir vs rust 비교  (1) 2023.12.27
vscode dev containers  (1) 2023.12.22

intellij 에서 java 코드를 쓰는 중간에 아래와 같은 경고가 나오는 것을 볼 수 있다.

결론

Raw Type은 작업하기 어렵고, 버그를 일으킬 수 있습니다. 가능하면 Raw Type으로 작성하는 일은 지양해야 할 것 같습니다.

Raw use of parameterized class 'List'
List is a parameterized type of interface List while List is a raw type of interface List.

List list = new ArrayList(); // raw type

List<Integer> listIntegers = new ArrayList<>(); // parameterized type

아래와 같은 예시 코드가 있습니다. 빌드 후 실행은 되는 코드 입니다. 하지만, methodB의 파라메터를 보면 List 라는 Raw Type으로 작성이 되어있습니다.
그리고 위와 같은 경고 메세지를 보게 됩니다.

@Test  
public void methodA() {  
    List<String> parameterizedList = new ArrayList<>();  
    parameterizedList.add("Hello Folks");  
    methodB(parameterizedList);  
}  

public void methodB(List rawList) { // raw type!  
    rawList.add(1);  
}}

methodB에 의해서 추가 된 List값을 불러오려고 하면 오류가 납니다. 코드가 컴파일되고(동일한 경고와 함께) 실행될 때 ClassCastException이 발생합니다. 이것은 method get(int index)String 유형의 변수에 할당할 수 없는 Integer를 반환할 때 발생합니다.

public void methodA() {
    List<String> parameterizedList = new ArrayList<>();
    parameterizedList.add("Hello Folks");
    methodB(parameterizedList);
    String s = parameterizedList.get(1);
}

public void methodB(List rawList) {
    rawList.add(1);
}

아래와 같은 methodA에서 methodB에서 실행한 값을 가져오려고 하면 에러가 발생합니다.

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

반응형

+ Recent posts