2023.03.07(Tue)
프로그래밍 언어(Programming Language)는 종류가 매우 다양하며, 국내에서 많이 사용되는 대표적인 언어들에 대한 평소 가지고 있었던 생각이나 특징을 정리해 보고자 합니다.
1. Java (자바)
- 현재 한국은 "자바 공화국"이라는 명칭이 붙었을만큼, Java에 대한 공급과 수요가 정말 높은 편에 속합니다. 그 이유는, 국내 IT 서비스 기업들이 메인 언어로 사용하고 있으며 정부 및 공공 기관에서 사용되는 전자정부 표준 프레임워크(eGovFrame, EGoverment Standard Framework) 모두 Java를 기반으로 하는 스프링 프레임워크를 채택하여 사용하고 있기 때문에 Java에 대한 언어의 성숙도, 커뮤니티가 매우 큰 편에 속합니다.
- Java 언어가 가지는 특징은 다음과 같습니다.
(1) 메모리 관리(할당/해제) 부분은 JVM 내부에 존재하는 Gabage Collector(GC)가 직접 담당한다.
- 이를 통해 개발자는 서비스 구현을 위한 코드 설계에 더 집중할 수 있습니다.
(2) 특정 기능을 담당하는 모듈, 메소드 등을 구현하는데 포커스를 맞추어 프로그래밍이 가능하다.
(3) 대표적인 객체 지향 프로그래밍 언어에 속한다.
(4) 코드가 다른 언어에 비해 상대적으로 긴 편이지만 IDE의 도움을 받아 충분히 극복할 수 있는 부분이라 크게 문제가 되지 않는다.
2. JavaScript (자바스크립트)
- JavaScript(자바스크립트) 언어가 가지는 특징은 다음과 같습니다.
(1) 웹 개발에 주로 사용되는 언어이며 주로 프론트엔드 엔지니어링에 사용되는 언어이다.
※ 프론트엔드(Front-end) : 요청에 따라 이에 맞는 응답을 반환하는 결과를 사용자에게 시각적으로 제공하는 웹 개발 영역 중 하나로써, 사용자 경험(User experience)을 끌어올리기 위한 프론트 영역을 설계하고 User Interface(UI)를 개발하는 영역입니다.
(2) 다른 프로그래밍 언어들과 달리 언어적 컨셉이 조금씩 상이하기 때문에 초심자가 처음 학습하기 어려울 수 있다.
- 이러한 이유 때문에 주변에선 다른 언어를 먼저 학습하고 자바스크립트로 넘어오는 분들을 많이 봤습니다.
(3) 개발 환경이 바뀌는 속도가 빠른 편에 속해서 지속적인 스터디가 필요한 언어이다.
3. Python (파이썬)
- Python(파이썬) 언어가 가지는 특징은 다음과 같습니다.
(1) 문법이 간결한 편에 속한다.
- 파이썬의 대표적인 특징 중 하나로, 문법이 간결하고 다양한 곳에서 사용되다 보니 초심자들이 코딩을 처음 배울 때 파이썬으로 많이 시작하고 있습니다.
(2) PEP8(Python Enhancement Proposal)이라는 코드 스타일 가이드에 따라 Pythonic한 코드를 지향한다.
- 효율적인 코드 작성을 원칙으로 하는 파이썬의 핵심 컨셉으로 인해 공백, 들여쓰기 등에 대해 타 언어보다 엄격한 편입니다.
(2) 시중에 배포된 소스, 라이브러리가 많다.
(3) 자바, 자바스크립트와 마찬가지로 개발자가 직접 메모리 관리를 하지 않는다.
(4) 다양한 분야에서 사용된다.
- Django를 이용한 웹 개발부터 시작해서 자동화 스크립트, 4차 산업혁명의 핵심인 Artificial Intelligence(AI) 기반 기술, 데이터 프로세싱 분야에서 뚜렷한 장점을 가지고 이를 통해 수치 해석(Numerical analysis), 빅데이터 처리, 데이터 기반 모델링, 분석, 처리에 파이썬이 사용됩니다.
4. C, C++
- C, C++ 언어가 가지는 특징은 다음과 같습니다.
(1) 주로 자원 관리(Resource management)를 극대화해야 하는 환경에서 사용되는 언어이다.
- 메모리 사용 시 효율이 극대화되어야 하는 임베디드 시스템, 메모리 설계 등 기타 빠른 실행 속도를 요구하는 환경에서 가장 많이 사용됩니다.
(2) 하드웨어 레벨과 매우 근접한 언어이다.
- C, C++ 특성상, 저수준 언어(Low-level language)이므로 하드웨어를 정밀하게 다룰 수 있는 수준으로 프로그래밍이 가능합니다.
(3) 개발자가 직접 메모리 관리(할당, 해제)를 수동으로 해 주어야 한다.
- 자바처럼 GC가 존재하지 않고, 개발자가 직접 사용한 자원을 시스템에게 반환해 주는 작업이 반드시 필요합니다.
(4) (3)번 등과 같은 이유로 코딩 초심자가 중도 포기하기 쉬운 언어에 속한다.
- 대부분 코딩을 처음 시작하면 C부터 배우라는 의견들이 많았습니다. 하지만 C의 경우 (3)번에서 언급된 것처럼 메모리 관리를 직접 해 주어야 하며, 이 과정에서 포인터나 메모리 구조와 같은 개념을 반드시 알고 있어야 하는데 초심자 입장에선 이러한 개념들이 상당히 난해할 수 있습니다. 이 부분을 알아가는 과정에서 컴퓨터의 구조에 대해 자세히 알 수 있지만 주변에선 C를 배울 때 배열, 포인터 부분에서 학습을 중도 포기하는 분들을 정말 많이 봤습니다.
- C가 가지는 이러한 특성 때문에 요즘 코딩을 가르친다고 하면 학부 교양수업 등을 봐도 파이썬으로 시작하는 경우가 상당히 많아진 것 같습니다.
※ 해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 지적해 주시면 감사하겠습니다.
'기술 트렌드, 생각 정리 & 회고 > 생각 정리, 회고' 카테고리의 다른 글
졸업 작품(캡스톤디자인)을 하며 교수님께 받았던 피드백 (0) | 2024.05.23 |
---|---|
[블로그 회고] - 처음 작성하는 블로그 운영 회고 (0) | 2024.04.19 |
인프런 워밍업 클럽 0기 수료 후기 및 회고(Back-End : Java, Spring) (7) | 2024.03.20 |
[머신 러닝] - 경사 하강법(Gradient descent) (0) | 2023.03.13 |
댓글