2024년 9월 24일 화요일

헤드리스 아키텍처 Headless

"헤드리스"라는 단어는 본래의 의미에서 "머리(Head)가 없는" 것을 가리킨다. 헤드리스 아키텍처에서 이 용어를 사용한 이유는, 전통적인 소프트웨어 아키텍처와 비교할 때 프론트엔드(사용자 인터페이스, 즉 '머리'에 해당하는 부분)가 백엔드와 분리되어 독립적으로 동작하기 때문이다.

이유 및 배경:

  1. 전통적인 시스템 구조:
    • 과거의 전통적인 커머스 시스템이나 CMS(콘텐츠 관리 시스템)에서는 프론트엔드(웹페이지 UI)와 백엔드(서버, 데이터베이스, 비즈니스 로직)가 긴밀하게 결합된 형태로 동작했다. 백엔드는 데이터 및 로직을 처리하고, 동시에 프론트엔드를 통해 사용자에게 데이터를 표시하는 역할까지 담당했다. 여기서 프론트엔드가 일종의 "머리" 역할을 했다.
  2. 헤드리스 구조:
    • 헤드리스 아키텍처에서는 백엔드가 "머리(프론트엔드)"가 없는 상태로, 단순히 데이터를 처리하고 API로 결과를 제공한다. 프론트엔드는 백엔드와 독립적으로 존재하며, REST API 또는 GraphQL을 통해 필요한 데이터를 받아서 처리하고 사용자에게 보여준다.
    • 여기서 "머리(Head)"에 해당하는 프론트엔드가 사라졌으므로, 이를 "헤드리스"라고 부른다.

장점:

  • 프론트엔드와 백엔드의 독립성: 프론트엔드를 다양한 기술로 자유롭게 구축할 수 있다. 웹, 모바일 앱, IoT 등 다양한 플랫폼에 적용 가능.
  • 유연성: 하나의 백엔드에 여러 "헤드"(웹사이트, 모바일 앱 등)를 연결할 수 있어 다양한 사용자 경험을 제공할 수 있다.

"헤드리스"라는 용어는 백엔드가 특정 프론트엔드에 종속되지 않고, 다양한 프론트엔드로 확장 가능한 상태를 나타내기 위해 사용된다.

Node.js 서버가 사용하는 포트를 확인하고 해당 포트를 종료하는 방법


1. Node 서버가 사용하는 포트 확인 방법

방법 1: lsof 명령어 사용 (리눅스/맥OS)

lsof -i :<포트번호>

이 명령어는 특정 포트 번호로 열려 있는 프로세스를 확인할 수 있다.

예시:

lsof -i :3000

출력 예시:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node     1234 user   22u  IPv4  56789      0t0  TCP *:3000 (LISTEN)

여기서 PID 값이 해당 포트를 사용하는 프로세스의 ID이다.

방법 2: netstat 명령어 사용 (리눅스/맥OS)

netstat -tuln | grep :<포트번호>

이 명령어는 특정 포트 번호가 열려 있는지 확인할 수 있다.

2. 특정 포트 사용하는 프로세스 종료 방법

방법 1: kill 명령어 사용

lsof 또는 netstat 명령어로 확인한 PID 값을 이용해 해당 프로세스를 종료할 수 있다.

kill -9 <PID>

예시:

kill -9 1234

이 명령어는 PID가 1234인 프로세스를 강제 종료한다.

방법 2: fuser 명령어 사용 (리눅스)

fuser -k <포트번호>/tcp

예시:

fuser -k 3000/tcp

이 명령어는 TCP 포트 3000을 사용하는 프로세스를 종료한다.

3. 여러 포트를 동시에 확인하는 방법

방법 1: lsof 명령어 사용 (리눅스/맥OS)

여러 포트를 한 번에 확인할 수는 없지만, 원하는 포트마다 각각 명령어를 실행할 수 있다.

lsof -i :3000 -i :8080 -i :5000

각 포트에 대해 사용 중인 프로세스 정보를 확인할 수 있다.

방법 2: netstat 명령어 사용 (리눅스/맥OS)

여러 포트의 정보를 한번에 확인할 수는 없지만, 네트워크 상태 전체를 조회 후 필요한 정보를 추출할 수 있다.

netstat -tuln | grep ':3000\\\\|:8080\\\\|:5000'

이 명령어는 포트 3000, 8080, 5000에서 동작 중인 프로세스들을 필터링한다.

4. 여러 포트를 사용하는 프로세스 종료 방법

방법 1: lsofkill 조합

각 포트별로 확인한 PID를 모아 아래와 같이 한꺼번에 종료할 수 있다.

kill -9 $(lsof -t -i :3000 -i :8080 -i :5000)

이 명령어는 포트 3000, 8080, 5000에서 실행 중인 프로세스를 한 번에 종료한다.

방법 2: fuser 명령어 사용 (리눅스)

fuser -k 3000/tcp 8080/tcp 5000/tcp

이 명령어는 지정한 여러 포트에서 동작 중인 프로세스를 한꺼번에 종료한다.

2024년 9월 19일 목요일

chmod : 읽기, 쓰기, 실행 권한, 하위 폴더 디렉토리

chmod 명령어는 파일이나 디렉토리의 권한을 변경할 때 사용된다. UNIX 및 Linux 시스템에서 파일의 읽기, 쓰기, 실행 권한을 관리하는 중요한 도구다.

1. 기본 개념

파일이나 디렉토리의 권한은 세 가지 범주로 나뉜다:

  • 소유자(owner): 파일을 소유한 사용자
  • 그룹(group): 파일을 소유한 사용자가 속한 그룹
  • 기타(others): 위 두 범주에 속하지 않는 모든 사용자

각 범주에 대해 세 가지 권한을 설정할 수 있다:

  • 읽기(read, r): 파일을 읽을 수 있는 권한 (디렉토리인 경우 목록 확인 가능)
  • 쓰기(write, w): 파일을 수정할 수 있는 권한 (디렉토리인 경우 파일 추가/삭제 가능)
  • 실행(execute, x): 파일을 실행할 수 있는 권한 (디렉토리인 경우 접근 가능)

2. 숫자 형식

권한은 8진수로 나타내며, 각 권한은 특정 숫자로 매핑된다:

  • 읽기(r) = 4
  • 쓰기(w) = 2
  • 실행(x) = 1

세 개의 권한을 조합하여 숫자로 표현한다. 예를 들어:

  • 읽기 + 쓰기 + 실행: 7 (4 + 2 + 1)
  • 읽기 + 쓰기: 6 (4 + 2)
  • 읽기 + 실행: 5 (4 + 1)
  • 읽기만: 4
  • 실행만: 1
  • 권한 없음: 0

숫자 조합 예시:

  • chmod 755 file.txt
    • 소유자: 읽기, 쓰기, 실행 (7)
    • 그룹: 읽기, 실행 (5)
    • 기타: 읽기, 실행 (5)

3. 문자 형식

숫자 대신 문자로도 권한을 설정할 수 있다. 이때 u(소유자), g(그룹), o(기타), a(전체)를 사용한다.

  • +: 권한을 추가
  • ``: 권한을 제거
  • =: 특정 권한만 설정

문자 형식 예시:

  • chmod u+x file.txt: 소유자에게 실행 권한을 추가
  • chmod g-w file.txt: 그룹의 쓰기 권한을 제거
  • chmod o=r file.txt: 기타 사용자에게 읽기 권한만 부여

4. 디렉토리 권한

디렉토리에 권한을 설정할 때는 파일과 동일한 방법으로 설정되지만, 의미는 조금 다르다.

  • 읽기 권한(r): 디렉토리의 파일 목록을 볼 수 있음.
  • 쓰기 권한(w): 디렉토리 내에서 파일을 추가하거나 삭제할 수 있음.
  • 실행 권한(x): 디렉토리 내에서 파일에 접근 가능.

하위 디렉토리 및 파일에 권한 적용

  • chmod -R 755 directory/
    : directory/와 그 하위 파일 및 디렉토리 모두에 재귀적으로 755 권한을 적용.

5. 실습 예시

예시 1: 파일에 권한 추가

chmod 644 example.txt
  • 소유자는 읽기/쓰기 권한 (6)
  • 그룹과 기타는 읽기만 가능 (4)

예시 2: 실행 권한 추가

chmod +x script.sh
  • 모든 사용자에게 실행 권한을 추가

예시 3: 디렉토리에 재귀적으로 권한 변경

chmod -R 755 /var/www/html
  • /var/www/html 디렉토리와 그 하위 모든 파일 및 디렉토리에 755 권한 적용

6. 기타 옵션

  • R: 재귀적으로 하위 파일 및 디렉토리 모두에 권한을 적용.

  • -reference: 다른 파일의 권한을 기준으로 설정.

    chmod --reference=otherfile.txt myfile.txt
    

요약

  • chmod는 파일과 디렉토리의 권한을 설정하는 명령어로, 8진수(숫자)와 문자 형식으로 설정할 수 있다.
  • 권한은 소유자, 그룹, 기타 사용자로 나누어 설정되며, 읽기, 쓰기, 실행 권한을 조합해 적용한다.

2024년 9월 10일 화요일

저작권 없이 무료로 오디오 소스, 배경음악, 효과음을 제공하는 사이트

저작권 없이 무료로 오디오 소스, 배경음악, 효과음을 제공하는 사이트들이 여러 곳 있다. 대부분 상업적 및 비상업적 용도로도 사용 가능하다.

  1. Free Music Archive (FMA)
    • 저작권 무료 음악을 제공하며, 상업적 용도로도 사용 가능하다. Creative Commons 라이선스 기반으로 음악을 제공.
    • https://freemusicarchive.org
  2. Bensound
    • 무료로 사용할 수 있는 다양한 배경음악을 제공하며, 상업적 용도로 사용하려면 출처를 표기해야 한다.
    • https://www.bensound.com
  3. Incompetech
    • 영화, 비디오, 팟캐스트 등을 위한 무료 음악을 제공. 상업적 사용 시 크레딧 필요.
    • https://incompetech.com
  4. FreePD
    • 저작권이 만료된 퍼블릭 도메인 음악을 제공하는 사이트로, 상업적, 비상업적 용도로 모두 사용 가능하다.
    • https://freepd.com
  5. Pixabay Music
  6. YouTube Audio Library
  7. Mixkit
    • 비디오, 영화, 게임 등을 위한 무료 배경음악과 효과음을 제공하며, 상업적 용도로도 사용 가능하다.
    • https://mixkit.co/free-stock-music
  8. Josh Woodward
  9. Chosic
    • 무료 음악 및 배경음악을 제공하며, 크리에이티브 커먼즈 라이선스와 퍼블릭 도메인 음악을 찾을 수 있다.
    • https://www.chosic.com/free-music
  10. Audionautix
    • 무료로 다양한 장르의 음악을 제공하며, 크레딧만 표기하면 상업적 용도로도 사용 가능하다.
    • https://audionautix.com
  11. Freesound
    • 사용자들이 업로드한 다양한 소리와 효과음을 제공하며, 크리에이티브 커먼즈 라이선스 기반으로 제공된다.
    • https://freesound.org
  12. SoundBible
    • 무료 효과음과 사운드 클립을 제공하며, 상업적 용도로도 사용 가능하다.
    • http://soundbible.com

이 사이트들은 무료로 저작권 걱정 없이 사용할 수 있는 오디오와 음악을 제공한다. 다만 각 오디오 파일마다 라이선스 조건이 다를 수 있으므로, 사용 전에 라이선스를 확인하는 것이 중요하다.

저작권 없이 무료로 이미지를 제공하는 사이트 : 상업적 및 개인적 용도로 사용 가능

 저작권 없이 무료로 이미지를 제공하는 사이트들은 여러 가지가 있으며, 대부분 상업적 및 개인적 용도로 사용할 수 있다.

  1. Unsplash
    • 수많은 고퀄리티 이미지를 제공하며, 상업적 이용이 가능하다.
    • https://unsplash.com
  2. Pixabay
    • 사진, 일러스트, 벡터 이미지, 비디오 등 다양한 미디어 파일을 무료로 제공한다.
    • https://pixabay.com
  3. Pexels
    • 다양한 사진과 비디오 클립을 무료로 제공하며, 상업적 용도로도 사용 가능하다.
    • https://www.pexels.com
  4. Burst by Shopify
    • 온라인 상점 운영자와 크리에이터를 위한 무료 이미지 사이트. 상업적 용도 가능.
    • https://burst.shopify.com
  5. FreeImages
  6. StockSnap
    • 상업적 용도로도 사용할 수 있는 무료 이미지가 매일 업데이트된다.
    • https://stocksnap.io
  7. Picjumbo
    • 무료 고해상도 이미지를 제공하며, 상업적 용도로도 사용 가능하다.
    • https://picjumbo.com
  8. Reshot
    • 고유한 이미지를 찾는 크리에이터들을 위한 플랫폼으로, 상업적 및 개인적 용도로 무료 사용 가능하다.
    • https://www.reshot.com
  9. Life of Pix
  10. Kaboompics
    • 라이프스타일, 인테리어, 패션 등의 고품질 이미지를 무료로 제공하며 상업적 용도로도 사용 가능하다.
    • https://kaboompics.com
  11. Gratisography
    • 독특하고 유쾌한 고해상도 이미지를 제공하며 상업적 용도로도 사용 가능하다.
    • https://gratisography.com
  12. Flickr
    • Creative Commons 라이선스가 적용된 이미지를 찾을 수 있는 대규모 이미지 공유 사이트.
    • https://www.flickr.com (라이선스 확인 필수)
  13. Freepik
    • 벡터 일러스트레이션과 PSD 파일이 강점. 일부 프리미엄 콘텐츠는 유료.
    • https://www.freepik.com

이 사이트들은 저작권이 없는 무료 이미지를 제공하며, 상업적 용도로 사용 가능한 경우가 많다. 다만 각 이미지마다 라이선스 조건이 다를 수 있으므로 사용 전에 라이선스를 확인하는 것이 좋다.

관련 사이트 및 블로그