수많은 프로그래밍 언어
도대체 뭘 먼저 배워야 해?
개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때
수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다.
저걸 다 해야 하나..?
어떤 언어를 먼저 어떻게 배워야 하지?
오늘은 이 고민을 좀 덜어드리고
나에게 맞는 컴퓨터 언어는 어떤 것이 있을지 살펴보도록 하겠습니다.
먼저 각 언어들이 어떤 곳에서 쓰이고 있으며
내가 하고자 하는 일은 어떤 언어와 가장 잘 맞는지 알아보기 위해
프로그래밍 언어에 대해 간단히 알아보도록 하겠습니다.
나에게 맞는 스타일은 어떤 스타일일까?
프로그래밍 언어의 종류와 특성 그리고
나에게 맞는지를 확인하기 전에
절차 지향과 객체지향이라는 걸 알고 가면
이해하기 조금 더 수월할 것입니다.
절차 지향 절차 지향 프로그래밍에 쓰이는 언어를 절차 지향 언어라고 하며, 각 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 합니다. 자동차 제조를 예로 들자면, 자동차는 엔진, 차체, 핸들, 의자, 바퀴 순으로 차례대로 만들어져야 하며 서로 분리되어도 안 되고, 순서가 틀려도 안 됩니다. 대표적인 예로는 C 언어가 있습니다. Chat GPT는 이렇게 설명합니다. 객체지향 언어 (OOP):
|
객체지향 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어입니다. 먼저 객체를 예를 들자면, 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)과 컴퓨터가 제공하는 모든 기능 (화면이 켜짐, 소리가 남 등)이 전부 객체입니다. 각 컴퓨터의 모든 부품 (객체)를 적절히 연결하고 조립해서 컴퓨터가 제대로 작동하도록 만드는 것이라고 볼 수 있습니다. 우리가 익히 들어 알고 있는 자바, c++, 파이썬 이외에도 최초의 객체지향언어인 시뮬라67, 비주얼 베이직 닷넷, 액션스크립트, 스위프트 등 그 종류는 다양합니다. Chat GPT는 이렇게 설명합니다. 절차지향 언어:
|
(아주 간단히 아래 그림으로 대충 이해하시고 읽어주시기 바랍니다)
그렇다면 대표적으로 추려본 각 프로그래밍 언어의 특징은 무엇이며 스타일에 따른 언어 선택은 어떻게 해야 할지 매칭해 보았습니다.
프로그래밍 언어 | 패러다임 | 개발자 성향 | 스타일 |
Java | 객체지향 | 객체지향적 사고를 선호하는 개발자, 강한 타입 시스템과 긴밀한 메모리 관리를 중시하는 개발자 | 크로스 플랫폼 애플리케이션 개발, 대형 엔터프라이즈 시스템, 안드로이드 앱 개발 |
JavaScript | 주로 객체지향, 일부 절차지향 | 유연하고 동적인 언어에 적응력이 있는 개발자, 프론트엔드 및 백엔드 모두에서 작업하기를 원하는 개발자 (Full-Stack) | 웹 개발, Node.js를 이용한 서버 사이드 프로그래밍, 인터랙티브 웹 인터페이스 |
C | 절차지향 | 저수준 프로그래밍에 관심 있는 개발자, 시스템 수준의 이해와 세밀한 제어를 추구하는 개발자 | 시스템 프로그래밍, 임베디드 시스템, 성능이 중요한 애플리케이션 |
C# | 객체지향 | 객체지향 프로그래밍을 선호하는 개발자, 마이크로소프트 기술 스택과 통합된 개발 환경을 선호하는 개발자 | .NET 프레임워크를 이용한 애플리케이션 개발, 게임 개발 (Unity), 윈도우 기반 애플리케이션 |
C++ | 객체지향 및 절차지향 | 객체지향과 절차지향의 혼합을 선호하는 개발자, 복잡하고 성능 중심적인 시스템을 개발하는 개발자 | 고성능 컴퓨팅, 게임 개발, 시스템/애플리케이션 소프트웨어 개발 |
Python | 주로 객체지향, 일부 절차지향 | 가독성과 간결함을 중시하는 개발자, 다양한 영역에 적용 가능한 스크립트 언어를 선호하는 개발자 | 웹 개발, 데이터 과학과 인공지능, 간단한 스크립트 작성에서부터 복잡한 애플리케이션 개발까지 |
이번에는 개발 자니까 직접 코드가 어떤 형태로 되어있는지 보면서 비교 한번 해볼까요?
아래는 대표적인 다른 언어 딱 두 가지 C언어와 Python입니다.
<C 언어>
#include <stdio.h>
int main()
{
print("Hello")
print("world")
return 0;
}
<파이썬>
Print('Hello')
Print('world')
<C언어는 복잡하지만 빠르고 파이썬은 간결하지만 느리다>
C언어 : 컴파일러 (컴퓨터가 읽을 수 있는 기계어로
번역하여 컴파일을 만들어 컴퓨터가 한 번에
읽기 쉬워 속도가 빠릅니다)
파이썬 : 인터프리터 (컴퓨터가 한 줄씩 번역하고
읽는 과정을 거쳐서 속도가 조금 느립니다.)
아직 조금 어렵다면 아래 작성된 개발자 로드맵 글도 참고하여 읽어주시면 도움이 되실 겁니다.
https://jdcyber.tistory.com/13
오늘은 나의 성향에 맞는 프로그래밍언어에 대해 알아보았습니다.
간략하게 프로그래밍 언어에 대해서도 살펴봤는데요.
다음 글은 이 언어들 중
나에게 어떤 언어가 나에게 가장 잘 어울리는지
확인해 보고 알아보는 시간을 갖도록 하겠습니다.
궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!
'개발 > 로드맵' 카테고리의 다른 글
최적의 프로그래밍 언어 선택 가이드: 나에게 맞는 언어 찾기 (1) | 2024.04.22 |
---|---|
개발자 입문 기초부터 풀스택까지 로드맵 (공부 순서를 어떻게 해야 하나요?) (1) | 2023.12.08 |