반응형

안녕하세요! 오늘은 데이터 통신 및 교환에 있어 전문적이며 보편적인 언어인 XML에 대해 알아볼까 합니다.
쉽게 말해, XML은 데이터를 공유하고 전송하는 데 도움을 주는 언어로 생각하시면 됩니다.
개발자든 아니든 이 글을 통해 쉽게 이해할 수 있는 XML의 개념, 중요성, 특징들을 알게 되실 겁니다.
그럼 시작하겠습니다.

XML이란?

XML 이란 eXtensible Markup Language의 약자로, HTML과 같은 마크업 언어입니다.
1998년 W3C(World Wide Web Consortium)에 의해 개발되었습니다.
이 언어는 SGML(Standard Generalized Markup Language)에서 파생되었으며,
웹 문서의 공유를 목적으로 한 HTML에 비해 데이터의 저장과 전송에 더 적합한 구조를 제공하기 위해 만들어졌습니다.

"생각해 보세요, 우리가 커다란 나무에서 여러 가지 과일을 따듯이,
그 큰 나무가 바로 SGML이라는 기술입니다.
XML은 그 나무에서 따온 맛있는 한 종류의 과일이며,
특히 인터넷에서 정보를 주고받기 좋게 만들어진 과일입니다.
HTML도 같은 나무의 다른 과일처럼, 웹 페이지를 만드는 데 사용됩니다."

SGML의 복잡성을 단순화하여 웹 애플리케이션에서 쉽게 사용할 수 있도록 설계된 XML은
데이터의 이식성과 호환성을 크게 향상했습니다.
하지만 HTML과는 달리 웹 페이지를 만드는 것이 아니라,
웹 페이지 외부에서 데이터 자체를 표현하고 저장하기 위해 설계되었습니다.

XML 파일 구조

XML 파일은 ". xml" 확장자를 가진 파일로, 데이터와 그 데이터의 구조를 정의하기 위해 사용됩니다.
데이터와 그 구조를 명확하게 정의할 수 있으며,
이를 효과적으로 인터넷을 통해 전송하고,
서로 다른 시스템 간에 쉽게 공유할 수 있습니다.
이는 데이터를 읽고 이해하기 쉽게 만드는 데 큰 역할을 합니다.
XML 문서는 태그(tag)와 속성(attribute)으로 이루어진 계층적 구조를 가지고 있습니다.

"XML 문서를 만드는 것은 마치 큰 상자에 여러 작은 상자들을 넣고,
각 상자에 무엇이 들어있는지 적어 놓는 것과 비슷합니다.
'태그'는 상자에 붙은 라벨이며, '속성'은 그 상자에 대한 추가 정보를 제공합니다.
이런 방식으로 모든 것이 잘 정리되어 있어, 필요한 정보를 쉽게 찾을 수 있습니다."

모든 XML 문서는 루트(root) 요소를 포함하며,
이 안에 여러 자식(child) 요소를 포함할 수 있습니다.
예를 들어, <book> 태그는 하나의 책을 나타내며,
<title>, <author>와 같은 여러 자식 요소를 포함할 수 있습니다.
XML 문서는 반드시 닫는 태그를 포함해야 하며, 대소문자를 구분합니다.
또한, XML 선언은 문서의 최상단에 위치하며, 버전과 인코딩 타입을 명시합니다.

<?xml version="1.0" encoding="UTF-8"?>
<book>
  <title>XML for Beginners</title>
  <author>John Doe</author>
</book>

 

XML 스키마와 DTD

XML 스키마와 DTD(문서 형식 정의)는 XML 문서의 구조를 정의하고,

해당 문서 내의 데이터 타입을 검증하는 데 사용됩니다.

"상상해 보세요, 당신이 건축가이고, 건물을 짓기 전에 설계도를 그립니다.

XML 스키마와 DTD는 마치 그 건물의 설계도와 같습니다.

이들은 XML 문서가 어떤 구조를 가져야 하는지, 어떤 정보를 담을 수 있는지 정확히 알려줍니다.

이런 규칙들 덕분에 모든 정보가 제자리에 있고, 오류 없이 잘 작동합니다."

DTD는 XML의 초기 버전에서 사용되었으며, 스키마는 더 강력한 데이터 타입 지원과 네임스페이스를 제공합니다.

이러한 도구를 사용함으로써, 데이터의 일관성과 정확성을 보장할 수 있습니다.

플랫폼 및 프로그래밍 언어와의 독립성

XML은 대부분의 플랫폼과 프로그래밍 언어에서 처리할 수 있는 독립적인 형식입니다.
이 독립성은 다양한 시스템 간에 데이터를 교환하는 데 있어 큰 이점을 제공합니다.

XML 활용

개발자들은 웹 서비스, 구성 파일, 데이터베이스 등에서 XML을 사용합니다.
이를 통해 데이터가 어떻게 보이고 작동해야 하는지 설명하고, 데이터 전송과 표현을 동시에 처리할 수 있습니다.
또한, XML은 많은 시스템과 애플리케이션에서 중요한 역할을 하는 핵심 기술입니다.

XML의 장점과 단점

 

장점

XML은 데이터의 자기 기술적(self-descriptive) 특성과 텍스트 기반 구조로 인해 인간과 기계 모두에게 읽기 쉽습니다.

또한, 플랫폼 독립적이며, 확장 가능하고, 사용자 정의 태그를 통해 유연한 데이터 표현이 가능합니다.

 

단점

그러나 XML은 종종 파일 크기가 크고, 파싱(parsing) 시간이 오래 걸릴 수 있는 단점이 있습니다.

이는 네트워크 대역폭과 처리 성능에 영향을 줄 수 있습니다.

 

최근에는 JSON(JavaScript Object Notation)과 같은 경량의 데이터 교환 형식이 인기를 얻고 있습니다.

JSON은 텍스트 기반의 구조로, 웹 애플리케이션에서의 데이터 교환에 최적화되어 있으며,

XML에 비해 더 작은 파일 크기와 빠른 파싱 속도를 제공합니다.

"XML과 JSON을 비교하자면, XML은 전통적인 편지와 같고, JSON은 이메일 같습니다.

JSON은 더 빠르고 간단한 메시지를 주고받는 데 적합하다면,

XML은 더 많은 정보와 세부 사항을 담을 수 있어서, 복잡한 데이터를 다룰 때 유용합니다."

그러나 XML은 메타데이터와 네임스페이스 지원이 뛰어나고, 보다 복잡한 문서 구조를 표현하는 데 유리합니다.

SBOM과 Cyclone DX, SPDX에 대해 궁금하신 분들은 아래 링크를 참조해주세요

SBOM

CycloneDX

SPDX


XML의 유연성과 확장성은 다양한 분야에서 그 가치를 발휘합니다.

예를 들어, 금융 서비스에서는 거래 데이터의 교환, 의료 분야에서는 환자 정보의 공유,

출판에서는 디지털 책의 포맷팅에 XML을 활용합니다.

이러한 사례들은 XML이 다양한 시스템과 애플리케이션에서 데이터를 표준화하고,

교환하는 데 어떻게 중요한 역할을 하는지 보여줍니다.

 

오늘은 XML이 무엇인지, 그 중요성과 장점 등에 대해 알아보았습니다. 

데이터 구조의 표현과 공유에서 XML의 유연성과 확장성이 중요한 이유임을 이해할 수 있을 것입니다. 

다음 시간에는 다른 흥미로운 주제로 돌아오겠습니다. 

그럼 즐거운 하루 보내세요!


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

반응형
반응형

오늘은 개발자라면 꼭 알고 있어야 할 깃허브 (Github)
너무 어려워서 접근하기 힘든 깃허브지만
개발자가 꿈이 이 사라면 사용할 수밖에 없을 텐데요
오늘은 깃허브에서 이력서를 만들어보겠습니다.

깃(git)과 깃허브 (Github)에 대한 설명과 차이점은
아래 글을 참고해 주세요

 

저장소

먼저 깃 허브 가입을 하신 후에 
저장소 (Repository)를 만들어 

이력서 관련 파일들을 저장하겠습니다.

먼저 깃허브에 로그인한 후 Repository

(이제 쉽게 레포라고 부르겠습니다)

에서 New를 클릭하여 새 저장소를 만들어줍니다.

"Repository name"에 원하는

레포 이름을 입력해 줍니다.

저는 resume라고 입력하도록 하겠습니다.

코딩할 때와 마찬가지로 띄어쓰기

즉 스페이스바를 하지 마시고

두 개 단어 이상으로 설정하시려면

gildong-resume처럼

하이픈으로 연결해 주시길 바랍니다.

다 작성하셨다면 Add a README flie 체크 박스를

클릭하신 후

Create repository 버튼을 클릭하여

이력에서 쓸 레포를 만들어줍니다.


소스 작성 환경 만들기
VSCODE 편집기

자동으로 만들어진 레포가 열리면 그 상태에서
키보드 마침표. 를 눌러 주세요.
github.dev라는 편집기가 나타납니다.
온라인에서 사용할 수 있는 Vscode 편집기입니다.
만약 작업에 능숙하시고 따로 사용하시는 편집기가
있으시다면 그걸로 사용하셔도 무방합니다.
이제 이곳에 원하는 html 소스를 작성하여 작업하면
자동으로 깃허브 레포로 파일이 업로드되고,
내용 수정 역시 즉시 반영됩니다.

 

소스 작성 환경 만들기2
Codeswing

Codeswing은 우리가 직접 작성한 소스가
어떻게 반영되는지 바로 확인이 가능하도록
출력해 주는 기능을 가지고 있습니다.
작업하면서 잘 노출되고 있는지 확인하기 위해
설치해 주도록 하겠습니다.

왼쪽 사이드바에서 확장 아이콘을 클릭한 후 codeswing을 검색하여 설치해 주세요.
그리고 바로 마크업 (Markup)에 들어가도록 하겠습니다.
마크업이란 웹 브라우저가 이해할 수 있도록
기호를 사용하여 구성하는 것을 말합니다.

Index.html / Codeswing

VS Code에서 명령 팔레트를 통해

Codeswing을 검색하고

CodeSwing: Initialize Workspace as Swing

선택합니다.

그리고 HTML 파일을 만들기 위해

Basic: HTML-only 선택합니다.

정상적으로 선택했다면 편집기 화면이 두 개로 나뉘면서

왼쪽에는 index.html이 나타나고,

오른쪽에는 CodeSwing 화면이 나타납니다.

index.html은 우리가 앞으로 소스를 작성할 화면이고,

오른쪽의 CodeSwing은 소스를 작성하면서

결과를 확인하기 위한 화면입니다.

<html lang = "en"> -> <html lang = "ko">

index.html 화면에서 느낌표! 를 입력한 후

Enter 키를 눌러주세요.

웹 문서의 가장 기본적인 소스 코드가

자동으로 만들어집니다.

그곳에서 "en" 부분을 "ko"로 수정해 주세요.

깃은 영문 페이지로 만들어졌지만

우리는 한글로 작성할 것입니다.

<title>Document</title> <- <title>원하는 제목</title>

보이는 소스에서 <title> 태그는 웹 브라우저 탭에

표시되는 이력서 제목입니다.

Document 부분을 원하는 제목으로 바꿔주세요

html 마크업

본격적으로 html 마크업을 시작하도록 하겠습니다.

아래 소스를 복사해서 index.html 문서의

<body> 태그와 </body> 태그 사이에 삽입해 주세요

<header id="header">
  <!-- 이력서 헤더 : 이름과 타이틀 작성 -->
  <h1>이름</h1>
  <hr>
  타이틀 (예: 학생 등)
  <hr>
</header>

<main>
  <article id="mainLeft">
    <section>
      <h2>CONTACT</h2>
      <!-- 연락처 정보 -->
    </section>
    <section>
      <h2>SKILLS</h2>
      <!-- 자신이 잘할 수 있는 기술 -->
     </section>
     <section>
      <h2>EDUCATION</h2>
      <!-- 학력 -->
    </section>            
  </article>
  <article id="mainRight">
    <section>
     <h2>ABOUT</h2>
     <!-- 자기 소개 -->
    </section>
    <section>
      <h2>WORK EXPERIENCE</h2>
      <!-- 경력 -->
    </section>
  </article>
</main>

위와 같이 Codeswing에 출력된다면

아주 잘 따라오고 계신 겁니다.

<header id="header">
<!-- 이름과 타이틀 작성 -->
  <h1>이름</h1>
  <hr>
    타이틀 (예: 학생 등)
  <hr>
</header>


<header id="header">
<!-- 이력서 헤더 : 이름과 타이틀 작성 -->
  <h1>홍길동</h1>
  <hr>
    도적
  <hr>
</header>

이제 필요한 내용들을 각 소스 코드 사이에 써넣어 주시면 됩니다.

위의 예시를 보고 본인의 이력서 내용을 채워 넣어주세요.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>!!!</title>
</head>
<link rel="stylesheet" href="style.css">
<body>
    <header id="header">
        <h1>!!!</h1>
        <hr>
       !!!
        <hr>
      </header>
      <main>
        <article id="mainLeft">
          <section>
            <h2>CONTACT</h2>
        <p>
            <i class="fa fa-envelope" aria-hidden="true"></i>
            <a href=!!!</a>
        </p>
        <p>
            <i class="fa fa-github" aria-hidden="true"></i>
            <a href=!!!</a>
          </p>      
        <p>
            <i class=!!!</i>
            <a href=!!!</a>
          </p>      
          </section>
          <section>
            <h2>SKILLS</h2>
            !!!
           </section>
           <section>
            <h2>EDUCATION</h2>
            !!!
          </section>            
        </article>
        <article id="mainRight">
          <section>
            <h2>!!!</h2>
            !!!
            <ul>
            !!!
            </ul>  
            !!!
           </section>
            <section>
                <h2>ABOUT</h2>
               </section>
        </article>
      </main>
</body>
</html>
스타일 적용하기

너무 정직한 이력서를 조금만 스타일 수정해 보겠습니다.

왼쪽 탐색기 화면에서 새 파일을 추가해 줍니다.

style.css를 검색하시면 오른쪽에 

창 하나가 추가됩니다.

이제 이곳에 소스를 적어 스타일을 만든 것을 index.html에 적용시키려면

HTML 문서에 연결해 주어야 합니다.

link 태그를 사용하여 연결시켜주도록 합시다.

<link rel="stylesheet" href="style.css">

위 코드를 index.html 문서 </head> 태그

바로 앞에 삽입해 주세요.

Google에서 제공하는 Noto Sans KR 체로

폰트를 바꿔보도록 하겠습니다.

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR&display=swap');

body {
    max-width: 960px;    /* 최대 너비 */
    margin: auto;         /* 마진 auto - 내용을 화면 가운데 맞추기 위해  */
    font-family: "Noto Sans KR", "Nanum Gothic";        /* 글꼴 - 웹 폰트 */
    font-size:14px;     /* 글자 크기 */
}

(이제부터 style 창에서 작업합니다)

위 코드를 삽입해 주세요

적용됐는지 보시려면 오른쪽 위 재생 버튼을 클릭하고

Codeswing 창을 보시면 적용되어 있는 모습을

확인할 수 있습니다.

우리가 만든 문서 제목을 지정하는

<h1> 태그와 <h2> 태그에 대한 스타일도 만들겠습니다

h1 {
    font-size: 3rem;    /* 글자 크기 */
    letter-spacing: 0.6rem;  /* 자간 */
    padding-top: 1rem;   /* 위쪽 패딩 */
    padding-bottom: 1rem;   /*  아래쪽 패딩 */
}

h2 {
    font-size: 1.5rem;
    padding-bottom: 1em;
}

너무 일자로 출력되어 보기가 힘들어 

2줄로 배치를 바꾸고 싶은데

이럴 경우 CSS 그리드를 사용하시면 됩니다.

작성한 각 파트의 너비를 조절하여 

양쪽으로 출력될 수 있게 해보겠습니다.

main {
    display: grid;    /* css grid 사용 */
    grid-template-columns: 40% 60%; /* 왼쪽 40%, 오른쪽 60% */
    margin-top: 3rem;
}

CSS 그리드를 이용하여 너비를 조절하고 

2줄로 출력되게 만들었습니다.

조금 답답해서 여백을 추가하면서 

가운뎃 줄을 하나 긋도록 하겠습니다.

header {
    text-align: center;
    margin: auto 2rem;
}

section {
    margin: auto 1rem 4rem 2rem;
}

p {
    margin: 0.2rem auto;
}

hr {
    border: none;
    background-color: lightgray;
    height: 1px;
}

h1, h2 {
    font-weight: 100; 
    margin-bottom: 0;
}

i {
    margin-right: 0.5rem;    /* SNS 아이콘 오른쪽 여백 */
}
#mainLeft {
    border-right: 1px solid lightgray;
}

이제 조금 잘 보이는 것 같습니다.

자 이제 깃에 커밋 (commit)을 해보도록 하겠습니다

깃에 커밋을 한다는 말은 

변경된 사항을 저장한다는 말입니다.

사이드바에서 Source Control 아이콘을 클릭한 후,

맨 위에 커밋 메시지를 입력하고

바로 위의 체크 버튼을 클릭합니다.

소스 컨트롤 아이콘에 나와있는 3이라는 파란 숫자는

수정된 사항이 3개가 있다고 표시해 주는 겁니다.

깃허브에서도 자동으로 저장되어

잘 업로드되어 있는 걸 확인해 보실 수 있습니다.

깃허브 레포 화면에서 오른쪽에 있는

Settings을 클릭하고 Pages를 선택합니다.

오른쪽 화면에서 Source 항목을 보면

아직 None이라고 되어 있을 것입니다.

None을 클릭한 후 main을 선택합니다.

위 설정의 뜻은

레포 main 브랜치에 있는 파일들을 

사용하겠다는 뜻입니다.

마지막으로 Save를 클릭합니다.

페이지 설정을 하고 페이지 주소가 뜨는데

즉시 웹 사이트가 나타나지는 않을 수 있습니다.

404 오류 메시지가 뜨더라도 걱정하지 말고,

5~10분 후에 다시 접속해 보시길 바랍니다.

잘 따라오셨다면 아래와 같이 이력서가 나오게 됩니다.

(개인정보는 가렸습니다)

완성되었습니다.

감사합니다.


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

반응형
반응형

 

앞서 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