개발/개발 이야기

각 언어와 기술 스택, 목적

꿈을 파는 두더지 2024. 2. 1. 21:13

대표적인 개발 언어와 기술 스택


들어가며

과거부터 지금까지 많은 개발 언어가 있고 이를 이용하여 만들어진 기술 스택들이 존재한다.
하지만 이들이 어떤 곳에 주로 쓰이고 어떤 목적으로 이용되고 있는지, 그리고 우리가 왜 배워야되는지라고 묻는다면 답변하기 힘들 수 있다.
필자 역시 그랬고, 이 기회에 대표적인 개발 언어와 기술 스택에 대해 정리해보았다.

 

1. Python

데이터 분석, 머신러닝, 인공 지능 등 다양한 분야에서 사용되는 다목적 프로그래밍 언어.
현재는 많은 학교에서 프로그래밍 언어로 채택하고 있다.

 

스택

1. 데이터 분석
  -  Pandas, Numpy : 데이터 조작 및 분석을 위한 라이브러리
  -  Matplolib, Seaborn, Plotly : 데이터 시각화를 위한 라이브러리

2. 머신 러닝
  - TensorFlow, PyTorch : 머신러닝 과 딥러닝 모델 구축을 위한 라이브러리

3. 웹 개발
  - Django, Flask : 보편적인 웹 프레임워크

 

목적

1. 다양한 라이브러리와 프레임워크가 존재, 대표적인 TensorFlow와 PyTorch AI 라이브러리 또한 Python으로 제작됨.
2. 간결함과 높은 가독성으로 입문자가 쉽게 접할 수 있음. 실제로 웹 프레임워크 Django, Flask는 입문하기 쉬움.
3. 다른 언어와의 통합이 용이, 성능 최적화가 필요한 부분에서 확장성이 높음.

 

참고
https://m.ddaily.co.kr/page/view/2023081311274732209

 

왜 개발자들은 파이썬을 선호할까 [IT백과]

파이썬 로고 [ⓒ파이썬]...

m.ddaily.co.kr

https://library.gabia.com/contents/9256/

 

가비아 라이브러리

IT 콘텐츠 허브

library.gabia.com

 

 

 

2. JavaScript

동적 웹 페이지 및 웹 애플리케이션을 구현하는 프로그래밍 언어. 일반적으로 웹 페이지를 만들때 대부분 사용한다.
(html, css, javascript가 함께 이용되는데 이때 동적 기능들은 JavaScript가 담당)

 

스택 (웹 개발)

1.  프론트엔드
  -  React : Facebook에서 개발, Virtual DOM 기술을 활용, 컴포넌트 기반 아키텍처 제공
  -  Angular : Google에서 개발,  양방향 데이터 바인딩 및 컴포넌트 기반 구조가 특징
  -  Vue.js : 개발자의 간편성을 고려, 가볍고 직관적인 API를 제공


2. 백엔드 :
  -  Node.js : JavaScript을 서버 사이드에서 실행할 수 있는 런타임 환경, 빠르게 개발할 수 있는 것이 특징
  -  Express.js : Node.js 기반 프레임워크, 작거나 중간 규모의 프로젝트에서 주로 이용
  -  Nest.js : Node.js 기반 프레임워크, 대규모 프로젝트에서 주로 이용

 

목적

1. 클라이언트와 서버 모두에서 사용가능, 단일 언어로 전체 웹 어플리케이션 제작 가능.
2. 모든 웹 브라우저에서 채용하고 있으므로 웹 개발에 필수적임.
3. 난이도가 낮으며 인기가 많음. 다양한 라이브러리와 프레임 워크 존재.

 

참고
https://velog.io/@nittre/Pros-and-Cons-of-JavaScript-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90

 

Pros and Cons of JavaScript (자바스크립트의 장단점)

자바스크립트는 인터프리터 언어이기 때문에, 자바와 같이 컴파일이 필요한 다른 프로그래밍 언어에 비해 시간이 적게 소요된다.

velog.io

https://modulabs.co.kr/blog/javascript-what/

 

JavaScript(자바스크립트)는 무엇인가요? I 자바스크립트 기초 가이드

JavaScript는 웹개발자들에게 필수적인 언어입니다. JavaScript는 무엇이며, 어디에서 사용되는지 쉽게 설명해보았습니다. JavaScript 역사와 기초 정보가 포함되어 있습니다.

modulabs.co.kr

 

 

 

3. Java & Kotlin

Java는 객체지향으로 사용되는 대표적인 프로그래밍 언어. 주로 Spring 등의 웹 프레임워크와 Android 등 앱 제작에 사용되었다. 다만 무겁다는 단점으로 인해 이를 보완하는 Kotlin이 등장하였다.

 

스택

1.  웹 개발 :
  -  Spring : Java에서 사용하는 대표적인 웹 프레임워크. MVC 아키텍처를 통해 유지보수 및 테스트 용이
  -  Spring Boot : Spring을 보완하고 확장하여 빠르고 효율적인 개발을 제공. 프로젝트 초기 설정이 매우 간편


2. 앱 개발 :
  -  Android : 객제지향이라는 특징으로 여러 플랫폼에서 동작할 수 있는 장점으로 인해 처음 앱 제작으로 Java가 채택

 

목적

1. 제일 보편적인 언어, 그리고 많은 레퍼런스. 대표적인 객체 지향 언어.
2. Java Spring에서 지원해주는 Ioc, DI 등을 통해 객체지향이 지닌 다형성이라는 특징을 편리하게 이용 가능.
3. 코틀린은 입문 난이도가 높지만 Java에서 사용하는 코드를 단축시킬 수 있는 큰 장점이 존재함.

 

참고
https://www.elancer.co.kr/blog/view?seq=47

 

프로그래밍 언어 순위 1위, 자바(Java) 개발자가 하는 일은? | 이랜서 블로그

국내 최고 인기 프로그래밍 언어 1위는 자바(Java)인 것으로 나타났습니다. 자바 개발자가 하는 일은 무엇이며, 자바 개발자로서 성공적인 커리어를 구축해 나가려면 어떤 스킬이 필요할까요? |

www.elancer.co.kr

https://velog.io/@yyy96/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B8%B0%EC%88%A0%EC%8A%A4%ED%83%9D

 

프로젝트 기술 스택에 대한 정리

왜 다음과 같은 기술 스택들을 선택하고 사용하였을까?

velog.io

https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS7811735294

 

[Java와 Kotlin 비교] 안드로이드 앱 개발, 자바와 코틀린의 차이를 정리했습니다.

안녕하세요! 오늘은 IOS와 함께 스마트폰 OS의 대명사가 된 안드로이드(Android)와 2017년 5월에 공식 개발 언어로 채택한 코틀린(Kotlin)에 대하여 간단하게 알아보겠습니다. 먼저 안드로이드가 동작

www.hanbit.co.kr

 

 

4. C / C++ / C#

C는 하드웨어에 가까운 저수준 언어로, 메모리 관리와 하드웨어 제어에 용이하다. C++은 C에서 객체지향 프로그래밍 개념을 도입하며 클래스와 상속을 지원한다.  C#은 Microsoft에서 개발된 언어로 컴포넌트 지향 프로그래밍으로 설명된다.

 

스택 (언어별 분류)

 1.  C언어
  -  Unix, Linux, Windows 같은 운영 체제 개발
  -  리소스가 제한된 임베디드 시스템 개발
  -  가상 머신 및 보안 소프트웨어 개발


2. C++
  -  Unreal Engine과 Unity 같은 게임 엔진 개발
  -  컴퓨터 그래픽스 및 비전 어플리케이션 개발 (OpenCV같은 라이브러리도 C++로 구현됨)
  -  C와 비슷한 형태로 인해 임베디드, 로봇 공학, 시스템 등 다양한 분야에서 활용됨


3. C#
  -  어플리케이션 핵심 프레임워크인 .NET 개발의 핵심 언어
  -  Microsoft의 지원으로 윈도우 플랫폼 기반 어플리케이션 제작에 용이
  -  C++와 마찬가지로 어플리케이션, IOT, 게임 등 다양한 분야에 활용됨 (단, C++와 분야와 조금 다름)

 

목적

 1. C언어는 높은 성능과 효율성 때문에 주로 임베디드 또는 시스템 프로그래밍에 이용됨.
 2. C++은 높은 성능과 그래픽 처리 능력에 유용하여 게임 엔진이나 그래픽 제작에 이용됨.
 3. C#은 .NET 프레임워크를 기반으로 하여 견고하고 보안성이 높은 프로그램을 제작에 이용됨.

 

참고
https://www.elancer.co.kr/blog/view?seq=52

 

C 언어, C++, C#의 차이점 이해하기(개발자 구인하기] | 이랜서 블로그

우리 회사에 맞는 프로젝트는 어떤 프로그래밍 언어일까요? C언어, C++, C#의 각 특성과 차이점, 장단점을 알아보세요. | C C++, C 언어 의미, C 언어 연산자, C 언어 문자열, C 언어 기초, C 언어 코딩, C

www.elancer.co.kr

https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8495521822

 

비슷해 보이지만 서로 다른 프로그래밍 언어 C, C++, C#의 차이

C와 C++그리고 C#은 비슷해 보이지만, 서로 다른 프로그래밍 언어입니다. 세 언어의 차이를 요약하면 C는 절차적 프로그래밍 언어이고 C++는 객체 지향 프로그래밍 언어이며 C#은 Windows 애플리케이

www.hanbit.co.kr

https://dotnet.microsoft.com/ko-kr/learn/dotnet/what-is-dotnet-framework

 

.NET 프레임워크란 무엇입니까? 소프트웨어 개발 프레임워크.

.NET Framework는 Windows에서 앱을 빌드하고 실행하는 데 사용됩니다. Linux, macOS, Windows, iOS, Android 등을 지원하는 .NET 개발자 플랫폼의 일부입니다.

dotnet.microsoft.com

 

 

5. SQL

'Structured Query Language'의 약자로, 데이터베이스에서 데이터를 추출하고 조작하는 데에 사용하는 데이터 처리 언어.
최근 웹에서는 ORM을 이용하여 데이터베이스에 쉽게 접근하지만 데이터를 효율적으로 관리하기 위해서는 SQL언어는 필수적이다.

 

스택 (대표적인 기술들)

1.  MySQL, PostgreSQL
  -  보편적으로 많이 사용하는 RDBMS, 다양한 운영체제와 연동가능 
  특히 PostgreSQL은 객체 지향 기능을 지원하며 사용자가 직접 데이터 형식을 정의 가능


2. MongoDB
  -  대표적인 NoSQL 데이터베이스, JSON 형태의 동적인 문서로 저장됨
  -  대체로 복잡한 쿼리와 대용량 데이터 다루는데 적합, 구조적이지 않은 데이터 활용에 사용됨


3. Redis
  -  NoSQL 데이터베이스, 키-값 구조로 데이터를 저장함. (문자열, 해시 등 다양한 데이터 타입 지원)
  -  주로 캐싱에 사용되기에 빠른 읽기가 가능하다.


4. Elastic Search
  -  NoSQL 분야에 사용되는 분산 검색 및 분석 엔진
  -  SQL과 유사한 형태의 언어인 SQL-like Query DSL을 이용
  -  여러 노드에 데이터를 분산 저장하고 병렬 처리함으로써 다양한 검색 엔진과 로그 분석에 이용됨

 

목적

 1. 데이터베이스 크기가 커져도 성능을 유지할 수 있는 확장성을 지님.
 2. 데이터베이스에 대한 보안 기능 제공 (접근 권한 관리 및 암호화)
 3. 쿼리 최적화를 하는 것이 제일 중요한 관건.

 

참고
https://prmblogs.tistory.com/30

 

SQL이란 무엇인가요? Sql의 특징, 장단점 내용 정리

Sql 이란 ? SQL ( Structured Query Language )은 구문 언어로서 데이터베이스 관리 시스템 (DBMS)에서 데이터를 조작하고 검색하기 위한 표준화된 언어입니다. SQL은 대표적인 관계형 데이터베이스 관리 시

prmblogs.tistory.com

https://www.icia.co.kr/community/board/view/2/1/89

 

SQL이란? (정의, 특성, 명령어) | 인천일보아카데미

1. SQL(Structured Query Language, 구조적 질의 언어)이란?  SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의…

www.icia.co.kr

https://aws.amazon.com/ko/what-is/sql/

 

SQL이란 무엇인가요? - 구조적 쿼리 언어(SQL) 설명 - AWS

구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과

aws.amazon.com

 

마치며

지금까지 전반적인 언어와 개발 스택에 대해 알아보았다.
다음에는 최근에 뜨는 언어와 개발 스택에 대해 서술하며 이들의 특징 및 장단점을 알아볼 예정이다.