본문 바로가기

프로젝트 & TIL

(103)
76일차 - 스프링 리소스(Spring Resource) 스프링 리소스(Spring Resource) - 스프링 프레임워크에서 제공하는 정적 리소스 관리 기능 - 클래스패스 상의 리소스나 웹 애플리케이션의 상대 경로에 있는 리소스를 쉽게 찾을 수 있다. - 리소스의 읽기, 쓰기, 복사 등 다양한 작업을 수행할 수 있다. - Resource 인터페이스를 통해 제공되며, 다양한 구현 클래스를 사용하여 리소스를 로드할 수 있다. Resource Interface와 그 구현체들 public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; U..
75일차 - CS(CPU, 메모리) CPU(중앙 처리 장치) - 4대 주요 기능(기억, 해석, 연산, 제어)을 관할하는 장치 - 프로그램의 명령어를 해석하여 데이터를 연산/처리하고 그렇게 돌아가도록 제어해주는 부분, 또는 그 기능을 내장한 칩 - 컴퓨터가 동작하는 데 필요한 모든 계산을 처리한다. 메모리(기억 장치) - 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치 - CPU에서 계산한 결과가 저장된다. => 하드디스크 같은 보조기억장치에 저장되는 것이 아니다. - 컴퓨터가 켜지고 프로그램이 실행되면 그것들은 전부 메모리에 올라온다. 메모리의 계층 구조 -레지스터- ---캐시 메모리--- ------주기억 장치------ -------버퍼(디스크 캐시)------- --------------보조 기억 장치--------------..
74일차 - CS(컴퓨터 구조, 커널, 쉘) 디플로이먼트 리플리카 개수 변경 kubectl scale 디플로이먼트_이름 --replicas=개수 컴퓨터 구조 Human Users --- Application Software --- Operationg System --- Other System Software --- Hardware Human Users --- Operationg System --- Hardware 사용자 -> 응용 프로그램 -> 운영체제 -> 하드웨어 커널 - 운영체제의 심장이자 운영체제를 규정짓는 매우 중요한 부분 - 하드웨어의 자원을 필요로 하는 프로세스에 할당하고 프로세스 지어(태스크 매니저), 메모리 제어, 프로그램이 운영체제에 요구하는 시스템 콜 등을 수행하는 부분 쉘 - 커널-이용자 사이에서 이용자의 명령을 해석하고 처리..
73일차 - 깃허브 액션(Github Actions) 릴리즈 릴리즈 생성 태그 => 특정 커밋에 이름 부여 릴리즈 => 특정 태그를 다운로드 받을 수 있게 작업 & 문서화 name: work-1 on: push: branches: - main jobs: makeTagAndRelease: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: mathieudutour/github-tag-action@v6.1 id: tag_version with: github_token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ ste..
72일차 - 깃허브 액션(Github Actions) 깃허브 액션(Github Actions) - 1개의 리포지터리 > 여러 개의 브랜치, 여러 개의 워크플로우 파일들 - 1개의 워크플로우 파일 > 여러 개의 잡, 발동 조건 - 1개의 잡 > 여러 개의 스탭 새 리포지터리 생성 후 아래와 같이 github.com/~ 를 github.dev/~로 바꾸거나, creating a new file을 클릭한다. .github/workflows 경로를 설정하고 이름.yml 파일을 생성한다. 파일 내용 name: work-1 # 맘대로 지정하면 됨 on: push: branches: - main # main에 커밋, 푸시되면 깃허브 액션이 실행된다. jobs: hello1: # jobs 이름 runs-on: ubuntu-latest steps: - name: run: ..
71일차 - 쿠버네티스 NodePort, MariaDB, 포트 포워딩 NodePort - 클라이언트 IP + 외부 포트 kubectl expose deployment/webserver-hello --type="NodePort" --port 8080 --target-port=80 --name=webserver-hello-node-port : NodePort 서비스 연결 kubectl edit service webserver-hello-node-port > sessionAffinity: None에서 ClientIP로 수정 kubectl get service webserver-hello-node-port -o yaml : 수정되었는지 확인 서비스IP:8080 : 접속되는지 확인 NCP > ACG 설정 > 0.0.0.0/0 IP, 30000-32767 포트를 추가해준다. 크롬에서..
70일차 - 쿠버네티스 Deployment, 클러스터 IP Pod 삭제하기 kubectl get pods -o wide : 파드의 자세한 정보 조회 kubectl delete pod webserver(kubectl delete pod/webserver) : webserver 파드 삭제 Links yum install links -y : links 설치 links https://google.com/ : links로 구글 사이트 조회(q : 나가기) kubectl run webserver --image=nginx : nginx 최신 이미지로 webserver라는 이름의 파드 띄우기 kubectl get pods -o wide : 파드의 자세한 정보 조회 links http://파드IP:80 : links로 파드에서 서비스 중인 웹서버 조회 (한글은 많이 깨진다.) ..
69일차 - 쿠버네티스 마운트, 설치 및 사용 NCP에서 NAS 볼륨 생성 - Service > Storage > NAS > NAS 볼륨 생성 - 서버 모두 ACL 설정에 넣고 생성 NAS 마운트 아래의 명령어 실행(전체 서버) yum install nfs-utils -y : nfs-utils 설치 mkdir -p /data/share : 마운트할 폴더 생성 mount -t nfs 마운트_정보 /data/share : 마운트 (mount -t nfs -o vers=3 마운트_정보 /data/share : 위 마운트 명령어가 에러날 경우) 영구적인 마운트 설정(전체 서버) vim /etc/fstab > 기존 내용에 '마운트_정보 /data/share nfs defaults 0 0' 추가 (위에서 vers=3 적용한 경우 : 마운트_정보 /data/sh..