반응형

오늘은 최적의 프로그래밍 언어를 선택하는
가이드 글을 작성해 보겠습니다.

현대 IT 산업에서 프로그래밍 언어의 역할은 중요하며,
다양한 언어가 각자의 특성과 용도로 활용됩니다.
개발자가 되려는 초보자든, 경력을 확장하고자 하는 전문가든,
적절한 프로그래밍 언어 선택은 경력의 방향을 결정짓는 핵심 요소입니다.
이 글에서는 주요 프로그래밍 언어의 특성과 각 언어가 어울리는 사용 환경에 대해 자세히 탐구하고,
독자의 필요와 목표에 맞는 언어를 선택할 수 있는 방법을 제공하겠습니다.


  1. 프로그래밍 언어의 역할과 중요성
    • 프로그래밍 언어는 소프트웨어 개발의 기반입니다.
      각 언어는 특정 도메인이나 작업에 적합한 독특한 특성과 기능을 가지고 있습니다.
      예를 들어, 웹 개발, 시스템 프로그래밍, 모바일 애플리케이션 개발 등 각 분야에서 선호되는 언어가 다릅니다.
  2. 주요 프로그래밍 언어의 특징 및 적용 분야
    • Python: 직관적인 문법과 높은 가독성으로 초보자에게 추천됩니다. 데이터 과학, 웹 개발, 자동화 등 다양한 분야에서 널리 사용됩니다.
    • Java: 플랫폼 독립적이며, 대규모 시스템 개발에 적합합니다. 안드로이드 앱 개발과 엔터프라이즈 급 애플리케이션에 주로 사용됩니다.
    • JavaScript: 웹 프론트엔드 개발에 필수적이며, Node.js를 통해 백엔드에서도 활용됩니다.
    • C 언어: 시스템 프로그래밍과 임베디드 시스템 개발에 이상적입니다. 고성능이 요구되는 어플리케이션에 주로 사용됩니다.
    • C++: C의 직접적인 확장으로, 게임 개발, 실시간 시스템, 고성능 서버 등에서 사용됩니다.
    • C#: 주로 마이크로소프트의 .NET 프레임워크에서 사용되며, 게임 개발(Unity 엔진 사용)에도 인기가 있습니다.
    • PHP: 서버 측 웹 개발에 강력하며, WordPress와 같은 CMS 개발에 자주 사용됩니다.
    • HTML/CSS: 웹 페이지의 구조와 스타일을 정의하는 데 필수적입니다.
    • Swift: iOS 및 macOS 애플리케이션 개발에 사용되며, Apple 생태계에서 매우 중요합니다.
    • Kotlin: Android 개발에 최적화된 언어로, Java의 대안으로 빠르게 자리잡고 있습니다.
  3. 언어 선택 시 고려해야 할 요소
    • 목적 및 프로젝트 요구 사항: 개발하고자 하는 애플리케이션의 유형에 따라 적합한 언어를 선택해야 합니다.
    • 학습 곡선: 언어의 복잡성과 학습 자원의 가용성을 고려하세요.
    • 커뮤니티 및 지원: 강력한 개발자 커뮤니티와 충분한 학습 자료가 있는 언어는 시작하기에 좋습니다.
    • 경력 전망 및 시장 수요: 직업 시장에서의 수요와 경력 전망도 중요한 선택 요소입니다.

Github Push 순위 (22년 1분기)

Github에서 Push는 자신이 작업한 내용을 깃허브 서버에 올리는 기능입니다. 
2022년 1분기 Push 기능에서 자주 사용된 개발 언어 순위 1~10위는 아래와 같습니다.

1
Python
2
Java
3
JavaScript
4
C++
5
PHP
6
TypeScript
7
C
8
Go
9
Shell
10
Ruby

Tiobe 프로그래밍 언어 순위 (22년)

TIOBE는 소프트웨어 사용성과 소스 코드의 품질을 검사하고 관리하는 회사로
TIOBE Index를 통해 개발 언어의 인기 순위를 알려줍니다.
프로그래밍 언어 순위는 한 달에 한 번씩 업데이트되며
산정 기준은 구글, Bing, 야후, 위키피디아, 아마존, 유튜브와 같은
인기 검색 엔진 검색 빈도수에 더해 소프트웨어의 프로그래밍 언어 사용량을 기반으로 합니다.
2022년 9월 Tiobe index 프로그래밍 언어 순위는 아래와 같습니다.

1
Python
2
C
3
Java
4
C++
5
C#
6
Visual Basic
7
JavaScript
8
Assembly language
9
SQL
10
PHP

파이썬과 자바가 항상 높은 순위에 있네요!


그렇다면 나는 어떤 언어를 공부해야 할까요?

어느 한 곳에서 완벽한 프로그래밍 언어는 없습니다. 
특정 분야에서 강점을 가지면, 다른 분야에서 약점을 가지기 마련입니다. 
 
C나 C++ 같은 언어는 속도가 빠르지만, 배우기 어렵고 개발하는데 시간이 다른 언어들에 비해 오래 걸립니다. 
Python 같은 언어는 개발 속도가 빠르고 가독성이 높다는 장점은 있지만 실행 속도가 다른 언어들에 비해 느립니다.  
이와 같이 목적과 하고자 하는 일의 특성에 따라 선호되는 언어가 다릅니다. 
그래서 우리는 하고자 하는 일을 명확히 파악하고 가중치를 두어 언어를 선택해야 합니다. 
 
여러분은 프로세스와 관련된 서버(server-side)와 데이터베이스를 관리해 주는 백엔드를 하고 싶으신가요? 
사용자와 직접 만나 부딪히는 레이아웃을 고민하고 짜는 프론트앤드를 하고 싶으신가요?
데이터를 분석하고 솔루션을 내주는 데이터 분석가가 되고 싶으신가요?


프로그래밍 언어를 선택하는 것은 당신의 경력 목표, 관심 있는 기술 영역,
그리고 학습할 준비가 되어 있는 어려움의 수준에 따라 달라집니다.
여기서는 프론트엔드와 백엔드 개발에 필요한 주요 프로그래밍 언어와
그 사용 목적을 명확하게 구분하여 표로 정리해 보겠습니다.
아래 표는 각 언어가 어떻게 활용되는지,
어떤 분야에 적합한지에 대한 간략한 가이드를 제공해 보겠습니다.


프론트엔드 개발

언어/기술목적추가 공부 추천
HTML웹 페이지의 구조 설계-
CSS웹 페이지의 스타일링과 레이아웃 디자인-
JavaScript동적인 웹 페이지 기능 구현AngularJS, ReactJS, Bootstrap

프론트엔드 개발자는 사용자 인터페이스를 생성하고 개선하는 역할을 담당합니다.
이를 위해 웹 표준 기술인 HTML과 CSS를 통해 웹의 구조와 스타일을 정의하고,
JavaScript로 웹 페이지에 상호작용을 추가합니다.
또한, AngularJS나 ReactJS 같은 모던 자바스크립트 프레임워크를 학습하여
더 복잡하고 동적인 웹 애플리케이션을 구축할 수 있습니다.


백엔드 개발

언어목적추가 정보
PHP웹 서버 스크립트 및 콘텐츠 관리 시스템 개발-
Node.js서버 사이드 스크립트 구현JavaScript 기반
C++고성능 백엔드 서비스 개발-
Java대규모 엔터프라이즈 시스템 및 안드로이드 앱-
Python데이터 처리 및 백엔드 로직 개발빅 데이터, 인공지능 분야 선호

백엔드 개발자는 클라이언트(사용자)가 볼 수 없는 서버, 애플리케이션, 데이터베이스 관리 등을 담당합니다.
이들은 사용자 요청을 처리하고 적절한 출력을 제공하는 로직을 구현합니다.
PHP, Node.js, Java, Python 등 다양한 언어가 백엔드 개발에 활용되며,
선택은 프로젝트 요구 사항과 개인의 기술 선호도에 따라 달라질 수 있습니다.


개발 분야별 언어 추천

관심 분야추천 언어
웹 개발HTML, CSS, JavaScript, PHP, Ruby
안드로이드 앱 개발Kotlin
iOS 앱 개발Swift
데이터 분석Python
시스템 프로그래밍C, C++
범용 프로그래밍Java, C

 
어떤 언어를 선택하여 공부하기로 마음먹는 계획보다 가장 중요한 것은
오늘부터 시작하세요
언어를 선택하여 시작했지만 굉장히 지루할 수도 재미있을 수 도 있습니다.
각자의 성향은 다양하니까요
그래서 우선 시작하고 맞지 않는 것 같다면 과감하게 다른 언어로 다시 시도해 보는
경험이 굉장히 중요할 것 같습니다.
계획을 잡고 어떻게 공부해야 하는지 어려움이 있으시다면 아래 글을 참고해 보세요!

https://jdcyber.tistory.com/15

프로그래밍 언어 어떤 걸 먼저 배워야할까? (쉬운 설명, 특징, 목적, 파이썬, 자바, 자바 스크립트

수많은 프로그래밍 언어 도대체 뭘 먼저 배워야 해? 개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때 수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다. 저걸 다 해야 하나..? 어떤 언어

jdcyber.tistory.com

https://jdcyber.tistory.com/13

개발자 입문부터 풀스택까지 로드맵 (공부 순서를 어떻게 해야 하나요?)

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서 어떤 프로그래밍 언어를 배워야 하는지 그 프로그래밍 언어는 어떤 것에 특화가 되어있고 목표로 잡은 것이 어떤 것이냐에 따라 달라진다

jdcyber.tistory.com


 
궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

반응형
반응형

프로그래밍 언어

수많은 프로그래밍 언어
도대체 뭘 먼저 배워야 해?

 

개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때

수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다.

 

저걸 다 해야 하나..?

 

어떤 언어를 먼저 어떻게 배워야 하지?

 

오늘은 이 고민을 좀 덜어드리고

나에게 맞는 컴퓨터 언어는 어떤 것이 있을지 살펴보도록 하겠습니다.

 

먼저 각 언어들이 어떤 곳에서 쓰이고 있으며

내가 하고자 하는 일은 어떤 언어와 가장 잘 맞는지 알아보기 위해

프로그래밍 언어에 대해 간단히 알아보도록 하겠습니다.


나에게 맞는 스타일은 어떤 스타일일까?

프로그래밍 독학

 

프로그래밍 언어의 종류와 특성 그리고

나에게 맞는지를 확인하기 전에

절차 지향과 객체지향이라는 걸 알고 가면

이해하기 조금 수월할 것입니다.


절차 지향
절차 지향 프로그래밍에 쓰이는 언어를
절차 지향 언어라고 하며,
각 개체를 순차적으로 처리하여 프로그램 전체가
유기적으로 연결되어야 합니다.
자동차 제조를 예로 들자면, 자동차는 엔진, 차체,
핸들, 의자, 바퀴 순으로
차례대로 만들어져야 하며 서로 분리되어도 안 되고, 순서가 틀려도 안 됩니다.
대표적인 예로는 C 언어가 있습니다.

Chat GPT는 이렇게 설명합니다.
객체지향 언어 (OOP):
  • "객체" 중심: 여기서 객체는 데이터(속성)와 이 데이터를 처리하는 함수(메서드)를 포함하는 단위입니다.
  • 재사용성과 확장성: 코드를 재사용하기 쉽고, 시스템을 확장하거나 수정하기 쉽습니다. 예를 들어, 클래스(객체를 정의하는 틀)를 사용하여 비슷한 객체를 쉽게 생성할 수 있습니다.
  • 예시 언어: Java, Python, C++
객체지향
객체지향언어란 프로그램을 다수의 객체로 만들고,
이들끼리 서로 상호작용하도록 만드는
프로그래밍 언어입니다.
먼저 객체를 예를 들자면, 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)과
컴퓨터가 제공하는 모든 기능
(화면이 켜짐, 소리가 남 등)이 전부 객체입니다.
각 컴퓨터의 모든 부품 (객체)를
적절히 연결하고 조립해서
컴퓨터가 제대로 작동하도록 만드는 것이라고
볼 수 있습니다.

우리가 익히 들어 알고 있는
자바, c++, 파이썬 이외에도
최초의 객체지향언어인 시뮬라67,
비주얼 베이직 닷넷, 액션스크립트, 스위프트 등
그 종류는 다양합니다.

Chat GPT는 이렇게 설명합니다.
절차지향 언어:
  • 절차/함수 중심: 프로그램은 함수의 집합으로 구성되며, 각 함수는 일련의 연산을 수행합니다.
  • 순차적 실행: 프로그램은 코드가 작성된 순서대로 위에서 아래로 실행됩니다.
  • 효율성: 일반적으로 시스템 자원을 효율적으로 사용하며, 실시간 시스템이나 하드웨어에 가까운 프로그래밍에 적합합니다.
  • 예시 언어: C, Fortran, Pascal

 

(아주 간단히 아래 그림으로 대충 이해하시고 읽어주시기 바랍니다)

절차지향


그렇다면 대표적으로 추려본 각 프로그래밍 언어의 특징은 무엇이며 스타일에 따른 언어 선택은 어떻게 해야 할지 매칭해 보았습니다.
프로그래밍 언어 패러다임 개발자 성향 스타일
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

 

개발자 입문부터 풀스택까지 로드맵 (공부 순서를 어떻게 해야 하나요?)

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서 어떤 프로그래밍 언어를 배워야 하는지 그 프로그래밍 언어는 어떤 것에 특화가 되어있고 목표로 잡은 것이 어떤 것이냐에 따라 달라진다

jdcyber.tistory.com


오늘은 나의 성향에 맞는 프로그래밍언어에 대해 알아보았습니다.

간략하게 프로그래밍 언어에 대해서도 살펴봤는데요.
다음 글은 이 언어들 중

나에게 어떤 언어가 나에게 가장 잘 어울리는지

확인해 보고 알아보는 시간을 갖도록 하겠습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

 

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서

어떤 프로그래밍 언어를 배워야 하는지

그 프로그래밍 언어는 어떤 것에 특화가 되어있고

목표로 잡은 것이 어떤 것이냐에 따라 달라진다고 말씀드렸습니다.

 

(앞서 2가지 글 보러 가기)

https://jdcyber.tistory.com/15

 

프로그래밍 언어 어떤 걸 먼저 배워야할까? (쉬운 설명, 특징, 목적, 파이썬, 자바, 자바 스크립트

수많은 프로그래밍 언어 도대체 뭘 먼저 배워야 해? 개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때 수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다. 저걸 다 해야 하나..? 어떤 언어

jdcyber.tistory.com

" 아직 저는 무엇을 해야 할지 잘 모르겠어요,
마냥 개발자가 되고 싶은데 목표는 나중에 세울래요.
어떤 걸 가장 먼저 배워야 할까요?"

 

배움의 순서는 없고 정답은 없지만

앞서 걸어간 선배들의 길을 취합해 보고 가장 합리적이고 빠른 길은 무엇일까요?

그래서 준비했습니다.

아무것도 모르겠다면 아래 순서대로 배워라!

(배움의 순서에 따라 써 내려갔기에 각 카테고리 별 설명이 자세하지 않을 수 있습니다.)

 


 

HTML
(HyperText Markup Language)

기본 중의 기본

 

HTML은 모든 방면에서 필수적으로 쓰이는 배우기 쉬운 난이도에 속합니다.

웹 페이지를 만들고 구조화하는 데 사용되는 표준 마크업 언어이며

웹 페이지의 콘텐츠와 구조를 정의하는 데 사용되고

웹 브라우저에 의해 해석되어 사용자에게 시각적으로 표시됩니다.

<!DOCTYPE html>
<html>
  <head>
    <title>Page Title</title>
  </head>
  <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
  </body>
</html>

(위와 같은 기본 구조를 가지고 있습니다.)

HTML은 웹 개발의 기초이며, 웹 페이지의 콘텐츠와 구조를 정의하는 데

필수적인 역할을 하므로 꼭 배워두셔야 합니다.


 

CSS
(Cascading Style Sheets)

 

 

CSS를 활용하면 만들어둔 웹 페이지를  아름답게 꾸밀 수 있습니다.

말인즉슨 HTML이나 XML 문서의 스타일을 지정하는 데 사용되는 스타일 시트 언어입니다.

웹 개발에서 CSS는 웹 페이지의 레이아웃, 색상, 글꼴 등을 조절하여

시각적인 표현을 개선하는 역할을 합니다.

CSS는 웹 페이지의 콘텐츠(HTML)와 디자인을 분리함으로써,

웹 개발자와 디자이너가 콘텐츠 구조에 영향을 주지 않고

시각적 스타일을 효율적으로 조절할 수 있게 해 줍니다.

CSS는 웹 개발에서 필수적인 기술 중 하나로,

HTML과 함께 사용되어 사용자에게 보다 매력적이고

기능적인 웹사이트를 제공하는 데 중요한 역할을 합니다

 

쉽게 얘기하자면

HTML로만 꾸민 웹페이지는 굉장히 투박하고 아무런 꾸밈이 없습니다.

이런 맨 얼굴에 화장을 해주는 것이 CSS입니다.

하지만 HTML과 CSS를 배웠다고 해서 이상적인 웹페이지를 만들 있는 것은 아닙니다.


Javascript

 

HTML + CSS로 이쁘게 생긴 사이트를 만들었다면 겉만 번지르르한 조금은 멍청한 웹페이지가 만들어졌을 겁니다.

이제 마우스로 클릭하여 움직이거나 현재 위치한 곳을 표시해 주거나 사진을 찍는 등의 기능이 들어간

인터랙티브 한 웹사이트로 발전하기 위해서 자바스크립트가 필요하죠
JavaScript는 웹 개발에서 매우 중요한 역할을 하며, 웹 기술의 발전과 함께 지속적으로 진화하고 있습니다.

그것의 유연성과 광범위한 사용으로 인해, 현대 웹 개발의 핵심 언어 중 하나로 자리 잡았습니다.

브라우저와 소통하는 언어인 자바스크립트는 꼭 배워야 합니다.

 

여기서 자바스크립트를 엄청 전문적으로 하라는 말은 아닙니다.

어느 정도 기본만 숙지하고 다음으로 넘어가셔도 됩니다.


 

Node JS

 

이제 우리는 자바스크립트를 웹페이지 안에서

브라우저를 통해서만 활용하는 것이 아니라 외부에서도 활용해 봐야 합니다.

이때 필요한 것이 바로 NodeJS

 

NodeJS를 잘 활용한다면 우리는 자바스크립트를 이용하여 웹 브라우저에서 벗어나

웹 서버를 만들 수 있고 파일을 생성할 수 있으며

데이터베이스와 통신하고 암호를 보호하고 쿠키를 제공할 수 있습니다.

또 실시간 애플리케이션을 구축할 수 있죠.

이러한 활동을 할 수 있는 곳이 바로 프레임워크라고 합니다.

Node.js는 그것의 효율성, 확장성 및 JavaScript와의 호환성으로 인해,

특히 웹 애플리케이션과 API 서버를 개발하는 데 널리 사용됩니다.

또한, JavaScript 개발자가 서버 측 프로그래밍에 쉽게 접근할 수 있게 하여,

풀스택 개발의 장벽을 낮추는 데 기여했습니다.


 

Express
(Express.js)

 

 

Express.js, 일반적으로 Express라고 불리는 이 프레임워크는

Node.js를 위한 가장 인기 있는 웹 애플리케이션 프레임워크 중 하나입니다.

Express는 웹 애플리케이션과 API를 빌드하는 데 사용되며,

Node.js의 핵심 기능을 확장하여 더 강력하고 유연한 웹 애플리케이션 개발을 가능하게 합니다.


Koa

 

 

이후 Koa를 한번 살펴볼 필요가 있습니다.

갑자기 koa는 들어본 적도 없는데요? 하실 수도 있습니다.

하지만 koa 웹 프레임워크를 주 프레임워크로 채택한 회사도 꽤 많이 있으며,

Express 제작자가 만든 koa는 Express를 하실 줄 안다면

 

배우는데 1시간 밖에 걸리지 않습니다.

1시간 만에 기술 능력에 한 줄 추가되는데 안 할 이유가 없겠죠

 

여기까지 오셨다면

데이터베이스를 구축해야 때가 오셨을 겁니다.


우선적으로 데이터베이스의 기본적인 개념과 원리를 학습합니다.

이는 데이터베이스가 어떻게 데이터를 저장, 검색, 업데이트, 삭제하는지 공부하신 후

관계형 데이터베이스 (SQL)을 학습하기 시작합니다.


 

SQL
(
Structured Query Language)


 

 

데이터베이스 관리 시스템에서 데이터를 저장, 검색, 수정 및 삭제하기 위해 사용되는 표준 프로그래밍 언어입니다.

관계형 데이터베이스 관리 시스템(RDBMS)에서 가장 널리 사용되는 언어로,

데이터베이스 스키마 생성 및 수정, 데이터 삽입, 업데이트, 삭제, 조회 등 다양한 작업을 수행합니다.

이곳에서 바로 많이 들어보셨을 Selct, Insert, 인덱싱, 쿼리 등을 배우시게됩니다.

SQL 데이터베이스 관리 조작에 필수적인 언어로,

관계형 데이터베이스를 사용하는 거의 모든 형태의 애플리케이션 개발에서 중요한 역할을 합니다.

데이터베이스와 상호 작용하는 필요한 강력한 기능을 제공하며,

데이터 기반 의사결정과 시스템 통합에 필수적인 도구입니다.


MySQL

 

MySQL 세계에서 가장 인기 있는

오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 하나입니다.

MySQL SQL (Structured Query Language) 사용하여 데이터를 관리하며,

다양한 운영 체제에서 사용할 있습니다.

기반 애플리케이션, 데이터 웨어하우징, e-commerce,

로깅 애플리케이션 다양한 분야에서 널리 사용됩니다.

MySQL 개발, 특히 PHP 함께

LAMP (Linux, Apache, MySQL, PHP/Python/Perl) 스택의 일부로서 매우 인기가 있습니다.

또한, 기업 환경에서도 성능, 확장성 신뢰성 때문에 널리 사용됩니다.

MySQL 소규모 프로젝트부터 대규모 엔터프라이즈 애플리케이션까지

다양한 요구 사항을 충족시킬 있는 유연한 데이터베이스 솔루션을 제공합니다.


난 관계형 데이터베이스가 싫다

Mysql이 싫다! 하시는 분들은 Nosql인 MongoDB를 사용하시면 됩니다.


 

mongoDB

 

 

MongoDB 고성능, 고가용성, 쉬운 확장성을 제공하는 오픈 소스 NoSQL 데이터베이스입니다.

전통적인 테이블 기반의 관계형 데이터베이스 시스템과 달리,

MongoDB 유연한 문서 지향(Document-Oriented) 모델을 사용합니다.

모델은 JSON 유사한 BSON 형식을 사용하여 데이터를 저장하며,

이로 인해 데이터 구조가 다양하고 변경이 자주 일어나는 애플리케이션에 적합합니다.

MongoDB 특히 대용량 데이터 처리, 실시간 분석, 모바일 소셜 애플리케이션,

콘텐츠 관리, IoT 등의 분야에서 강점을 가집니다. 데이터 구조의 변화가 잦거나,

데이터의 다양성과 복잡성이 높은 애플리케이션에 특히 적합합니다.

MongoDB는 SQL보다 훨씬 배우기 쉽습니다.


그런데
브라우저에서 HTML, CSS, JS를 배워보고

Backend에서 NodeJS를 학습했는데,
Javascript와 NodeJS가 너무 지루하고
자신에게 맞지 않는다고 생각이 들면
어떻게 해야 할까요?

 

Python

 

그때는 파이썬 (Python)을 배우시면 됩니다.

Life is too short, You need Python이라는 명언이 있죠

Python 고수준의 인터프리터 언어로,

간결하고 읽기 쉬운 코드를 통해 효율적인 프로그래밍을 가능하게 하는 프로그래밍 언어입니다.

Guido van Rossum 의해 1991년에 처음 발표되었으며,

다양한 프로그래밍 패러다임을 지원합니다.

Python 오픈 소스이며, 강력한 커뮤니티의 지원을 받고 있습니다.

Python 유연성, 확장성 개발자 친화적인 특성으로 인해,

세계적으로 많은 개발자와 기업들에게 사랑받고 있습니다.

초보자부터 전문가까지 다양한 수준의 프로그래머들이 사용할 있는

범용적이고 강력한 프로그래밍 언어입니다.

 

아래 파이썬 독학 시리즈를 연재중이니 확인해보세요!

https://jdcyber.tistory.com/14

 

파이썬 독학 #1 파이썬 (Python)이란? 설치 (쉬운 설명, 정의, IDLE, IDE, 특징, M1)

파이썬 독학 시리즈 파이썬 독학 #1 파이썬이란? (설치, 특징) 파이썬 (Python)이란 무엇인가? 'Life is too short, You need python.' 인생은 너무 짧으니 파이썬이 필요해 ​ 컴퓨터와 애플리케이션, 모든 전

jdcyber.tistory.com


파이썬을 배운 이후에는 어떻게 노선을 타야 할까요?

자바스크립트에서 NodeJS가 있었다면 파이썬에겐 Flask 있습니다.


Flask

Flask Python 기반의 가벼운 프레임워크입니다.
Armin Ronacher
Werkzeug Jinja2 라이브러리를 기반으로 만들었으며,

"마이크로" 프레임워크로 분류됩니다.

Flask "마이크로" 간단하고 핵심적인 기능만을 제공한다는 의미로,

Flask 자체는 최소한의 기능만을 제공하지만,
필요에 따라 다양한 확장 기능을 추가하여 사용할 있습니다.

Flask 간단한 개인 프로젝트부터 복잡한 기업 애플리케이션에 이르기까지

다양한 애플리케이션 개발에 적합합니다.

가벼움, 확장성, 그리고 Python 강력함으로

많은 개발자들에게 인기 있는 선택지가 되고 있습니다.

Flask를 활용하시다가 조금 더 심화된 많은 기능을 담은 프레임 워크에 대한 필요성이 느껴지신다면

그때 배우셔야 할 것은 바로


DJango

 

Django는 Python으로 작성된 고수준의 웹 프레임워크로,

빠른 개발과 깔끔하고 실용적인 디자인을 목표로 합니다.

Django는 "배터리 포함(batteries-included)" 접근 방식을 채택하여,

웹 애플리케이션 개발에 필요한 대부분의 기능을 기본적으로 제공합니다.

이러한 접근 방식은 개발자가 웹 애플리케이션의 핵심 기능 개발에 집중할 수 있게 해 주며,

개발 시간을 크게 단축시킵니다.

Django 대규모 애플리케이션 개발에 적합한 프레임워크로,

강력한 기능과 높은 수준의 추상화로 인해 많은 기업과 개발자들에게 인기가 높습니다.

뉴스 사이트, 소셜 네트워크, 콘텐츠 관리 시스템

다양한 종류의 웹사이트를 효율적으로 구축할 있습니다.


위에 순서대로 공부하시다 보면 중간에
파이썬과 자바스크립트
길로 가 나누어지셨을 텐데요
이 두 개의 구분이 사라지는 시간이 오게 됩니다.
바로 React를 배우게 된다면 말이죠

React

 

 

React (또는 React.js 또는 ReactJS라고도 ) 사용자 인터페이스를 구축하기 위한

JavaScript 라이브러리입니다.

Facebook에서 개발되었으며, 대규모, 고성능의 애플리케이션에서 데이터가 변경될

효율적으로 업데이트하고 렌더링하는 사용됩니다.

React 주로 싱글 페이지 애플리케이션(SPA) 레이어를 구축하는 사용됩니다.

React 동적인 애플리케이션 개발에 매우 효과적이며,

Facebook, Instagram, Airbnb 같은 많은 유명한 웹사이트와 앱에 사용됩니다.

그것의 유연성과 효율성으로 인해 세계적으로 널리 사용되는 프론트엔드 라이브러리 하나입니다.


반면에 백엔드에 특화되어 더욱 배워보고 싶으시다면 Docker를 배워야 할 시간입니다.


Docker

 

Docker는 컨테이너화를 통해 애플리케이션을 개발,

배포 및 실행하기 위한 오픈 소스 플랫폼입니다.

컨테이너화는 애플리케이션과 그 필요한 모든 의존성을 컨테이너라는 격리된 환경에 패키징 하는 것을 말합니다.

이는 애플리케이션이 다양한 컴퓨팅 환경에서 일관되게 동작할 수 있게 해 줍니다.

Docker는 개발자 및 운영 팀 사이의 협업을 강화하며,

애플리케이션의 배포와 확장을 용이하게 만들어,

현대적인 소프트웨어 개발 및 운영 방식의 핵심 요소로 자리 잡았습니다.


 

AWS AZURE ORACLE
  • AWS는 다양한 컴퓨팅, 스토리지, 데이터베이스 서비스를 제공하며, 백엔드 개발자가 필요로 하는 확장성, 유연성, 글로벌 인프라를 제공합니다.
  • 특히, AWS의 Lambda(서버리스 컴퓨팅), EC2(탄력적 컴퓨팅), RDS(관계형 데이터베이스 서비스)는 백엔드 개발에 널리 사용됩니다.
  • Azure는 마이크로소프트의 강력한 지원을 받으며, 특히 .NET 개발자에게 적합한 서비스와 통합을 제공합니다.
  • Azure의 Virtual Machines, App Services, Azure SQL Database는 백엔드 개발 및 배포에 필수적인 서비스입니다.
  • Oracle Cloud는 오라클 데이터베이스와의 통합에 특화된 클라우드 서비스를 제공하며, 엔터프라이즈급 애플리케이션에 적합합니다.
  • Oracle Cloud Infrastructure (OCI)는 고성능 컴퓨팅, 스토리지, 네트워킹 서비스를 제공하며, 특히 기업 데이터베이스 관리 및 분석에 강점을 가지고 있습니다.

 

백엔드 개발자가 이 클라우드 서비스들을 공부하고 활용함으로써,

효율적인 개발 환경을 구축하고, 더 넓은 범위의 서비스와 애플리케이션을 개발할 수 있는 능력을 갖출 수 있습니다.


 

정리

 

기본 웹 기술 학습 HTML → CSS → JavaScript 웹 페이지의 구조, 스타일링, 기능 구현
서버 사이드 프로그래밍: JavaScript(Node.js) JavaScript(Node.js) 백엔드 개발 기초, 서버 로직 구현
고급 JavaScript/Node.js 경로 Express.js → SQL → MySQL 백엔드 개발 심화, 데이터베이스 관리
Python 경로 Python → Flask → Django Python을 사용한 웹 개발, 다양한 웹 개발 측면에 초점
클라우드 및 컨테이너 기술 Docker → Kubernetes → AWS → Azure 애플리케이션 컨테이너화, 오케스트레이션, 클라우드 인프라 구축 및 관리
고급 프론트엔드 개발 React 동적인 사용자 인터페이스 구축에 필요한 현대적인 프론트엔드 프레임워크 학습

백엔드 개발 특화 순서 프론트엔드 개발 특화 순서
  1. HTML
  2. CSS
  3. JavaScript
  4. Node.js
  5. Express.js
  6. SQL
  7. MySQL
  8. Docker
  9. Kubernetes
  10. AWS/Azure
  1. HTML
  2. CSS
  3. JavaScript
  4. React
  5. 고급 JavaScript 프레임워크/라이브러리
    (예: Redux, React Router)
  6. 반응형 웹 디자인
  7. 웹 접근성 및 사용성
  8. 프론트엔드 테스팅 도구 (예: Jest, Cypress)

위 로드맵을 기본으로 여러 가지 갈래로 많이 나뉠 수 있습니다.

하나하나 기초부터 올라오시다 보면 지금도 다양하지만 앞으로 더 다양한 프레임워크 언어 등

트렌디한 개발 기술이 나올 것으로 예상됩니다.

공부 열심히 하시고 파이팅 하시길 바랍니다!


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts