일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tucker의 go 언어 프로그래밍
- Kubernetes
- 오블완
- kotlin querydsl
- 코틀린 코루틴의 정석
- golang
- 공부
- APM
- kotlin
- Elasticsearch
- kotlin coroutine
- PETERICA
- aws
- minikube
- CloudWatch
- 정보처리기사실기 기출문제
- docker
- 정보처리기사 실기 기출문제
- AWS EKS
- mysql 튜닝
- Linux
- 티스토리챌린지
- AI
- 기록으로 실력을 쌓자
- Pinpoint
- Java
- Spring
- CKA 기출문제
- CKA
- go
- Today
- Total
목록전체 글 (863)
피터의 개발이야기
ㅁ 들어가며 Ubuntu는 정기적으로 새로운 버전을 출시하며, 각 버전은 특정 기간 동안만 지원된다. 이 글에서는 Ubuntu의 주요 버전과 해당 버전의 EOL(End of Life) 날짜를 정리해 보았다. 이를 통해 어떤 버전을 사용해야 하는지, 업그레이드가 필요한 시점을 파악할 수 있다. ㅁ Ubuntu 버전 지원 정책Ubuntu는 두 가지 유형의 지원 정책을 제공된다.일반 지원 (Standard Support)출시 후 5년 동안 지원보안 업데이트 및 주요 버그 수정이 제공확장 지원 (Extended Security Maintenance, ESM)일반 지원 종료 후 추가로 5년간 지원ESM 기간 동안은 중요한 보안 업데이트만 제공Ubuntu Pro 구독을 통해 이용 가능함 ㅁ Ubuntu 버전 및..
ㅁ 들어가며Jenkins에서 원격 서버에 안전하게 접속하여 명령어를 실행하기 위해 SSH Agent를 사용하는 방법을 정리하였다.사전에 젠킨스를 설치되어 있어야 한다. ㅁ SSH Agent란? SSH Agent는 SSH 키를 관리하고, 원격 서버에 대한 인증을 자동화하는 도구이다. Jenkins에서는 SSH Agent 플러그인을 통해 Pipeline에서 SSH 키를 안전하게 사용할 수 있다. 이를 통해 원격 서버에 접속하여 명령어를 실행하거나 파일을 전송하는 등의 작업을 자동화할 수 있다. ㅁ Test를 위한 젠킨스 설치로컬에서 테스트를 위해 [Jenkins] Docker 기반 Jenkins quick start examples을 참조하여 빠르게 구축하였다.# git clone$ git clone ht..
ㅁ 들어가며 Docker와 Docker Compose를 더 쉽고 효율적으로 관리하는 방법을 찾고 있었다. Lazydocker가 바로 그 해답이었다. 이 강력한 터미널 UI 도구를 통해 Docker 컨테이너, 이미지, 볼륨을 한눈에 관리할 수 있다. ㅁ 설치 방법# macbrew install lazydocker# Binary 설치curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bashㅇ 자세한 lasydocker 설치 설명ㅇ Linux 사용자라면 curl로 쉽게 설치할 수 있다. ㅁ 기본 사용법lazydockerㅇ 터미널에서 위 명령어를 실행한다. ㅇ 실행된 화면..
ㅁ 들어가며ㅇ ffmpeg을 이용한 스트림 서비스 개발 작업을 하면서 ffmpeg 관련 프로세스를 모두 종료해야 할 때가 있다.ㅇ ps 명령어와 kill 명령어를 조합하는 방법과 pkill, killall 명령어를 사용하는 방법으로 ffmpeg 프로스세를 일괄종료하는 스크립트를 작성해 보았다. ㅁ ps와 kill 명령어ffmpeg 프로세스 확인 및 종료# ffmpeg 프로세스 확인ps -ef | grep ffmpeg# 종료kill -9 ㅇ 가장 기본적인 방법은 ps 명령어로 프로세스를 찾고 kill 명령어로 종료하는 것이다.ㅇ 이 방법은 프로세스 ID(PID)를 직접 확인하고 종료할 수 있어 정확하지만, 여러 프로세스를 종료할 때는 번거로울 수 있다. kill, grep, awk 명령어로 프로세스 종료..
ㅁ 들어가며ㅇ 로그 정리 스크립트 작성 중 하루, 한시간 지난 로그를 삭제하는 스크립트를 작성하였다. ㅁ Delete Script Sample#!/bin/bash# 삭제할 디렉터리 경로 (변경 가능)TARGET_DIR="/path/to/directory"# 하루(24시간) 지난 파일 삭제find "$TARGET_DIR" -type f -mindepth 1 -mtime +1 -print >> ./delete_old_files.log 2>&1find "$TARGET_DIR" -type f -mindepth 1 -mtime +1 -exec rm -f {} \;# 로그 출력 (선택 사항)echo "$(date): Deleted files older than one day in $TARGET_DIR" >> /va..
ㅁ 들어가며 최근 글로벌 AI 시장에 충격파를 던진 중국의 스타트업 DeepSeek이 화제이다. 오픈소스 기반의 초대규모 언어모델(LLM)로 미국의 제재를 뚫고 경쟁사 대비 95% 낮은 비용으로 ChatGPT 수준의 성능을 구현하며, 출시 17일 만에 iOS 앱스토어 1위를 차지하였다. 2023년 7월 17일에 설립된 이 회사는 짧은 기간 동안 놀라운 성과를 보여주며 AI 산업의 새로운 패러다임을 제시하고 있다. 이번 글에서는 DeepSeek의 혁신적인 기술과 접근 방식, 그리고 이 회사가 AI 산업에 미치는 영향에 대해 정리해 보았다. ㅁ DeepSeek: 이름에 담긴 의미 DeepSeek라는 이름은 'Deep'(깊은, 심층)과 'Seek'(찾다, 추구하다)의 합성어로, "깊이 있게 찾다" 또는 ..
ㅁ 들어가며 지난 글, [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 ㅇ 문서역할: 이미지를 빌드할 때에 사용가능한 포트를 안내하는 커뮤니케이션 도구ㅇ 실제 포트 개방 ..