일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 티스토리챌린지
- 정보처리기사 실기 기출문제
- 정보처리기사 실기
- Linux
- PETERICA
- 기록으로 실력을 쌓자
- 공부
- Spring
- kotlin
- CKA 기출문제
- AWS EKS
- AI
- Elasticsearch
- 정보처리기사실기 기출문제
- Pinpoint
- kotlin spring
- kotlin querydsl
- APM
- aws
- CloudWatch
- 코틀린 코루틴의 정석
- minikube
- CKA
- MySQL
- IntelliJ
- Kubernetes
- 오블완
- mysql 튜닝
- Java
- kotlin coroutine
- Today
- Total
목록전체 글 (798)
피터의 개발이야기
ㅁ 들어가며 지난 글, [Git] Linux 서버에서 SSH 키를 사용하여 GitHub에 접속하는 방법에서 SSH keygen 사용해서 암호 대신 SSH key로 인증하여 비밀번호 입력없이 GitHub와 통신는 과정을 정리하였다. SSH(Secure Shell)는 네트워크 상에서 안전하게 통신하기 위한 프로토콜이다. SSH Keygen은 이 SSH 프로토콜에서 사용되는 키 쌍을 생성하는 도구이다. 이 글에서는 SSH Keygen의 사용법에 대해 정리하였다. ㅁSSH Keygen 기본 사용법ssh-keygen -t rsa -b 4096ㅇ RSA 알고리즘을 사용하여 키를 생성한다.ㅇ 키의 길이를 4096비트로 설정한다.ㅇ 기본적으로 ~/.ssh 디렉토리에 id_rsa(비공개 키)와 id_rsa.pub(공개 ..
ㅁ 들어가며 오늘은 Docker를 이용해 MockServer를 설정하고 사용하는 방법에 대해 알아보았다. MockServer는 API 응답을 모킹하는 데 매우 유용한 도구로, 개발 및 테스트 과정에서 큰 도움이 된다. ㅁ MockServer란? MockServer는 HTTP 요청에 대해 사전 정의된 응답을 제공하는 도구이다. 실제 서버 없이도 API 응답을 시뮬레이션할 수 있어, 프론트엔드 개발이나 테스트 환경 구축에 매우 유용하다. ㅁ Docker로 MockServer 실행하기docker pull mockserver/mockserverdocker run -d -p 1080:1080 mockserver/mockserver ㅁ 응답 설정하기# reqcurl -X PUT "http://localhost:10..
ㅁ 들어가며 젠킨스 빌드 환경 조성 시 SSH 키를 사용하여 git clone을 해야 했다. 구체적으로 Linux 서버에서 SSH 키를 사용하여 GitHub에 접속하는 방법을 정리하였다. ㅁ SSH 키 생성ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ㅇ 프롬프트가 나타나면 키 저장 위치와 비밀번호를 지정하거나 기본값을 사용하였다. ㅁ SSH 에이전트에 키 추가eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ㅁ 공개 키 복사ㅇ 출력된 내용을 복사한다. ㅁ GitHub에 SSH 키 추가ㅇ GitHub 계정에 로그인한다.ㅇ Settings > SSH and GPG keys로 이동하고 "New SSH key" 버튼을 클릭한다. ㅇ..
ㅁ 들어가며 git에서 중간 커밋 과정을 정리하는 주요 방법은 git squash이다. git squash를 사용하면 여러 개의 커밋을 하나의 의미 있는 커밋으로 합칠 수 있어 커밋 히스토리를 깔끔하게 관리할 수 있다. 오늘은 중간 커밋을 합쳐주는 squash에 대해서 정리하였다. ㅁ 체리픽 예전에 [git] 체리픽 Cherry-pick, feature 로그 깔끔하게 merge하기 작성한 글에서, 체리픽은 값만 복사하는 별개의 커밋이지 중간 커밋은 정리가 되지 않았다. ㅇ 체리픽은 값만 복사해서 dev에 머지를하기 때문에 commit ID가 다른 별개의 커밋이다.ㅇ 하지만 feature 중간에 히스토리는 그대로 남아 있다. ㅁ 테스트를 위한 git init# workspace 생성mkdir git..
ㅁ 들어가며 Docker 작업을 진행하고 있었는데, docker login이 되지 않은 문제점이 발생하였다. [Docker] Error saving credentials: error storing credentials 해결방법에서 이 문제를 해결하였지만, MacOS가 docker를 악성코드로 인식하는 문제가 발생하였다. 이어지 내용은 해결과정이고 빠른 해결을 말하자면, 신규 버젼 4.37.2 다운로드 및 설치하면 된다. ㅁ 증상com.docker.vmnetd는 사용자의 컴퓨터를 손상시킵니다. ㅇ Docker가 자동업데이트되면서 다운로드한 파일이 MacOS 보안과 충돌이 발생하였다. ㅇ 일단 무시하고 재시동을 시도해 보았다. ㅇ 재시동 후 Docker를 삭제하라는 경고가 발생하였다.ㅇ 이후 Docker를..
ㅁ 들어가며ㅇ docker 로그인 시 saving credentials 문제가 발생하여 트러블 슈팅하고 그 해결방법을 정리 ㅁ 에러 내용docker login {url} -u peterica -p WARNING! Using --password via the CLI is insecure. Use --password-stdin.Error saving credentials: error storing credentials - err: exit status 1, out: `error getting credentials - err: exit status 1, out: `The user name or passphrase you entered is not correct.`` ㅁ 해결 방법# keychain 삭제rm /..
ㅁ 들어가며 Viper는 Golang 애플리케이션에서 설정 정보를 관리하는 라이브러리이다. 이 글에서는 다양한 파일 형식을 지원하고 동적으로 값을 구성할 수 있는 Viper의 사용 방법을 정리하였다. ㅁViper 설치하기go get github.com/spf13/viper ㅁ 기본 사용법구성 파일 설정viper.SetConfigName("config") // 확장자를 제외한 구성 파일 이름viper.SetConfigType("yaml") // 구성 파일 형식 지정 (yaml, json, toml 등)viper.AddConfigPath("/etc/appname/") // 구성 파일을 찾을 경로 추가viper.AddConfigPath("$HOME/.appname") // 여러 경로 추가 가능viper.A..
ㅁ 들어가며 스트림을 트랜스코드하는 작업을 하면서 FFprobe를 사용하게 되었다. FFprobe는 FFmpeg 프로젝트의 일부로, 멀티미디어 파일의 상세 정보를 분석하고 출력하는 강력한 도구이다. 이 글에서는 FFprobe의 기본 사용법과 유용한 옵션들을 정리하였다. ㅁ 기본 사용법ffprobe [옵션] 입력파일 ㅁ 주요 옵션스트림 정보 표시ffprobe -show_streams 입력파일ㅇ 이 명령어는 파일의 모든 스트림(비디오, 오디오, 자막 등)에 대한 상세 정보를 출력한다. 포맷 정보 표시ffprobe -show_format 입력파일ㅇ 파일 컨테이너 포맷에 대한 정보를 보여준다. 간단한 정보만 표시ffprobe -v error -show_entries format=duration -of def..
ㅁ 들어가며 Docker를 설정하면서 포트 설정과 관련하여 Dockerfile의 EXPOSE 명령어와 "docker run -p" 옵션을 보게 된다. 이 두 가지는 비슷해 보이지만 실제로는 매우 다른 목적을 가지고 있다. EXPOSE: 문서화 및 메타데이터 제공되며, 이미지 빌드 시 적용됨."docker run -p": 컨테이너 실행 시 실제 포트 매핑 수행 ㅁ Dockerfile의 EXPOSE EXPOSE 명령어는 Dockerfile에서 사용되며, 컨테이너가 실행 중에 사용할 네트워크 포트를 지정하는 역할을 한다. 하지만 EXPOSE가 실제로 포트를 열어주지는 않는다.FROM nginxEXPOSE 80 ㅇ 문서역할: 이미지를 빌드할 때에 사용가능한 포트를 안내하는 커뮤니케이션 도구ㅇ 실제 포트 개방 ..
ㅁ 들어가며ㅇ ubuntu:22.04에 ffmpeg을 설치하는 방법을 정리하였다. ㅁ 컨테이너 생성docker run -it --name=ubuntu22-basic --platform linux/amd64 ubuntu:22.04 bash ㅇ 테스트를 위한 ubuntu 컨테이너를 생성한다. ㅇ 맥북 M3이어서 platform 옵션을 추가하였다. ㅁ 기본 APT 설치 방법apt update apt -y install ffmpeg ㅁ 설치 확인root@efe93bd51271:/$ ffmpeg -versionffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developersbuilt with gcc 11 (Ubuntu 11.2...
ㅁ 들어가며 Transcoding, ffmpeg 기본 사용법에서 ffmpeg, Docker로 무설치 사용하기에 대해서 간단히 정리해 보았다. 현재 Docker 환경에서 ffmpeg을 이용한 개발 중인데, OS(Rocky9, Ubuntu)와 ffmpeg의 버젼에 따라서 여러가지 문제가 발생하여 트러블 슈팅을 하면서 알게 된 내용을 정리해 보았다. ㅁ 기본 사용법docker run -it --rm linuxserver/ffmpeg:latest -versionㅇ linuxserver/ffmpeg는 이미 ffmpeg이 endpoint로 지정되어 있어서, 옵션만 전달하면 된다.ㅇ 반대로, 이 이미지를 통해 bash로 실행되지는 않았다. ㅁ 특정 버전의 ffmpeg 테스트docker run -it --rm linu..
ㅁ 들어가며 Docker를 사용하면서 가장 자주 접하는 명령어인 docker run에 대해서 정리해 보았다. 이 명령어는 Docker 이미지로부터 새로운 컨테이너를 생성하고 실행하는데 자주 쓰이는데, 매번 작성 시 참조하기 위해 이 글을 정리하였다. ㅁ docker run의 기본 구조docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]ㅇ [OPTIONS]: 컨테이너 실행 시 적용할 다양한 옵션들ㅇ IMAGE[:TAG|@DIGEST]: 실행할 Docker 이미지 (태그나 다이제스트 지정 가능)ㅇ [COMMAND]: 컨테이너 내에서 실행할 명령어 (옵션)ㅇ [ARG...]: 명령어에 전달할 인자 (옵션) ㅁ docker run의 동작 방식docker r..
ㅁ 들어가며 Docker를 사용하다 보면 컨테이너의 로그를 확인해야 할 때가 있다. 일반적으로 Linux 환경에서는 /var/lib/docker/containers/ 경로에서 로그 파일을 찾을 수 있지만, MacOS에서는 상황이 조금 다르다. 이 글에서는 MacOS의 Docker 로그 저장 위치에 대해서 공부한 내용을 정리하였다. ㅁ MacOS의 Docker 로그 저장 위치 MacOS에서 Docker는 LinuxKit 위에서 동작한다. 이로 인해 로그 파일의 실제 위치는 LinuxKit VM 안에 존재한다.그래서 Docker 로그 파일을 찾기 위해서 LinuxKit VM에 접속하여 VM 내부에서 로그 파일들을 확인한다. ㅁ LinuxKit VM에 접속하기ㅇ Git의 BretFisher/docker-..
ㅁ 들어가며 배포환경을 구성하면서 보안점검에 대해서도 대비해야한다. [Docker] Distroless 이미지란?에서 Muti Stage build와 경량 이미지를 이용하는 방법에 대해서 보안취약점에 대비하는 방법을 알게 되었는데, 생성된 Docker 이미지의 보안성 체크를 위해 Trivy를 알게 되어 이 글을 작성한다. ㅁ Trivy란?Trivy는 Aqua Security에서 개발한 오픈소스 취약점 스캐너이다.컨테이너 이미지, 파일시스템, Git 저장소 등의 취약점을 검사할 수 있다. ㅁ 설치 방법# macOSbrew install trivy# ubuntusudo apt-get install trivy# docker docker run aquasec/trivy ㅇ Trivy는 Installing Tri..
ㅁ 들어가며 Docker의 경량 이미지는 alpine만 알고 있었다. 보안 취약점과 이미지의 용량에 대해서 고민하면서 회사 크루의 소개로 Distroless를 알게 되었다. 도커 이미지계의 미니멀리즘이라, 해커가 들어와도 할 수 있는게 없었다. 그래서 보안점검, 이미지 경량화에 우수하지만 디버깅은 어렵다. ㅁ Distroless 이미지란? Distroless 이미지는 Kubernetes 워크로드를 위해 설계된 최소화된 컨테이너 이미지이다. 이 이미지는 애플리케이션과 그 런타임 의존성만을 포함하며, 불필요한 요소들을 과감히 제거하였다. ㅁ Distroless의 특징ㅇ 최소한의 구성: 애플리케이션에 필요한 최소한의 바이너리 코드와 직접적인 종속성만 포함ㅇ 불필요한 요소 제거: 패키지 관리자, shel..