일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린 코루틴의 정석
- minikube
- CKA 기출문제
- AI
- 오블완
- Spring
- MySQL
- CloudWatch
- PETERICA
- kotlin
- 정보처리기사 실기 기출문제
- mysql 튜닝
- Linux
- 정보처리기사실기 기출문제
- 티스토리챌린지
- 정보처리기사 실기
- Java
- kotlin spring
- Pinpoint
- 공부
- Elasticsearch
- Kubernetes
- aws
- IntelliJ
- APM
- 기록으로 실력을 쌓자
- kotlin querydsl
- AWS EKS
- CKA
- kotlin coroutine
- Today
- Total
목록Programming (190)
피터의 개발이야기
ㅁ 들어가며 젠킨스 빌드 환경 조성 시 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..
ㅁ 들어가며 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..
ㅁ 들어가며 맥북 M3를 사용 중이다. 로컬에서 GO로 빌드한 실행파일이 서버에서 작동하지 않았다. 이번 글에서는 Intel Xeon 프로세서를 위한 Go 빌드 시 GOARCH 설정에 대해 정리하였다. ㅁ GOARCH란? GOARCH는 Go 언어에서 타겟 아키텍처를 지정하는 환경 변수이다. 이 설정을 통해 특정 CPU 아키텍처에 최적화된 바이너리를 생성할 수 있다. ㅁ Intel Xeon을 위한 GOARCH 설정ㅇ Intel Xeon 프로세서는 서버급 성능을 제공하는 x86-64 아키텍처 기반의 CPU이다.export GOARCH=amd64ㅇ Intel Xeon 프로세서는 x86-64 아키텍처를 사용하므로, GOARCH 값을 "amd64"로 설정해야 한다.ㅇ 이 설정은 64비트 x86 아키텍처를 타겟으..
ㅁ 들어가며 Go 언어로 웹 요청을 보낼 때 http.Client를 사용한다. Client가 proxy설정에 영향을 받는 줄 모르고 트러블 슈팅을 하게 되었다. 이 트러블 슈팅을 하면서 알게 된 http.Client의 프록시 설정에 대해 정리해 보았다. ㅁ 환경 변수를 통한 프록시 설정// HTTP 요청에 대한 프록시 서버 주소export HTTP_PROXY=http://proxy.example.com:8080// HTTPS 요청에 대한 프록시 서버 주소export HTTPS_PROXY=https://proxy.example.com:8080// 프록시를 사용하지 않을 도메인 목록export NO_PROXY=localhost,127.0.0.1,10.0.0.0/8ㅇ Go의 http.Client는 기본적으..
ㅁ 들어가며ㅇ Spring Boot의 @Cacheable 어노테이션은 애플리케이션의 성능을 향상시키기 위해 자주 사용되는 캐시 기능을 제공된다.ㅇ 이 글에서는 @Cacheable의 사용법과 관련된 다양한 기능을 Kotlin 예제를 통해 살펴보다. ㅁ Spring Cache Abstration이란? 스프링은 캐시 추상화(Cache Abstraction)을 통해 사용자는 캐시 구현에 대해 신경 쓸 필요 없이 퍼블릭 인터페이스를 쉽게 캐싱 기능을 사용할 수 있는 편리한 캐싱 기능을 지원한다. 캐싱이 필요한 비즈니스 로직에서 EhCache, Redis 등 캐싱 인프라에 의존하지 않고 추상화된 퍼블릭 인터페이스로 캐싱을 할 수 있다. 인터페이스화 되면 EhCache로 사용 중에 Redis로 변경이 쉬워진다. ..
ㅁ 들어가며ㅇ PR처리하다가 Scala에서 flatMap과 match를 함께 사용하는 방법을 간단히 정리 ㅁ flatMap 사용법ㅇ flatMap은 컬렉션을 변환하고 평탄화하는 데 사용val numbers = List(1, 2, 3)val result = numbers.flatMap(x => List(x, x * 2))println(result) // List(1, 2, 2, 4, 3, 6)ㅇ 각 요소를 새로운 컬렉션으로 변환ㅇ 결과 컬렉션들을 하나의 평탄화된 컬렉션으로 만듬. ㅁ match 사용법ㅇ match는 패턴 매칭을 위해 사용되며, 다양한 조건에 따라 다른 결과를 반환할 수 있다.def describe(x: Any): String = x match { case 5 => "five" case ..
ㅁ 들어가며ㅇ 회사에서 GO 언어로 작성된 모듈을 담당하게 되었다.ㅇ 핵심적인 GO의 개요, 설치방법, 기본 문법에 대해서 정리하였다. ㅁ GO 언어 개요 GO는 Google에서 개발한 오픈소스 프로그래밍 언어로, 간결하고 효율적인 코드 작성을 지향한다. 2009년에 처음 발표되었으며, 빠른 컴파일 속도와 동시성 프로그래밍을 쉽게 구현할 수 있는 특징을 가지고 있다. Go의 주요 설계 정책은 가능한 효율적이고 안전하며 뛰어난 프로그램 언어로 만드는 것이다. Go에서는 코드의 쓸데없는 설명과 복잡성을 줄이는 것이 적극적으로 이루어지고 있으며, 단순화를 위해 C++나 Java처럼 계층이나 제네릭스, 예외 처리, 단언문, 오버로드가 없다. 새로운 언어이지만 이미 많은 기업이 사용하고 있다. 특히Kubernet..
ㅁ 관련 글ㅇ [kubernets] skaffold란, Kubernetes 로컬 개발환경Skaffold는 Kubernetes 네이티브 애플리케이션을 위한 지속적인 개발을 용이하게 하는 CLI 도구이다.Skaffold는 소스 코드의 변경 사항을 감지 하고 정책 기반 이미지 태깅 및 최적화되고 빠른 로컬 워크플로 를 통해 애플리케이션을 자동으로 빌드 , 푸시 , 테스트 및 배포 하는 파이프라인을 처리한다.ㅇ [kubernets] Kubernetes 로컬 개발환경 skaffold, Intellij ㄴ skaffold와 Intellij를 연동하여 쿠버네티스 로컬 개발환경 세팅하는 과정을 정리ㅁ 들어가며 예전 Skaffold의 로컬환경을 구성하면서 JIB를 설정해 보았는데, 이번 글에서는 는 Jib에 대해 구체..
ㅁ 들어가며ㅇ 회사에서 외부API의 통신에서 에러가 발생하여 그 원인을 분석하였다.ㅇ 외부 연동된 API는 처리하는데 1.7초, 내부적으로 Connection Timeout 설정이 1.5초로 되어 있었다.ㅇ 이번 글에서는 Connection Timeout 설정 방법과 에러 패턴, 최적의 Timeout 설정, 에러 처리 및 로깅 방법에 대해서 정리해 보았다. ㅁ Connection Timeout 설정 방법Spring RestTemplate에서 connection timeout을 설정하는 방법은 크게 두 가지가 있다. 1. HttpComponentsClientHttpRequestFactory 사용HttpComponentsClientHttpRequestFactory factory = new HttpCompon..