블로그

  • Markdown이란?, 주요특징, 기본문법

    📝 Markdown이란?

    • Markdown(마크다운)은 가볍고 간단한 텍스트 서식 문법입니다.
    • HTML처럼 복잡한 태그 없이도 손쉽게 문서를 작성할 수 있습니다.
    • 깃허브(GitHub), 워드프레스(WordPress), Jupyter Notebook, 블로그, 노트 앱(예: Notion, Obsidian) 등에서 널리 사용됩니다.

     
     

    ✅ Markdown의 주요 특징

    🔹 1. 가볍고 간단한 문법

    • 기본 텍스트 파일(.md)에 서식을 추가하는 방식
    • 복잡한 코드 없이, *간단한 기호(#, , -, _) 만으로 서식을 지정 가능
    • 쉽게 작성 가능한 텍스트 식
    • 제대로 보면 HTML 구조로 변환 가능

    🔹 2. HTML, LaTeX 변환 가능

    • Markdown으로 작성한 문서는 HTML, PDF, DOCX 등 다양한 포맷으로 변환 가능
    • 예: 굵은 글씨 → 굵은 글씨

    🔹 3. 코드 작성에 최적화

    • 개발자들이 문서화할 때 자주 사용 (예: README.md, 블로그 문서)

    🔹 4. 여러 플랫폼에서 지원

    • GitHub, Jupyter Notebook, Notion, WordPress, Slack, Discord, Reddit 등에서 사용 가능

     
     

    📌 Markdown 기본 문법

    1️⃣ 제목(Header)

    # 제목 1 (H1)## 제목 2 (H2)### 제목 3 (H3)#### 제목 4 (H4)##### 제목 5 (H5)###### 제목 6 (H6)

    ➡ 출력 결과:

    제목 1 (H1)

    제목 2 (H2)

    제목 3 (H3)

    제목 4 (H4)

    제목 5 (H5)
    제목 6 (H6)

    2️⃣ 굵은 글씨 & 기울임

    **굵은 글씨****굵은 글씨**_기울임 글씨__기울임 글씨_**_굵고 기울임_****_굵고 기울임_**

    ➡ 출력 결과:

    굵은 글씨 굵은 글씨

    기울임 글씨 기울임 글씨

    굵고 기울임 굵고 기울임

    3️⃣ 목록 (List)

    - 순서 없는 목록
    - 순서 없는 목록
    - 순서 없는 목록
    1. 순서 있는 목록
    2. 순서 있는 목록
    3. 순서 있는 목록
    

    ➡ 출력 결과:

    • 순서 없는 목록
    • 순서 없는 목록
    • 순서 없는 목록
    1. 순서 있는 목록
    2. 순서 있는 목록
    3. 순서 있는 목록

    4️⃣ 링크 & 이미지

    [Google](https://www.google.com)
    ![마크다운](https://via.placeholder.com/150)
    

    ➡ 출력 결과:

    Google 마크다운

    5️⃣ 코드 블록

    ```python
    print("Hello, Markdown!")
    ```

    ➡ 출력 결과:

    print("Hello, Markdown!")
    

    6️⃣ 인용구 (Blockquote)

    인용문은 이렇게 작성합니다. 여러 줄도 가능합니다.

    ➡ 출력 결과:

    7️⃣ 수평선 (구분선)

    ---
    

    ➡ 출력 결과:


     
     

    🚀 Markdown vs HTML 비교

    기능MarkdownHTML
    제목# 제목<h1>제목</h1>
    굵은 글자**굵음**<strong>굵음</strong>
    가로운 목록- 항목<ul><li>항목</li></ul>

     
     

    🎯 Markdown 확장 문법

    • Markdown은 기본 문법 외에도 몇 가지 확장 문법을 제공합니다.

    3️⃣ 이모지 사용 (GitHub, Slack, Discord 지원)

    :smile: :rocket: :fire:
    

    ➡ 출력 결과: 🙂 :rocket: :fire:

     
     

    🔥 Markdown을 사용하는 곳

    • ✅ 개발 문서 (README.md in GitHub)
    • ✅ 블로그 글 (Jekyll, Hugo, Hexo 등)
    • ✅ 워드프레스 & 노션(Notion) 문서
    • ✅ Jupyter Notebook (데이터 분석, 머신러닝)
    • ✅ Slack, Discord 메시지 작성
    • ✅ Obsidian, Typora 같은 노트 앱

     
     

    🏆 결론: Markdown을 사용해야 하는 이유

    • ✔ 가볍고 빠름 (텍스트 기반)
    • ✔ 가독성이 좋음 (코드처럼 쓰지만, 일반 텍스트처럼 읽을 수 있음)
    • ✔ HTML보다 간단 (태그 없이 서식 추가 가능)
    • ✔ 다양한 플랫폼에서 사용 가능
  • 도커(Docker)란?, 핵심개념, 장단점, 기본명령어

    🐳 도커(Docker)란?

    • Docker는 애플리케이션을 컨테이너(container)라는 단위로 실행할 수 있도록 도와주는 가상화 기술입니다.
    • 컨테이너를 사용하면 애플리케이션과 필요한 모든 환경(라이브러리, 설정 파일 등)을 하나로 묶어 어디서든 동일한 환경에서 실행할 수 있습니다.

     
     
     


    💡 Docker의 핵심 개념

     

    1️⃣ 컨테이너(Container)

    • 애플리케이션과 실행에 필요한 모든 요소(코드, 라이브러리, 설정 등)를 포함한 독립적인 환경
    • 가상 머신(VM)과 달리 OS 전체를 포함하지 않고, 경량화된 실행 방식을 가짐
    • 어디서 실행해도 동일한 환경 보장 (Windows, Mac, Linux 상관없이 실행 가능)

     

    2️⃣ 이미지(Image)

    • 컨테이너를 실행하기 위한 설정된 파일 시스템과 애플리케이션을 포함한 패키지
    • 여러 개의 레이어(layer)로 구성되며, 변경이 필요할 경우 새 레이어를 추가하는 방식
    • Docker Hub 또는 개인 저장소에 업로드 가능

     

    3️⃣ Dockerfile

    • 컨테이너를 만들기 위한 설정 파일
    • 컨테이너를 생성할 때 실행할 명령어, 환경 변수, 설치 – 패키지, 실행 프로그램 등을 지정
    • docker build 명령어를 통해 이미지 생성 가능

     

    4️⃣ Docker Hub

    • 공식적으로 Docker 이미지를 공유하는 클라우드 기반 저장소
    • 다양한 운영 체제, 개발 프레임워크, 데이터베이스 등의 공식 Docker 이미지를 제공
    • 웹사이트 URL: https://hub.docker.com

     

    5️⃣ Docker Compose

    • 여러 개의 컨테이너를 한 번에 실행하기 위한 오케스트레이션 도구
    • docker-compose.yml 파일을 이용해 웹 서버, 데이터베이스, 캐시 서버 등을 한꺼번에 실행 가능

     
     
     


    💎 Docker의 장점

     

    1️⃣ 환경 일관성 유지

    • 개발 환경, 테스트 환경, 배포 환경이 모두 동일하게 유지됨 (더 이상 “내 로컬에서는 잘 되는데?” 없음!)
    • 개발자가 코드를 실행하는 환경과 실제 서버 환경이 동일하므로 예측 가능한 동작 가능

     

    2️⃣ 가벼운 컨테이너 (vs 가상 머신)

    • 가상 머신(VM)은 각각 별도의 OS를 설치해야 하지만, Docker 컨테이너는 호스트 OS의 커널을 공유하기 때문에 훨씬 가볍고 빠름
    • VM보다 메모리 사용량이 적고, 실행 속도가 빠름

     

    3️⃣ 빠른 배포 및 확장

    • 컨테이너 기반의 애플리케이션을 손쉽게 복사하고 여러 서버에서 실행 가능
    • 마이크로서비스 아키텍처(MSA)와 궁합이 잘 맞음

     

    4️⃣ 의존성 문제 해결

    • 특정 애플리케이션이 요구하는 라이브러리, 패키지, 설정 값을 컨테이너 안에서 완전히 독립적으로 유지 가능
    • 예: Python 3.7 기반 프로젝트와 Python 3.9 기반 프로젝트를 동시에 실행 가능

     

    5️⃣ 다양한 운영 체제 지원

    • Docker 이미지를 만들면 Linux, Windows, Mac 어디에서든 실행 가능
    • 클라우드, 로컬, 서버 어디서든 배포 가능

     
     
     


    ⚠️ Docker의 단점

     

    1️⃣ GUI 애플리케이션 지원이 어려움

    • Docker는 CLI(Command Line Interface) 환경에서 실행되므로, GUI 기반의 프로그램 실행은 어려움

     

    2️⃣ 성능 저하 가능성

    • 네이티브 실행보다는 약간의 성능 저하가 발생할 수 있음
    • 특히 디스크 I/O, 네트워크 속도가 중요한 애플리케이션에서는 성능 문제를 고려해야 함

     

    3️⃣ 초기 학습 필요

    • Docker를 처음 접하는 개발자에게는 Dockerfile, Compose, 네트워크 설정 등이 어렵게 느껴질 수 있음
    • 컨테이너 간의 네트워크 연결, 데이터 볼륨 관리 등을 익히는 데 시간이 걸림

     
     
     


    🖥️ Docker 기본 명령어

     

    1. Docker 설치 확인

    docker --version

     

    2. Docker 컨테이너 실행

    • hello-world 컨테이너를 실행하여 정상적으로 설치되었는지 확인
    docker run hello-world

     

    3. 실행 중인 컨테이너 확인

    • 현재 실행 중인 컨테이너 목록 조회
    docker ps

     

    4. 종료된 컨테이너 포함한 전체 목록 확인

    docker ps -a

     

    5. 컨테이너 중지

    docker stop [컨테이너 ID]
    

     

    6. 컨테이너 삭제

    docker rm [컨테이너 ID]

     

    7. 모든 컨테이너 강제 삭제

    docker rm -f $(docker ps -aq)

     

    8. Docker 이미지 목록 확인

    docker images

     

    9. Docker 이미지 삭제

    docker rmi [이미지 ID]

     

    10. Docker Compose 실행

    • docker-compose.yml 파일을 기반으로 여러 개의 컨테이너를 실행
    docker-compose up -d

     

    11. Docker 컨테이너내부로 파일복사

    docker cp 로컬경로 아이디:컨테이너내부경로
    • 예시 (로컬의 run.sh파일을 컨테이너내부의 /tmp로 복사):
    $ docker ps                     # 컨테이너 아이디 확인
    CONTAINER ID   IMAGE      COMMAND                ...
    1060abab28f6   server     "bash -c 'server…"     ...
    $ docker cp run.sh 1060:/tmp    # 파일 복사
    Successfully copied 337kB to 1060:/tmp

     

     

     


    🏁 결론

    • Docker는 애플리케이션을 쉽고 빠르게 배포할 수 있도록 도와주는 컨테이너 기술입니다.
    • 가벼우면서도 환경 일관성을 유지할 수 있어 개발, 테스트, 운영 환경에서 매우 유용하게 활용됩니다.

    ✅ Docker가 필요한 경우

    • 여러 개발 환경(Windows, Mac, Linux)에서 동일한 환경을 유지해야 할 때
    • 배포 자동화를 원할 때
    • 여러 개의 애플리케이션을 컨테이너로 관리하고 싶을 때
    • 마이크로서비스 아키텍처(MSA) 기반의 애플리케이션을 구축할 때

    💡 Docker는 현대 소프트웨어 개발에서 필수적인 도구 중 하나이며, DevOps, CI/CD(지속적 통합/배포)에도 자주 사용됩니다! 🚀

     
     
     

    참고자료

  • 안녕하세요!

    워드프레스에 오신 것을 환영합니다. 이것은 첫 글입니다. 바로 편집하거나 삭제한 다음 쓰기 시작하세요!