spring boot 에 그래들 설정을 추가해 준다. build.gradle


// 실행 Main 클래스
bootJar {
    mainClassName = 'com.favbrother.ssv.SchedulerApplication'
}

// profile 설정
bootRun{
    String activeProfile = System.properties['spring.profiles.active']
    systemProperty "spring.profiles.active", activeProfile
}

젠킨스에 툴 설치 한다.(gradle)

gradle 버전 확인 한다.

내 플젝 에서 확인 하는 방법은 "./gradlew -version" 명령어로 확인 할 수 있다.

내껀 7.6 으로 생성

 

젠킨스 플러그인 설치

그래들 플러그인은 이미 설치 되어 있음

Avaliable plugins -> pool build task 선택 하여 설치 진행 한다.

프로젝트 구성으로 이동 한다.

Build Steps를 찾아 Add build step -> Invoke Gradle script 를 선택 한다.

gradle version - gradle 선택

tasks - bootjar 입력

빌드 후 조치에 post build task 선택 한다.

 

아래와 같이 작성 한다.

log text 는 빌드 완료 후 나오는 메시지

 

gradle 빌드가 완료 되면 jar 파일이 생성이 되는데 아래 명령어로 실행 을 하게 된다.

그이전 스크립트는 실행중인 pid를 찾아 있으면 kill 하고 없으면 바로 실행 하는 로직의 스크립트 이다.

제일 앞의 nohup과 &은 백그라운드 실행을 위해 사용하는 명렁어

java -jar 를 실행 해라

-DSpring.profiles.active=prod            프로파일을 어떤걸 사용 할지 정하는 옵션

그리고 경로이다.

경로를 알아 보는 방법은 다음~ 

저장 한다.

지금 빌드를 눌러 본다.

4번이 빌드 중이다. #4를 클릭해 보면 

빌드 정보를 확인 할 수 있다.

Console Output 을 클릭 하면

로그를 확인 할 수 있는데 상단 부근의 workspace 옆에 있는게 지금 프로젝트의 빌드 경로 이다.

 

"지금 빌드" 클릭 하면 정상 빌드 확인 된다.

 

Posted by 블로그하는프로그래머
,

2편에서 소개한 mariadb 컨테이너 생성한 대상은 삭제를 해주기 바란다.

그것 보다 더 편한 컨테이너 생성 하는 방법이 있다!

App Tmeplates라는 메뉴의 기능인데 아래와 같이 생성을 하게 되면 바로 사용이 가능 하다.

왼쪽 메뉴에서 "App Templates" 를 선택 해서 오른쪽에 나오는 MariaDB를 선택 한다.

1. 컨테이너 이름을 입력 한다.

2. Root Password를 입력 한다.

maria db 접속 시 사용 하는 "ROOT" 계정의 비밀번호 입력 부분 이다.

3. "Show advanced options" 버튼을 클릭 하면 더 많은 옵션기능을 활용 할 수 있다.

1. host 의 어떤 포트를 mariadb에서 사용 하는 3306 포트와 연결을 할지 설정 한다.

2. 2편에서 본 Volume 를 설정 할 수 있는 옵션 입니다.

3. "Deploy the container" 를 선택 하여 컨테이너를 생성 합니다.

 

컨테이너 생성이 완료 되었으니 mariadb 접속 정상 확인해 봅니다.

mariadb를 설치 하면 db접속 할수 있는 기본 툴중 "HeidiSQL" 로 접속을 해본다.

처음 접속후 왼쪽 하단의 신규 버튼을 클릭 하면 세션이 하나 생성이 된다.

여기서 네트워크 유형 mariadb를 선택

호스트명은 서버에 설정한 도메인이나 ip를 넣어 준다.

ip 확인은 서버에서 ifconfig로도 확인이 가능 하고 cafe24 호스트 관리 화면에서도 확인이 가능 하다.

사용자는 처음 root 만 있으니 "root"를 입력 한다.

암호는 위에서 설정한 루트 패스워드를 입력 하고

포트는 위에서 입력한 host의 포트를 입력 하고 연결 하면 연결이 정상 으로 확인 된다.

 

1편 Ubuntu 20.04 에 도커 설치 하기

2편 도커에 gradle, git, open jdk17, nodejs, react 추가 하기

 

Posted by 블로그하는프로그래머
,

현제 내가 작성하고 있는 포스팅 에서는 도커 유틸중 Portainer를 통해서 이미지를 다운받고 컨테이너를 돌려 보려고 한다.

컨테이너 생성 주기는 아래와 같이 이루어 진다.

1. 이미지 다운로드

2. 볼륨생성

3. 컨테이너 생성

 

1. 이미지 다운로드 방법

- 첫번째 왼쪽 메뉴중 "Images"를 클릭 한다.

- 두번째 이미지 테그를 넣어 준다.

- 이미지 테그를 모를 경우 세번째 도커 허브를 확인 해서 넣어 줘야 합니다.

저는 아래와 같이 테그들로 이미지 대상들을 따운로드 했습니다.

jenkins:2.60.3

mariadb:latest -> 마지막 버전은 latest 로 테그가 생성 됩니다.

node:lts-alpine3.17

openjdk:20-ea-17-jdk

 

2. 볼륨생성

볼륨을 생성 하는 이유는 컨테이너의 저장공간? 과 로컬 서버의 저장 공간의 데이터를 연결 하는 공간으로 이해 하면 될 것 같다.

컨테이너의 경우 바로 삭제가 가능 하기에 컨테이너 안의 데이터가 휘발성으로 삭제가 된다면 복구 하기 어려운 부분이 있다, 이런경우 볼륨을 생성 해서 연결을 하고 로컬에서 관리가 되는 데이터가 있다면 삭제가 안된 데이터를 바로 연결이 가능 한 편의성을 제공 한다.

왼쪽 메뉴중 "Volumes" 메뉴를 클릭 한다.

오른쪽 버튼 중 "Add volume" 클릭 하여 볼륨을 생성 합니다.

필수 값을 입력 하고 "Create the volume" 버튼을 클릭 한다.

생성 된 내용을 확인 한다.

3. 컨테이너 생성

자 이제 직접적으로 서비스가 실행이 되는 컨테이너를 생성 한다.

왼쪽 메뉴 중 "Containers" 클릭 후 "Add container" 버튼을 클릭 하여 컨테이너를 생성 한다.

 

1. 컨테이너 이름

2. 이미지 테그

3. "pulish a new network port" 버튼을 클릭 한다.

로컬 포트와 도커 포트를 연결 하는 기능으로 이해 한다.

4, 5. 포트 번호를 입력 한다. (mariadb 의 경우 기본 포트가 3306 이기에 둘다 3306을 입력 한다.)

 

- "Volumes" 탭을 클릭 한다.

volume 에 이전에 생성한 "mariadbVal - local" 대상을 선택 한다.

 

- "Restart policy" 탭을 클릭 하고 "Restart policy" - "Always" 를 선택 한다.

도커가 재시작 될때 컨테이너도 시작이 되도록 설정 하는 기능 이다.

- "Deploy the container" 버튼 클릭 하여 컨테이너를 생성 한다.

"Container list" 에서 "Quick Actions" 기능은 차례데로 아래와 같은 기능을 지원 한다.

  • Log: 컨테이너 로그
  • Inspect: 상세정보
  • Stats: 자원 사용량(메모리, CPU, 네트워크)
  • Exec Console: 해당 컨테이너 shell 연결

1편 Ubuntu 20.04 에 도커 설치 하기

Posted by 블로그하는프로그래머
,

1) docker pull (이미지이름):(태그)

이미지 가져오는 명령어 (태그 생략 시 latest로 자동 입력됩니다.)

(ex)

1
docker pull centos:7

2) docker images

로컬에 설치된 이미지 확인하는 명령어

(ex)

1
docker images

3) docker run (옵션) (이미지):(태그) (커맨드)

컨테이너 생성 및 실행 명령어(각종 파라미터로 컨테이너의 추가 기능을 설정 가능합니다.)

 

* 옵션

-i : 상호 입출력

-t : tty(터미널) 사용

-it : i, t 옵션 동시 사용

-d : detached mode(백그라운드 실행)

-e : 컨테이너 내에서 사용할 환경 변수 설정

-name : 컨테이너 이름 설정

-rm : 프로세스 종료 시 컨테이너 자동 제거

-p : host와 컨테이너의 포트포워딩 설정

 

* 커맨드

bin/bash : 컨테이너에 bash 쉘 명령어 설정

 

(ex)

1
docker run ----name example -80:80 ubuntu:latest bin/bash

4) docker start (컨테이너 id 또는 컨테이너 이름)

컨테이너 실행 명령어

(ex)

1
docker start example

5) docker restart (컨테이너 id 또는 컨테이너 이름)

컨테이너 재실행 명령어

(ex)

1
docker restart example

6) docker attach (컨테이너 id 또는 컨테이너 이름)

컨테이너 접속 명령어(접속할 컨테이너가 실행이 되어있어야 합니다).

(ex)

1
docker attach example

 

* 컨테이너 안에서 빠져나오는 명령어

(1) exit, Ctrl + d(c) : 컨테이너를 정지하고 빠져나옵니다.

(2) Ctrl + p + q : 컨테이너를 정지하지 않고 빠져나옵니다.


7) docker stop (컨테이너 id 또는 컨테이너 이름)

컨테이너 정지 명령어

(ex)

1
docker stop example

8) docker rm (컨테이너 id 또는 컨테이너 이름)

컨테이너 삭제 명령어

(ex)

1
docker rm example

9) docker ps (옵션)

컨테이너 조회 명령어 (기본 명령은 실행 중인 컨테이너만 조회됩니다.)

 

* 옵션

-a : 중지된 컨테이너까지 조회

--filter : key=vaule 형식으로 컨테이너 정보 필터링

(필터는 id, name, label, exited, status, ancestor 등등이 있습니다.)

--format : 조회 출력 형식을 Go 템플릿을 사용해 변경

(Go 템플릿은 "table {{.ID}}\t{{.Labels}}" 같은 형식으로 작성합니다.)

-l : 가장 최근에 생성한 컨테이너 조회 (중지된 컨테이너 포함)

-q : 컨테이너 ID만 조회

-s : 컨테이너의 파일 사이즈 추가 조회

 

(ex)

1
docker ps ----filter name=example

10) docker rename (기존 컨테이너 이름) (변경할 컨테이너 이름)

컨테이너 이름 변경 명령어

(ex)

1
docker rename example ex
Posted by 블로그하는프로그래머
,

putty 를 이용해서 구입한 호스팅 서버에 접근 한다.

호스팅 주소는 신청당시 사용한 id.cafe24.com 으로 접속해서, 

id : root

pwd : 호스팅 신청 당시 설정한 root 비밀 번호 입력 합니다.

설치전 update 명령어로 ubuntu에 설치된 패키지 들의 정보를 update 합니다.

저 같은 경우 10분 정도 걸린거 같아요.

- update 명령어 : apt update & apt upgrade

curl 명령어를 사용해서 get-docker.sh 파일을 받는다.

현재 curl 명령어를 사용할 수 없다고 나오기에 curl 을 설치 해 주도록 한다.

- 도커 설치 파일 다운로드 명령어 : curl -fsSL https://get.docker.com -o get-docker.sh

Command 'curl' not found, but can be installed with:

apt install curl

현재 curl 명령어를 사용할 수 없다고 나오기에 curl 을 설치 해 주도록 한다.

- curl 설치 명령어 : apt install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.4.0-37 linux-headers-5.4.0-37-generic linux-image-5.4.0-37-generic linux-modules-5.4.0-37-generic linux-modules-extra-5.4.0-37-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  libcurl4
The following packages will be REMOVED:
  libcurl3
The following NEW packages will be installed:
  curl libcurl4
0 upgraded, 2 newly installed, 1 to remove and 283 not upgraded.
Need to get 396 kB of archives.
After this operation, 479 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 libcurl4 amd64 7.68.0-1ubuntu2.15 [235 kB]
Get:2 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 curl amd64 7.68.0-1ubuntu2.15 [161 kB]
Fetched 396 kB in 3s (156 kB/s)
(Reading database ... 111939 files and directories currently installed.)
Removing libcurl3:amd64 (7.58.0-2ubuntu2) ...
Selecting previously unselected package libcurl4:amd64.
(Reading database ... 111932 files and directories currently installed.)
Preparing to unpack .../libcurl4_7.68.0-1ubuntu2.15_amd64.deb ...
Unpacking libcurl4:amd64 (7.68.0-1ubuntu2.15) ...
Selecting previously unselected package curl.
Preparing to unpack .../curl_7.68.0-1ubuntu2.15_amd64.deb ...
Unpacking curl (7.68.0-1ubuntu2.15) ...
Setting up libcurl4:amd64 (7.68.0-1ubuntu2.15) ...
Setting up curl (7.68.0-1ubuntu2.15) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

설치가 완료 되면 curl 을 이요해 설치 파일을 다운로드 한다.

- 도커 설치 파일 다운로드 명령어 : curl -fsSL https://get.docker.com -o get-docker.sh

설치 파일을 다운로드 했으면 실행 한다.

- 실행 명령어 : sudo sh get-docker.sh
# Executing docker install script, commit: 66474034547a96caa0a25be56051ff8b726a1b28
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c mkdir -p /etc/apt/keyrings && chmod -R 0755 /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu focal stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-scan-plugin docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           23.0.1
 API version:       1.42
 Go version:        go1.19.5
 Git commit:        a5ee5b1
 Built:             Thu Feb  9 19:46:56 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.1
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.5
  Git commit:       bc3805a
  Built:            Thu Feb  9 19:46:56 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.16
  GitCommit:        31aa4358a36870b21a992d3ad2bef29e1d693bec
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

설치가 완료 된다면 도커 버전을 확인해 본다.

- 도커 버전 확인 명령어 : docker --version
Docker version 23.0.1, build a5ee5b1

필수 패키지 들을 설치 합니다.

- 설치 명령어 : sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

GPG Key 인증

- 인증 명령어 : curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

명령어 사용시 OK 가 확인 되면 완료.

docker repository 등록 진행 한다.

아키텍처에 맞춰서 Docker repository 등록해 줍니다.

아키텍처 확인은 arch 를 입력 합니다.

제 서버의 아키텍처는 x86_64 로 확인을 했습니다.

아래 명령어 실행 :

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

실행 결과 :

apt docker 설치

명령어 : sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

실행 결과 : 

설치 정상 확인 명령어 : docker -v 

시스템 재 부팅시 실행 되도록 설정 합니다.

설정 명령어 : sudo systemctl enable docker && service docker start

도커 서비스 상태 확인 : service docker status

active 까지 나오는걸 확인 했으면 docker 서비스 구축이 완료 되었습니다.

 

portainer 구축하기

portainer는 docker의 이미지,컨테이너,네트워크등을 쉽게 관리할 수 있게 도와주는 GUI Web 서비스 입니다.

docker의 이미지라는 개념이 생소할 수도있는데 윈도우 설치에 필요한 iso라고 보시면 될거같습니다.
iso로 윈도우를 설치하듯이 이미지로 docker의 컨테이너를 생성하게됩니다. 이 이미지(iso 같은)는 hub.docker.com에서 검색해보면 엄청나게 방대한양의 데이터베이스가 있습니다.

이번에 설치할 portainer도 찾아본다면 아래처럼 나오게 됩니다. 이외에 cent os, nginx, mariadb 등등 docker의 이미지는 엄청많으니 궁금하면 들어가서 찾아보시면 됩니다.

항상 지원하는 아키텍쳐를 확인하는게 좋습니다.

portainer 컨테이너 설치에 앞서 컨테이너와 host(vm)간에 볼륨매칭을 위한 디렉터리 생성부터 진행 합니다.

- 생성 명령어 : mkdir -p /data/portainer

- portainer 실행 명령어 : docker run --name portainer -p 9000:9000 -d --restart always -v /data/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

–-name 으로 컨테이너 이름 생성, -p 호스트 포트 9000 내부포트 9000번 , -d 데몬으로 백그라운드, –restart always 재부팅시 자동시작, -v /data~~ 호스트와 컨테이너간 볼륨매칭, docker.sock도 마찬가지로 공유, portainer/portainer 이미지 사용

실행이 완료 되면 url로 접속을 해 봅니다.

ip:9000 으로 접속 해 봅니다.

처음 관리자 아이디, 패스워드를 설정 합니다.

생성 완료 후 페이지

"Get Started" 클릭을 하게 되면 아래와 같이 local 도커가 연결된 것을 확인 할 수 있습니다.

서비스를 올려 보도록 하겠습니다.

제 목적은 docker 를 통해 spring boot 서버와 react 서버를 올리는 것이기에 2개의 서비스를 필요로 합니다.

왼쪽 메뉴중 Containers 를 클릭시 현재 실행되고 있는 컨테이너를 확인 할 수 있습니다.

오르쪽 상단위 Add container를 통해 신규 컨테이너를 GUI로 만들 수 있습니다.

또는 이미지 추가로 도커의 허브에 있는 공개되어 있는 이미지 들을 추가 해서 사용 할 수 있습니다.

2편 도커에 gradle, git, open jdk17, nodejs, react 추가 하기

 

참고 : 도커 기본 명령어 모음

참고 사이트 : 서버포럼 - Docker Web GUI 관리 툴 Portainer 설치하기.(+ 도커 설치하기) (svrforum.com)

Posted by 블로그하는프로그래머
,

SSH의 이점 활용: 안전한 원격 액세스, 유연성 및 사용 편의성

 

  1. "보안 원격 액세스의 중요성"
  2. "SSH의 유연성"
  3. "기술 및 비기술 사용자를 위한 사용 용이성"
  4. "SSH의 오픈 소스 특성"
  5. "원격 근무 및 서버 관리를 위한 SSH"
  6. "SSH가 연결할 수 있는 다양한 장치"
  7. "요약: SSH의 전반적인 이점"

 

  • 보안 원격 액세스의 중요성

오늘날 세계에서는 원격 시스템 및 장치에 액세스하는 기능이 점점 더 중요해지고 있습니다. 원격으로 작업하든, 서버 팜을 관리하든, 네트워크 문제를 해결하든 원격으로 시스템에 액세스하는 기능은 생산성과 효율성을 크게 높일 수 있습니다. 그러나 이 원격 액세스가 안전한지 확인하는 것이 중요하며 여기에서 SSH가 필요합니다.

SSH(Secure Shell)는 원격 서버 및 장치에 안전하게 연결할 수 있게 해주는 기술입니다. 연결을 통해 전송되는 모든 데이터를 암호화하여 암호 및 파일과 같은 민감한 정보를 악의적인 행위자가 가로챌 수 없도록 합니다. 따라서 SSH는 시스템 및 장치에 대한 원격 액세스를 보호하는 데 필수적인 도구입니다.

SSH의 주요 이점 중 하나는 서버에 대한 안전한 원격 액세스를 제공한다는 것입니다. 연결을 통해 전송되는 모든 데이터를 암호화함으로써 SSH는 암호 및 파일과 같은 민감한 정보를 악의적인 행위자가 가로챌 수 없도록 합니다. 따라서 원격 작업 및 원격 서버 관리를 위한 훌륭한 옵션입니다.

서버 외에도 SSH를 사용하여 다양한 기타 장치에 대한 원격 액세스를 보호할 수도 있습니다. 예를 들어 라우터, 네트워크 스위치 및 일부 가전 제품에 액세스하는 데 사용할 수 있습니다. 따라서 사무실과 현장 모두에서 광범위한 시스템을 관리하고 문제를 해결하는 데 유용한 도구입니다.

SSH의 또 다른 이점은 VPN(가상 사설망) 없이 원격으로 시스템에 액세스하는 데 사용할 수 있다는 것입니다. 이는 VPN이 차단되거나 제한되는 환경과 같이 VPN이 옵션이 아닌 상황에서 유용한 기능이 될 수 있습니다.

결론적으로 원격 시스템 및 장치에 액세스하는 기능이 점점 더 중요해지고 있습니다. 그러나 이 원격 액세스가 안전한지 확인하는 것이 중요합니다. 연결을 통해 전송되는 모든 데이터를 암호화하는 기능이 있는 SSH는 시스템 및 장치에 대한 원격 액세스를 보호하는 데 필수적인 도구입니다. 원격으로 작업하든 서버를 관리하든 SSH는 작업 흐름을 개선하고 생산성을 높이는 동시에 데이터 보안을 보장할 수 있는 유용한 도구입니다.

 

  • SSH의 유연성

SSH(Secure Shell)는 원격 서버 및 장치에 안전하게 연결할 수 있게 해주는 강력한 기술입니다. SSH의 주요 이점 중 하나는 유연성으로 다양한 상황과 다양한 장치에서 사용할 수 있습니다.

SSH의 유연성에 대한 가장 분명한 예 중 하나는 원격 서버에 연결하는 기능입니다. 원격으로 작업하든 서버 팜을 관리하든 SSH를 통해 전 세계 어디에서나 서버에 안전하게 액세스하고 제어할 수 있습니다. 이를 통해 생산성을 크게 높이고 현장 방문의 필요성을 줄일 수 있습니다.

서버 외에도 SSH를 사용하여 다양한 기타 장치에 연결할 수 있습니다. 예를 들어 라우터, 네트워크 스위치 및 일부 가전 제품에 액세스하는 데 사용할 수 있습니다. 따라서 사무실과 현장 모두에서 광범위한 시스템을 관리하고 문제를 해결하는 데 유용한 도구입니다.

SSH의 유연성에 대한 또 다른 예는 다른 운영 체제와 함께 사용할 수 있는 능력입니다. SSH는 Windows, Mac, Linux 및 모바일 장치를 포함한 다양한 플랫폼에서 사용할 수 있습니다. 즉, 사용하는 운영 체제에 관계없이 SSH를 사용하여 다양한 장치에 연결할 수 있습니다.

마지막으로 SSH의 유연성은 오픈 소스 소프트웨어라는 사실로 인해 향상됩니다. 즉, 자유롭게 사용, 배포 및 수정할 수 있습니다. 이를 통해 광범위한 사용자가 액세스할 수 있으며 시간이 지남에 따라 지속적으로 개발 및 개선될 수 있습니다.

결론적으로 SSH의 유연성은 가장 중요한 기능 중 하나입니다. 다양한 장치 및 운영 체제에 연결할 수 있는 기능과 오픈 소스 특성으로 인해 다양한 시스템을 관리하고 문제를 해결하는 데 유용한 도구입니다. 원격으로 작업하든 서버를 관리하든 SSH는 작업 흐름을 개선하고 생산성을 높이는 데 도움이 되는 유용한 도구입니다.

 

  • 기술 및 비기술 사용자를 위한 사용 용이성

SSH의 가장 큰 장점 중 하나는 기술 사용자와 비기술 사용자 모두 사용하기 쉽다는 것입니다. SSH는 강력한 기술이지만 사용이 간편하도록 설계되어 다양한 사용자가 액세스할 수 있습니다.

기술 사용자를 위해 SSH는 원격 시스템을 관리하고 문제를 해결하는 데 사용할 수 있는 여러 가지 강력한 기능을 제공합니다. 예를 들어 SSH는 명령을 원격으로 실행하고 파일을 전송하고 네트워크 연결을 터널링하는 기능을 제공합니다. 이러한 기능은 원격 시스템으로 작업할 때 기술 사용자의 생산성을 크게 높일 수 있습니다.

기술 지식이 없는 사용자의 경우 SSH는 원격 시스템에 액세스할 수 있는 간단하고 안전한 방법을 제공합니다. 기술 지식이 없는 사용자를 위한 SSH의 가장 일반적인 용도는 터미널 또는 명령 프롬프트를 사용하여 원격 서버에 로그인하는 것입니다. 이것은 "ssh user@host"와 같은 간단한 명령을 사용하여 수행할 수 있으며 고급 기술 지식이 필요하지 않습니다.

사용 용이성 외에도 SSH는 사용을 훨씬 더 쉽게 만드는 데 사용할 수 있는 여러 도구를 제공합니다. 예를 들어 ssh-copy-id 명령을 사용하면 원격 서버에 SSH 키를 쉽게 추가할 수 있으므로 수동으로 키를 추가할 필요가 없습니다. 이렇게 하면 프로세스에 익숙하지 않은 비기술 사용자가 많은 시간을 절약할 수 있습니다.

또 다른 예로는 SSH 연결을 위한 그래픽 사용자 인터페이스를 제공하는 Putty(Windows) 및 터미널(Mac/Linux)과 같은 SSH 클라이언트를 사용하여 기술 지식이 없는 사용자가 훨씬 더 쉽게 액세스할 수 있도록 합니다.

결론적으로 SSH는 기술 사용자와 비기술 사용자 모두가 사용하기 쉬운 강력한 기술입니다. 강력한 기능 및 도구와 결합된 사용 용이성은 원격 시스템을 관리하고 문제를 해결하는 데 유용한 도구입니다. 기술 사용자이든 비기술 사용자이든 관계없이 SSH는 생산성을 높이고 작업 흐름을 개선하는 데 도움이 될 수 있습니다.

 

  • SSH의 오픈 소스 특성

SSH(Secure Shell)는 서버 및 장치에 대한 보안 원격 액세스를 위해 널리 채택된 기술입니다. 널리 사용되는 이유 중 하나는 오픈 소스 특성입니다.

오픈 소스 소프트웨어는 누구나 자유롭게 사용, 수정 및 배포할 수 있는 소프트웨어를 의미합니다. SSH는 이 범주에 속하며 BSD 스타일 라이선스에 따라 사용할 수 있습니다. 즉, 누구나 소스 코드에 액세스하여 변경 및 개선하고 수정된 버전을 법적 제한 없이 배포할 수 있습니다.

SSH의 오픈 소스 특성에는 몇 가지 이점이 있습니다. 첫째, 크고 활동적인 개발자 커뮤니티가 소프트웨어 개발 및 유지 관리에 기여할 수 있습니다. 이것은 더 빠른 버그 수정, 새로운 기능 및 성능 향상으로 이어집니다. 또한 코드를 검토할 수 있고 누구나 감사할 수 있으므로 투명성과 보안을 촉진합니다.

둘째, SSH의 오픈 소스 특성은 다른 오픈 소스 기술과의 상호 운용성을 허용합니다. 예를 들어 SSH를 오픈 소스 웹 서버, 데이터베이스 및 기타 원격 액세스 기술과 함께 사용하여 강력하고 유연한 시스템을 만들 수 있습니다.

마지막으로 SSH의 오픈 소스 특성으로 인해 다른 소프트웨어 및 시스템과 쉽게 통합할 수 있습니다. 예를 들어 SSH는 자동화 도구, 모니터링 시스템 및 기타 소프트웨어와 통합되어 강력하고 효율적인 원격 액세스 솔루션을 만들 수 있습니다.

결론적으로 SSH는 서버 및 장치에 대한 안전한 원격 액세스를 위해 널리 채택되는 강력한 기술입니다. 오픈 소스 특성에는 크고 활발한 개발자 커뮤니티, 다른 오픈 소스 기술과의 상호 운용성, 다른 소프트웨어 및 시스템과의 쉬운 통합과 같은 여러 가지 이점이 있습니다. SSH의 오픈 소스 특성으로 인해 원격 액세스 기능을 개선하려는 모든 규모의 조직에 탁월한 선택입니다.

 

  • 원격 작업 및 서버 관리를 위한 SSH

오늘날의 급변하는 비즈니스 환경에서 원격으로 작업할 수 있는 기능은 많은 조직에서 필수 요소가 되었습니다. COVID-19 팬데믹으로 인해 원격 근무의 필요성이 더욱 가속화되면서 기업은 새로운 업무 방식에 빠르게 적응해야 했습니다. SSH(Secure Shell)는 원격 작업을 가능하게 하고 서버를 관리하는 데 중요한 역할을 하는 기술입니다.

SSH는 서버, 장치 및 기타 네트워크 리소스에 대한 안전한 원격 액세스를 허용합니다. 즉, 직원은 인터넷 연결만 있으면 언제 어디서나 필요한 리소스에 액세스할 수 있습니다. 이를 통해 직원의 유연성과 생산성이 크게 향상되어 집에서나 이동 중에 또는 어느 위치에서나 일할 수 있습니다.

SSH는 또한 서버 관리에 사용할 수 있는 여러 도구를 제공합니다. 예를 들어 SSH는 명령을 원격으로 실행하고 파일을 전송하고 네트워크 연결을 터널링하는 기능을 제공합니다. 이러한 기능은 서버 관리의 효율성과 속도를 크게 향상시켜 IT 팀이 서버를 빠르고 쉽게 원격으로 관리할 수 있도록 합니다.

또한 SSH는 자동화 도구, 모니터링 시스템 및 기타 소프트웨어와 통합되어 강력하고 효율적인 원격 액세스 및 서버 관리 솔루션을 만들 수 있습니다. 이를 통해 IT 팀은 원격으로 작업하는 경우에도 서버를 관리하고 성능을 모니터링하며 신속하게 문제에 대응할 수 있습니다.

결론적으로 SSH는 원격 작업을 가능하게 하고 서버를 관리하는 데 중요한 역할을 하는 강력한 기술입니다. 강력한 서버 관리 도구와 결합된 서버 및 장치에 대한 보안 원격 액세스를 제공하는 기능은 원격 작업 기능 및 서버 관리 효율성을 개선하려는 조직에 필수적인 도구입니다. SSH 기술을 사용하면 원격 작업 및 서버 관리의 유연성, 생산성 및 보안을 크게 높일 수 있습니다.

 

  • SSH가 연결할 수 있는 다양한 장치

SSH(Secure Shell)는 서버, 장치 및 기타 네트워크 리소스에 대한 보안 원격 액세스에 널리 사용되는 기술입니다. 인기의 이유 중 하나는 다양한 장치에 연결할 수 있다는 점입니다. SSH는 서버, 노트북, 태블릿, 스마트폰, IoT 장치 등에 연결할 수 있습니다.

SSH는 Windows, Linux 및 macOS와 같은 다양한 운영 체제를 실행하는 서버에 연결할 수 있습니다. 따라서 다양한 환경에서 사용할 수 있는 다목적 기술입니다. SSH는 일반적으로 클라우드 서버에 연결하는 데 사용되므로 사용자가 원격으로 클라우드 리소스에 액세스하고 관리할 수 있습니다.

서버 외에도 SSH는 노트북, 태블릿, 스마트폰과 같은 다양한 기타 장치에 연결할 수 있습니다. 이를 통해 사용자는 원격으로 개인 장치에 액세스하고 관리할 수 있으며, 이는 IT 관리자 및 지원 직원에게 특히 유용할 수 있습니다.

IoT 장치는 점점 대중화되고 있으며 SSH는 이러한 장치에도 연결할 수 있습니다. 이를 통해 모니터링 및 구성과 같은 IoT 장치의 원격 관리가 가능합니다. 이는 산업용 장비, 홈 오토메이션 시스템 및 기타 IoT 애플리케이션을 모니터링하고 제어하는 데 매우 유용할 수 있습니다.

결론적으로 SSH는 다양한 장치에 연결할 수 있는 다재다능한 기술입니다. SSH는 다양한 운영 체제, 클라우드 서버, 랩톱, 태블릿, 스마트폰, IoT 장치 등을 실행하는 서버에 연결할 수 있습니다. 따라서 모든 규모의 조직을 위한 강력한 도구가 되어 원격으로 장치에 안전하게 액세스하고 관리할 수 있습니다. SSH가 연결할 수 있는 다양한 장치는 원격 액세스 및 관리 기능을 개선하려는 조직에 필수적인 도구입니다.

 

  • 요약: SSH의 전반적인 이점

SSH(Secure Shell)는 서버, 장치 및 기타 네트워크 리소스에 대한 보안 원격 액세스를 제공하는 기술입니다. 원격 액세스 및 관리 기능을 개선하기 위해 모든 규모의 조직에서 널리 사용됩니다. 이 블로그 게시물에서는 SSH 기술의 전반적인 이점을 요약합니다.

첫째, SSH는 서버 및 장치에 대한 안전한 원격 액세스를 허용합니다. 즉, 직원은 인터넷 연결만 있으면 언제 어디서나 필요한 리소스에 액세스할 수 있습니다. 이를 통해 직원의 유연성과 생산성이 크게 향상되어 집에서나 이동 중에 또는 어느 위치에서나 일할 수 있습니다.

둘째, SSH는 서버 관리에 사용할 수 있는 여러 도구를 제공합니다. 예를 들어 SSH는 명령을 원격으로 실행하고 파일을 전송하고 네트워크 연결을 터널링하는 기능을 제공합니다. 이러한 기능은 서버 관리의 효율성과 속도를 크게 향상시켜 IT 팀이 서버를 빠르고 쉽게 원격으로 관리할 수 있도록 합니다.

셋째, SSH는 오픈 소스이므로 자유롭게 사용할 수 있고 특정 요구 사항에 맞게 수정할 수 있습니다. 이를 통해 조직의 비용을 크게 절감할 수 있으며 SSH를 다른 소프트웨어 및 시스템과 쉽게 통합할 수 있습니다.

넷째, SSH는 서버, 노트북, 태블릿, 스마트폰, IoT 장치 등을 포함한 광범위한 장치에 연결할 수 있습니다. 따라서 다양한 환경에서 사용할 수 있는 다재다능한 기술이며 조직에서 원격으로 장치에 안전하게 액세스하고 관리할 수 있습니다.

마지막으로 SSH는 안전한 기술입니다. 암호화를 사용하여 데이터와 통신을 보호하고 인증된 사용자만 필요한 리소스에 액세스할 수 있도록 다양한 형태의 인증을 사용하도록 구성할 수 있습니다. 이는 중요한 데이터 및 정보를 처리하는 조직에 특히 중요합니다.

결론적으로 SSH는 조직에 광범위한 이점을 제공하는 강력하고 다양한 기술입니다. 강력한 서버 관리 도구와 결합된 서버 및 장치에 대한 보안 원격 액세스를 제공하는 기능은 원격 액세스 및 관리 기능을 개선하려는 조직에 필수적인 도구입니다. 오픈 소스 특성, 연결할 수 있는 광범위한 장치 및 보안 기능으로 인해 모든 조직에 유용한 만능 도구입니다.

 

 

 

 

 

 


Posted by 블로그하는프로그래머
,
  1. ChatGPT 소개: 강력한 언어 모델
    1. OpenAI에서 개발한 ChatGPT는 우리가 언어 및 기술과 상호 작용하는 방식을 혁신할 수 있는 잠재력을 가진 강력한 언어 모델입니다. 매우 일관되고 상황에 맞는 텍스트를 생성하고 특정 작업을 미세 조정하며 이해하고 응답하는 기능을 갖추고 있습니다.  자연어 입력에 이르기까지 그 가능성은 무궁무진합니다. 챗봇과 콘텐츠 제작에서 교육과 창의적인 글쓰기에 이르기까지 ChatGPT는 탐색할 가치가 있는 도구입니다.

  1. ChatGPT의 변환기 기반 아키텍처를 사용한 일관된 텍스트 생성
    1. ChatGPT의 변환기 기반 아키텍처를 통해 매우 일관되고 상황에 맞는 텍스트를 생성할 수 있습니다.  따라서 챗봇 애플리케이션, 자동 작성 및 콘텐츠 생성과 같은 작업에 유용한 도구입니다.  특정 작업 및 청중에 대한 모델을 미세 조정할 수 있는 기능을 통해 ChatGPT로 텍스트 생성 가능성은 무한합니다.

  1. 특정 작업 및 대상에 대한 ChatGPT 미세 조정
    1. 특정 작업과 청중에 맞게 미세 조정하는 ChatGPT의 기능은 이를 다양한 사용 사례에 유용한 도구로 만듭니다. 올바른 교육 데이터를 사용하면 특정 산업, 대상 인구 통계, 심지어 개별 쓰기 스타일에 대한 텍스트를 생성하도록 조정할 수 있습니다. 이 수준  커스터마이제이션은 챗봇, 자동화된 글쓰기 및 콘텐츠 생성, 교육, 창의적 글쓰기와 같은 분야에서 ChatGPT의 무한한 가능성을 열어줍니다.

  1. ChatGPT의 자연어 이해 기능을 갖춘 챗봇 애플리케이션
    1. ChatGPT의 자연어 이해 기능은 챗봇 애플리케이션을 위한 유용한 도구입니다.  사람과 같은 방식으로 사용자 입력을 이해하고 응답하여 개인화되고 정확한 응답을 제공할 수 있습니다.  이는 고객 서비스를 개선하고 반복 작업을 자동화하며 대화형 소설을 만드는 데 사용할 수 있습니다.  ChatGPT를 사용한 챗봇 애플리케이션의 잠재력은 정말 흥미진진합니다.

  1. ChatGPT로 자동 작성 및 콘텐츠 생성
    1. ChatGPT는 매우 일관되고 상황에 맞는 텍스트를 생성하는 기능을 통해 자동 작성 및 콘텐츠 생성을 위한 유용한 도구가 됩니다.  뉴스 기사 작성, 제품 설명 작성, 창의적인 콘텐츠 생성과 같은 작업을 지원할 수 있습니다.  미세 조정 기능을 통해 특정 산업 및 작문 스타일에 맞게 조정할 수 있습니다.  콘텐츠 제작에서 ChatGPT의 잠재력은 무한합니다.

  1. 비즈니스 및 산업에서의 ChatGPT
    1. ChatGPT의 자연어 이해 및 텍스트 생성 기능은 비즈니스 및 산업에 유용한 도구입니다.  고객 서비스를 개선하고 반복 작업을 자동화하며 산업별 보고서 및 분석을 생성하는 데 사용할 수 있습니다.  특정 작업 및 청중에 대한 모델을 미세 조정할 수 있는 기능을 통해 비즈니스 및 산업에서 ChatGPT의 가능성은 무한합니다.

  1. ChatGPT의 교육용 애플리케이션
    1. ChatGPT는 에세이 작성, 질문 답변, 심지어 언어 번역과 같은 작업을 지원하기 위해 교육에 사용될 수 있습니다.  또한 자연어 이해 기능을 사용하여 대화형 학습 경험과 개인화된 학습 계획을 만들 수 있습니다.  특정 작업과 청중에 맞게 미세 조정할 수 있는 기능을 통해 교육 분야에서 ChatGPT의 잠재력은 무한합니다.

 

  1. ChatGPT를 통한 창의적 글쓰기 및 스토리텔링
    1. ChatGPT는 매우 일관되고 상황에 맞는 텍스트를 생성하는 기능을 통해 창의적인 글쓰기와 스토리텔링을 위한 귀중한 도구가 됩니다.  미세 조정 기능을 통해 특정 작문 스타일, 장르 및 개별 저자 스타일의 텍스트를 생성하도록 조정할 수 있습니다.  이야기 쓰기, 대화 또는 소설 공동 집필과 같은 작업을 지원할 수 있습니다.  창의적인 글쓰기에서 ChatGPT의 가능성은 무궁무진합니다.

  1. ChatGPT의 오류 및 편향 감지 및 수정
    1. ChatGPT는 다른 언어 모델과 마찬가지로 교육 데이터에 존재하는 오류와 편향을 영속화할 가능성이 있습니다.  이러한 오류와 편향을 감지하고 수정하여 지속되지 않도록 하는 것이 중요합니다.  이는 다양하고 편향되지 않은 데이터로 모델을 미세 조정하고, 생성된 텍스트를 모니터링하고, 편향 감지 도구를 사용하여 수행할 수 있습니다.  이러한 문제를 해결함으로써 ChatGPT는 보다 포괄적이고 정확한 도구가 될 수 있습니다.

 

  1. ChatGPT 교육 및 미세 조정의 과제
    1. 학습 및 미세 조정 ChatGPT는 많은 양의 데이터와 계산 리소스가 필요하기 때문에 어려운 작업이 될 수 있습니다.  또한 모델의 아키텍처에 대한 깊은 이해와 올바른 훈련 데이터를 선택하고 준비하는 능력이 필요합니다.  또한 원하는 수준의 성능을 달성하기 위해 많은 시행착오가 필요할 수 있습니다.  그러나 올바른 전문 지식과 리소스가 있으면 ChatGPT를 미세 조정하여 특정 작업을 수행하고 정확한 결과를 제공할 수 있습니다.

  1. 언어와 기술을 혁신하는 ChatGPT의 잠재력
    1. ChatGPT의 강력한 언어 이해 및 텍스트 생성 기능은 언어와 기술을 혁신할 수 있는 잠재력을 가지고 있습니다.  자연어 처리, 자동 쓰기를 개선하고 더 인간과 유사한 AI를 만드는 데 사용할 수 있습니다.  또한 미세 조정 기능을 통해 다양한 산업 및 사용 사례에 적응할 수 있습니다.  기술이 계속 발전함에 따라 언어와 기술의 미래를 형성하는 ChatGPT의 잠재력은 엄청납니다.

  1. 결론: ChatGPT의 무한한 가능성
    1. OpenAI가 개발한 고급 언어 모델인 ChatGPT는 자연어 처리 및 텍스트 생성을 위한 무한한 가능성을 제공합니다.  변압기 기반 아키텍처와 미세 조정 기능을 통해 다양한 산업 및 사용 사례를 위한 다목적 도구입니다.  고객 서비스에서 창의적인 글쓰기에 이르기까지 ChatGPT의 잠재력은 무한합니다.  기술이 계속 발전함에 따라 미래에 사용될 새롭고 혁신적인 방법을 보는 것은 흥미로울 것입니다.
Posted by 블로그하는프로그래머
,

예, 웹 페이지를 아름답게 만드는 데 사용할 수 있는 웹 디자인에 사용할 수 있는 여러 오픈 소스 프레임워크 및 라이브러리가 있습니다.  인기 있는 옵션은 다음과 같습니다.




부트스트랩: 부트스트랩은 웹 페이지에 쉽게 추가할 수 있는 양식, 버튼 및 탐색 메뉴와 같이 미리 디자인된 다양한 구성 요소를 포함하는 널리 사용되는 오픈 소스 프레임워크입니다.





Foundation: Foundation은 웹 페이지에 쉽게 추가할 수 있는 양식, 버튼 및 탐색 메뉴와 같이 미리 디자인된 다양한 구성 요소를 포함하는 또 다른 오픈 소스 프레임워크입니다.




Material-UI: Material-UI는 Google에서 개발한 Material Design 가이드라인을 구현하는 오픈 소스 프레임워크입니다.  여기에는 아름답고 일관된 사용자 인터페이스를 만드는 데 사용할 수 있는 사전 설계된 다양한 구성 요소가 포함되어 있습니다.




Bulma: Bulma는 반응형 및 모바일 우선 웹 페이지를 만들기 위한 간단하고 사용하기 쉬운 프레임워크인 Flexbox를 기반으로 하는 최신 CSS 프레임워크입니다.




Tailwind CSS: Tailwind CSS는 맞춤형 사용자 인터페이스를 신속하게 구축하기 위한 유틸리티 우선 CSS 프레임워크입니다.  마크업에서 직접 모든 디자인을 구축하도록 구성할 수 있는 일련의 CSS 클래스를 제공합니다.




이러한 모든 프레임워크는 무료로 사용할 수 있으며 웹 개발 프로젝트에 쉽게 통합될 수 있습니다.  그들은 또한 프레임워크에 기여하고 지식과 경험을 공유하는 대규모의 활발한 개발자 커뮤니티를 보유하고 있습니다.

그것을 기억하는 것이 중요합니다

Posted by 블로그하는프로그래머
,