Selecting Right Language (올바른 언어 선정)

이호준·2026년 1월 30일
경희대학교 이성원 교수님의 '오픈소스 SW 개발 방법 및 도구 수업'을 기반으로 본인이 이해한 바로 새롭게 정리한 글입니다.

Select Right Language

  • 만약 누군가 언어를 추천해달라다고 가정하자. -> 누구에게 무엇을 추천할 것인가? -> Python?, C++ -> 추천해 달라하는 사람의 직장과 성향에 따라 천차만별일 것이다.

언어를 선정하는 기준은 무엇인가?

1. Hardware관련 특정 문제를 다루어야 하는가?
	- 일반적으로 어셈블리어로 C, C++이 선택
	- Aurdino라면 C를 선택
	- Linux / Unix Kernel의 경우에는 C / C++이 지지받는다.
	- MacOS kernel일 경우 C 혹은 Swift가 요구될 것이다.
2. Hardware에 구애받지 않는 문제라면?
	- Web 클라이언트 그리고 서버 프로그래밍
    - 데이터 분석, 엔지니어, 사이언티스트
    - 이러한 것들은 보통 접근 기반의 high level language를 사용하는 것이 좋다.
    

C / C++이 가지는 Hardware 관련 feature가 무엇인가?

  • Physical memory management : 물리 메모리 관리(접근이 가능)

    • C / C++의 포인터개념 : C기반의 언어들(C, C++, Rust, gigle)은 기본적으로 다른 변수의 주소를 저장할 수 있으며, 변수의 주소를 포인터를 통해 물리적으로 접근이 가능하다.
    • 하드웨어를 접근해서 읽고 쓸 수 있다.(하드웨어 장치와 매핑이 가능.) == Ram을 매개체로 명령을 수행이 가능하다. == imbeded programming이 가능하다.
  • Bit Operation : 0과 1로 연산이 가능하다.

    • mapping된 하드웨어 장치를 포인터를 통해 실제 주소로 이동하면, 매핑된 입력과 출력 장치를 통해 실제 기계와의 소통이 가능하다.(계산이 가능하다.)

Domain Specific Language

특정 분야의 도메인에 주로 활용되거나, 널리 사용되어 대체하기 어려운 언어가 존재한다.

  • 도메인의 종류

    • Web server
    • Data analytics
    • Cloud computing
    • Microservice programming

    Web server (programming language)

  • Javascript

    • 1995/12/04 탄생
    • 초기에 오로지 웹브라우저에서 client-side를 실행하기 위해 설계되었다.
    • 그러다 현재 많은 유형의 host software에 이식되면서 널리 사용되고 있다.
  • Node.js

    • 2009/05/27 탄생
    • Open Source, Cross platform, JavaScript run time 환경

    Web server (with dedicated tools)

  • Apache

  • Nginx

  • Wordpress

    Data analytics (Data Analysis, Data Science)

  • 데이터를 점검, 변형, 청소, 모델링 하는 과정을 거친다.

  • 데이터를 유요한 정보로 바꾸어 결론에 제안하는 것을 목표로 한다.

  • 선호되는 언어 : Python , R

  • 주요 요구사항

    • 자연어 처리, 글자 분석
    • 선형, 확률, 통계

    Cloud computing

  • OpenStack

  • CPU, 저장소, networking의 대규모 통제하며, datacenter내에서 자원을 관리한다.

그럼에도 무슨 언어를 선정해야할지 모르는 경우

Selection by Tiobe index

프로그래밍 언어의 인기도를 측정한 지표

성향에 따른 도표표를 통한 빠른 선정

가고자하는 회사에서의 로드맵 참고

  • 예시 : 우아한 형제들 (서버) : JavaScript
profile
처음이고 서툴지만 방향을 잡아 노력하는 개발자

0개의 댓글