728x90
반응형

MkDocs 설치 방법 

  • MkDocs를 활용해 Markdown(.md) 형식으로 작성된 가이드 문서를 효율적으로 관리 하는 방법에 대해 알아본다.

python 가상환경 생성 

  • MkDocs 는 python 을 통개 개발된 문서 관리 유틸이다. 
  • python  에서 제공 하는 가상환경(venv)을 만들어서MkDocs 를 설치 한다. 
#mkdocs 가상환경 생성 
python3 -m venv venv_mkdocs

#가상환경 활성화 
source venv_mkdocs/bin/activate
[guide_doc@my-rocky9.4:/home/guide_doc]$ python3 -m venv venv_mkdocs  
[guide_doc@my-rocky9.4:/home/guide_doc]$ ll
합계 0
drwxr-xr-x. 5 guide_doc guide_doc 74  1월 13 14:39 venv_mkdocs
[guide_doc@my-rocky9.4:/home/guide_doc]$ source venv_mkdocs/bin/activate 
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ 

MkDocs 설치 

  • pip 를 이용한 mkdocs 를 설치 한다. 
  • 설치후 mkdocs --version 를 이요해 버전을 확인 합니다. 
  • 삭제는 pip uninstall mkdocs 명령을 통해 삭제 할수 있습니다. 
pip3 install mkdocs
pip install --upgrade pip

# mkdocs 버전확인
mkdocs --version
mkdocs, version 1.6.1 from /home/guide_doc/venv_mkdocs/lib/python3.8/site-packages/mkdocs (Python 3.8)

 

MkDocs 프로젝트 생성 

  • mkdocs new 명령을 통해 문서를 관리할 프로젝트를 생성한다. 
mkdocs new md_guide

 

(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ mkdocs new md_guide
INFO    -  Creating project directory: md_guide
INFO    -  Writing config file: md_guide/mkdocs.yml
INFO    -  Writing initial docs: md_guide/docs/index.md
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ ll
합계 0
drwxr-xr-x. 3 guide_doc guide_doc 36  1월 13 14:51 md_guide
drwxr-xr-x. 5 guide_doc guide_doc 74  1월 13 14:39 venv_mkdocs
(venv_mkdocs) [guide_doc@my-rocky9.4:/home/guide_doc]$ tree -a md_guide/
md_guide/
├── docs
│   └── index.md
└── mkdocs.yml

 

 

MkDocs 서버 실행 

  • mkdocs serve 명령을 실행하면 브라우저에서 실시간으로 작성된 문서를 확인 할수 있다. 
  • 기본 수행시 로컬에서만 접속이 가능 하다. 
    • http://127.0.0.1:8000
## 로컬에서만 접속 가능 
mkdocs serve 

##외부 접속을 허용하려면 -a 0.0.0.0:8000 옵션을 사용 한다.
mkdocs serve -a 0.0.0.0:8000

#백그라운드 실행
nohup mkdocs serve -a 0.0.0.0:8000 > mkdocs.log 2>&1 &
  • 브라우저에 접속을 하면 아래 URL 을 통해 문서를 확인할수 있다. 

 

 

MkDocs  테마 적용 

pip install mkdocs-dracula-theme
  • vi mkdocs.yml 
site_name: My Docs
theme:
      name: dracula
theme:
    name: dracula

 

pip install mkdocs-material

MkDocs  플러그인 설치 

mkdocs-awesome-pages-plugin

  • 사이드바와 네비게이션을 자동 정렬 하는 플러그인
pip install mkdocs-awesome-pages-plugin
  • vi mkdocs.yml 
plugins:
    - search
    - awesome-pages

 

markdown_extensions

  • markdown 기능을 확장해서 사용 할수 있는 기능 
pip install markdown_extensions
pip install pymdown-extensions

 

  • vi mkdocs.yml
markdown_extensions:

  # Python Markdown
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - toc:
      permalink: true

  # Python Markdown Extensions
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.details
  - pymdownx.highlight
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.superfences
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde

확장 이름기능 설명설치 필요 여부

toc 문서 내 목차 생성 기본 제공
admonition 강조 블록 (노트, 경고, 팁 등) 생성 기본 제공
tables Markdown 표 지원 기본 제공
pymdownx.superfences 코드 블록 기능 확장 설치 필요
pymdownx.highlight 코드 강조 기능 향상 설치 필요
pymdownx.tabbed 탭으로 콘텐츠 구분 설치 필요
pymdownx.tasklist 체크박스 스타일 지원 설치 필요
pymdownx.details 접을 수 있는 세부정보 블록 생성 설치 필요
pymdownx.progressbar 진행 바 생성 설치 필요
abbr 약어 지원 기본 제공
meta 문서의 메타데이터를 추가 기본 제공

mkdocs-mermaid2-plugin

  • Mermaid 를 이용한 다이어그램을 표시해주는 기능 
pip install mkdocs-mermaid2-plugin
  • vi mkdocs.yml
markdown_extensions:
  - pymdownx.superfences:
        # make exceptions to highlighting of code:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:mermaid2.fence_mermaid_custom  
plugins:
  - mermaid2:
      version: 10.0.2
      theme: "dark"       # Mermaid 다이어그램 테마 (default, dark 등)
      # securityLevel: "loose" # 보안 수준 (loose로 설정하면 외부 자원 로드 가능)

MkDocs PDF

  • pdf 파일을  브라우져에서 출력해주는 기능입니다. 
pip install mkdocs-pdf
  • vi mkdocs.yml
# mkdocs.yml
markdown_extensions:
  - attr_list
plugins:
  - mkdocs-pdf
  • 사용법
![Alt text](<path to pdf>){ type=application/pdf style="min-height:25vh;width:100%" }

MkDocs navigator 설정 

  • material 테마 기준으로 nav 항목에서 좌측 side bar 와 top bar 매뉴 설정이 가능 하다.
  • vi mkdocs.yml
nav:
  - Home: index.md
  - About: about.md
  - Guides:
      - Getting Started: guides/getting-started.md
      - Advanced Topics: guides/advanced.md
 
  •  index.md
# Welcome to MkDocs

For full documentation visit [mkdocs.org](https://www.mkdocs.org).

## Commands

* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.

## Project layout

    mkdocs.yml    # The configuration file.
    docs/
        index.md  # The documentation homepage.
        ...       # Other markdown pages, images and other files.​
 

 

  • mkdocs 디렉토리 구조
$ tree -L 4
.
├── docs
│   ├── about.md
│   ├── doctech
│   │   ├── README.md
│   │   └── guides
│   │       ├── advanced.md
│   │       └── getting-started.md
│   └── index.md
├── mkdocs.yml
└── overrides

 

 

728x90
반응형

'IT지식' 카테고리의 다른 글

쉘스크립트  (0) 2024.11.08
[IT지식] REST FUL 이란?  (0) 2022.06.04
[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18
728x90
반응형

커널파라미터 변경 함수 

test.sh 
cat() {
  declare -A PROC=(
    ["/proc/sys/kernel/shmmax"]=42949675
    ["/proc/sys/kernel/shmmni"]=4096
    ["/proc/sys/kernel/shmall"]=2097152
    ["/proc/sys/fs/file-max"]=6815744
  )
  [[ ${PROC[$1]} == "" ]] && /usr/bin/cat $* || echo ${PROC[$1]}
}
free() { echo "Swap: 2048 0 2048"; }
free
cat /proc/sys/kernel/shmmax

 

Linux grep 사용법

  • 특정 문자열일 찾아서 중복 제거 하는 명령 
grep "찾는 문자열" log_file.log | sort | uniq

 

  • cut 명령을 사용해 중복 문자열 제거 하는 방법 
    • grep "첫번째 문자열 기준으로 로그의 패턴 문자를 1차 선별 한다. " log_file.log: ERROR_INVALID_PROTOCOL(-12030)를 포함한 줄을 로그 파일에서 검색합니다.
    • cut -d ' ' -f  5-14 : 공백(' ')을 구분자로 하여 다섯 번째 필드부터 끝까지의 메시지를 추출합니다. 즉, 오류 코드 및 그 이후 메시지 5-14 문자열 부분 만 추출합니다.
    • sort: 추출한 결과를 정렬 하고 
    • uniq: 중복된 항목을 제거 한다. 
 grep "찾는 문자열을 포함 하는 패턴" sys.log | cut -d ' ' -f 5-14 |sort | uniq

 

 

IPC(Inter-Process Communication) 자원 삭제(ipcrm)

  • 현재 사용자가 생성한 메시지 큐, 세마포어, 공유 메모리 자원을 모두 해제하여 시스템 리소스를 정리하는 스크립트이다 .
#MSGID, SEMID, SHMID  조회 하여 삭제 
MSGID=ipcs -q | grep $USER | cut -d " " -f 2
SEMID=ipcs -s | grep $USER | cut -d " " -f 2
SHMID=ipcs -m | grep $USER | cut -d " " -f 2

#메시지 큐(Message Queue)  삭제 
for msgq in $MSGID
do
        ipcrm -q $msgq
done

#세마포어(Semaphore) 자원 정리 
for sem in $SEMID
do
        ipcrm -s $sem
done

#공유 메모리(Shared Memory) 자원해제 
for shm in $SHMID
do
        ipcrm -m $shm
done

 

728x90
반응형

'IT지식' 카테고리의 다른 글

[Mkdocs] Mkdocs 설치 및 사용 방법  (0) 2025.01.14
[IT지식] REST FUL 이란?  (0) 2022.06.04
[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18
728x90
반응형

IT 업무를 하면서 REST ,RESTful 이란 용어를 많이 접하게 됩니다.

어느정도 웹서비스에 대한 이해를 가지고 있었기 때문에 자세히는 몰라도 대충은 이해 하였으나 

주위 사람이 물어 봤을때 자신있게 설명할 자신이 없어 글로 작성하면서 REST에 대한 개념을 정리해보겠습니다. 

REST란? 

※REST(Representational State Transfer)는 월드와이드웹( WWW) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 종류 입니다.  2000년  로이 필딩(Roy Fielding)의 논문에서 발표된 내용으로 로이 필딩은 HTTP의 주요 저자 중 한 사람 이라고 합니다. 간단히 말하자면  REST는 네트워크 아키텍처 라고 생각하면 됩니다.

 

REST 아키텍처 특정

REST 아키텍처는 다음의 6가지 제한 조건을 준수해야 합니다. 

  1. Uniform Interface(인터페이스 일관성)
    • 일관적인 인터페이스로 수행해야 합니다. 
    • URI 로 지정한 Resource 에 대한 조작을 통일되고 한정적으로 수행 해야합니다. 
  2. Stateless(무상태)
    • 각 요청 간 클라이언트의 콘텍스트(context)가 서버에 저장되어서는 안 된다.
    • 세션이나 쿠키등을 별도로 관리하지 않으므로 서버는 클라이언트 요청 메시지 만으로 처리되어 질수 있도록 구현해야 한다.
  3. Cacheable(캐시 처리 가능)
    • 월드와이드웹( WWW)에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
  4. Layered System(계층화)
    • 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버 혹은 미들웨어를  통해 연결되었는지를 알 필요가 없어야 합니다.  
  5. Code on demand (optional)
    • 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
  6. Server-Client 구조
    • 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트 와 서버간 의존성을 분리 해야 한다. 서버는 API 를 제공 하고 클라이언트는 사용자 인증이나 컨텍스트 등을 직접 관리 한다.

REST 구성 요소

1.자원(Resource) - URI(통합 자원 식별자-Uniform Resource Identifier)

  • 모든 자원에는 고유한 id 가 있으며 해당 자원은 서버에 존재 합니다. 
  • ex) question/detail/123

2.자원에 대한 행위(Verb) - HTTP Method (GET, PUT, POST, DELETE등)

  • 클라이언트는 URI 를 통해 자원을 지정해서 조작 하기 위해서 HTTP Method 를 사용 한다.
  • CRUD Operation , HTTP Method
    • Create : POST (자원 생성)
    • Read : GET (자원의 정보 조회)
    • Update : PUT (자원의 정보 업데이트)
    • Delete : DELETE (자원 삭제)
    •  

3.표현(Representations)

  • 클라이언트가 서버로 요청을 보냈을때 서버가 응답으로 보내주는 자원의 상태를 의미하며 
  • JSON,XML,TEXT, RSS 등의 형태로 표현될수 있다. 

REST API 이란? 

REST 원리를 따르는 API 를 말합니다. 
REST API 올바르게 설계하기 위해서는 몇가지 주의할 사항이  있습니다. 

REST API 설계 주의 사항 

  1. URI 는 정보의 자원을 표현해야 한다.(리소스 명은 동사보다는 명사를 사용)
  2. 자원에 대한 행위는 HTTP Method (GET, PUT, POST, DELETE) 로 표현 한다. 

URI 설계 시 주의 사항

  1.  슬래시 구분자(/)는 계층 관계를 나타내는 데 사용 한다. 
  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  3. 하이픈(-)은 URI 가독성을 높이는데 사용 한다.
  4. 밑줄(_)은 URI에 사용하지 않는다.
  5. URI 경로에는 소문자를 사용 한다..
  6. 파일 확장자는 URI에 포함시키지 않는다.

RESTful 이란? 

REST 아키텍처를 구현하는 웹서비스를 표현하기 위해 사용되는 용어로 사용되며 REST 원리를 따르는 시스템을 
RESTful 이라는 용어로 사용되며, REST 의 비공식 구현 가이드 입니다.                                                                                

 

728x90
반응형

'IT지식' 카테고리의 다른 글

[Mkdocs] Mkdocs 설치 및 사용 방법  (0) 2025.01.14
쉘스크립트  (0) 2024.11.08
[IT 지식]스케일 아웃 vs 스케일 업  (0) 2022.04.18
728x90
반응형

서버 자원 관리 방법에 대한 용어에 대해  알아 보겠습니다. 

클라우드 환경에서 자주 접하는 용어로 ,클라우드 

스케일 업(Sacle-Up) ? 

스케일 업이란 동일 서버의 용량을 증설 하는 목적에 있습니다. 

서버 스펙 업그레이드라고 볼수 있다.

기존 8G 메모리, 1T 하드디스크로 서버가 구성되었다고 한다면 메모리: 8G-> 16G, 하드디스크 1T-> 10T 로 하드웨어 사양을 업그레이드 하는것을 스케일 업이라고하며 ,서버의 사양을 높이는 것이기 때문에 수직 스케일링(vertical scaling) 이라고도 한다.

scale-up

 

스케일 아웃(Scale-Out) ? 

서버의 자원 사용량이 부족하여 비슷한 사양의 서버를 추가하는 작업을 말한다.

하나의 장비에서 서비스를 처리함에 있어 한계에 부딪힐 경우 비슷한 스펙의 서버를 추가함으로 서버의 부하를 분산하는데 목적이 있다.

 

scale-out

스케일 인(Scale-In) ?

스케일 아웃과 반대되는  개념으로서 스케일 인 작업은 서버 용량 부족으로 늘렸던 자원을 다시 회수 하는 작업을 의미한다. 서비스 사용량이 줄어 늘려놓았던 불필요한 서버 자원을 해제 하는 작업을 의미한다. 

scale-in

오토스케일(Auto-Scale)?

서비스 사용량에 따라서 스케일 인/ 스케일 아웃 작업을 알아서 자동으로 해주는 작업을 말합니다. 

 

728x90
반응형

'IT지식' 카테고리의 다른 글

[Mkdocs] Mkdocs 설치 및 사용 방법  (0) 2025.01.14
쉘스크립트  (0) 2024.11.08
[IT지식] REST FUL 이란?  (0) 2022.06.04

+ Recent posts