본문 바로가기
IT 알쓸신잡

프로그래밍 언어와 기술 ?

by zing! 2025. 3. 4.

회사 공고들을 살펴보던 중, 프로그래밍 언어와 기술 스택의 구분에 혼동이 와서 헷갈리기 시작했다.

취업을 준비하는 내가 공부한 언어와 다룰 수 있는 기술 스택에 대해 정확히 말할 수 있어야 한다는 생각이 들었다. 그래서 애매하게 알고 있던 개념들을 명확히 정의하고, 자신 있게 설명할 수 있도록 정리해보기로 했다.


프로그래밍 언어 (Programming Language)

프로그래밍 언어는 컴퓨터와 소통하기 위해 개발자가 사용하는 문법구성 요소를 정의하는 규칙이다.

  • 문법 : 언어는 코드의 구문과 구조를 정의한다.
  • 명령어 : 개발자가 작성한 명령어를 컴퓨터가 이해할 수 있도록 변환한다.

컴퓨터는 인간의 언어를 이해할 수 없기 때문에 기계가 알아들을 수 있는 언어가 필요하다.

  • 저급언어
    • 기계어 : 컴퓨터가 해석할 수 있는 이진수로 된 숫자로 이루어진 명령어
    • 어셈블리어 : 기계어와 1:1로 대응되는 기호로 이루어진 언어
  • 고급언어 :  컴파일 언어라고 불리며 , 인간이 사용하기 편리한 형태의 언어
    • C,Java,Python,Javascript,C++,C#,Ruby,Swift,PHP,Go

고급 언어는 인간이 이해하기 쉬운 문법을 가지고 있으며, 하드웨어나 운영체제에 대한 세부 사항을 직접 다루지 않고도 프로그램을 작성할 수 있게 해주는 프로그래밍 언어다.


기술 (Technology)

기술은 소프트웨어 개발을 위한 도구, 방법론, 프레임워크, 라이브러리 등전체적인 집합을 의미한다.

 

  • 프레임워크/라이브러리: 특정 작업을 더 쉽게 할 수 있도록 도와주는 도구 📌
  • 개발 환경: 서버, 데이터베이스, 운영 체제, 클라우드 서비스 등과 같은 개발 환경

웹 기술: HTML, CSS, JavaScript, React, Node.js

데이터베이스 기술: MySQL, MongoDB, Redis

클라우드 서비스: AWS, Azure, Google Cloud Platform

DevOps 기술: Docker, Jenkins, Kubernetes


 

 

기술 스택 (Technology Stack)

 

소프트웨어 개발에서 사용하는 도구들의 조합으로, 언어뿐만 아니라 프레임워크, 라이브러리, 데이터베이스, 서버, 클라우드 서비스 등을 여러 기술적인 요소들이 포함된다.

 

프론트엔드 스택 (Frontend Stack)

사용자가 직접 상호작용하는 웹 애플리케이션의 부분을 개발하는 데 필요한 기술

  • HTML: 웹 페이지의 구조를 정의하는 마크업 언어.
  • CSS: 웹 페이지의 디자인과 레이아웃을 지정하는 스타일 시트 언어.
  • JavaScript: 웹 페이지에서 동적인 기능을 구현하는 스크립트 언어.
  • 프레임워크 / 라이브러리:
    • ReactJS: UI를 효율적으로 관리할 수 있는 자바스크립트 라이브러리.
    • Vue.js: 반응형 웹 애플리케이션을 쉽게 개발할 수 있는 프레임워크.
    • Angular: Google에서 개발한 자바스크립트 프레임워크, SPA(Single Page Application) 개발에 유리.
  • CSS 프레임워크:
    • Bootstrap: 빠르게 반응형 웹을 개발할 수 있는 CSS 프레임워크.
    • Tailwind CSS: 유틸리티 기반의 CSS 프레임워크로, 커스터마이징이 용이.

백엔드 스택 (Backend Stack)

사용자가 직접 상호작용하지 않는 서버, 데이터베이스, 애플리케이션 로직 등을 관리하는 기술

  • 서버 사이드 언어:
    • Node.js: 자바스크립트로 서버 사이드 애플리케이션을 작성할 수 있게 해주는 런타임.
    • Java: 엔터프라이즈 애플리케이션 개발에 주로 사용되는 객체 지향 프로그래밍 언어.
    • Python: 간결한 문법과 강력한 라이브러리로 서버 사이드 개발에 많이 사용.
    • Ruby: Ruby on Rails 프레임워크와 함께 웹 애플리케이션 개발에 사용.
  • 웹 프레임워크:
    • Express.js: Node.js 환경에서 서버 애플리케이션을 간단히 만들 수 있는 프레임워크.
    • Spring: Java 기반의 강력한 백엔드 프레임워크.
    • Django: Python을 기반으로 한 웹 프레임워크, 강력한 관리 대시보드 제공.
    • Ruby on Rails: Ruby 언어를 기반으로 한 풀스택 웹 프레임워크.

데이터베이스 스택 (Database Stack)

애플리케이션의 데이터를 저장하고 관리하는 시스템

  • 관계형 데이터베이스 (RDBMS):
    • MySQL: 오픈소스 관계형 데이터베이스, SQL을 이용해 데이터를 관리.
    • PostgreSQL: ACID 트랜잭션 지원 및 확장성이 뛰어난 RDBMS.
    • Oracle DB: 기업용 데이터베이스 시스템.
  • 비관계형 데이터베이스 (NoSQL):
    • MongoDB: JSON 형식의 데이터를 저장하는 문서 기반 NoSQL 데이터베이스.
    • Cassandra: 대규모 데이터를 분산 처리할 수 있는 NoSQL 데이터베이스.
    • Redis: 주로 캐시나 세션 관리에 사용되는 빠른 NoSQL 데이터베이스.