| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- CKA 기출문제
- MySQL
- AI
- AWS EKS
- minikube
- tucker의 go 언어 프로그래밍
- Java
- Kubernetes
- 공부
- kotlin
- APM
- kotlin querydsl
- go
- Linux
- Pinpoint
- kotlin coroutine
- 컨텍스트 엔지니어링
- 오블완
- SRE
- 코틀린 코루틴의 정석
- 바이브코딩
- CKA
- 정보처리기사 실기 기출문제
- aws
- Spring
- CloudWatch
- golang
- 기록으로 실력을 쌓자
- 티스토리챌린지
- PETERICA
- Today
- Total
목록전체 글 (935)
피터의 개발이야기
ㅁ 들어가며 최근 고성능 컴퓨팅(HPC)과 AI 시대가 도래하면서 데이터 처리 속도와 메모리 확장성에 대한 요구가 급격히 증가하고 있다. 호스트 프로세서에 연결된 메인 메모리 외에 NIC, GPU 및 스토리지 SSD에는 종종 충분히 활용되지 않는 메모리 캐시가 있다. 이는 해당 시스템 전체에 메모리가 유휴 상태임을 의미한다. 이러한 캐시는 일반적으로 연결할 도구가 없으면 상호 작용할 수 없다. 이러한 흐름 속에서 CXL(Compute Express Link) 기술을 알게 되었다. CXL은 기존 메모리 인터페이스의 한계를 극복하며, AI와 데이터센터 환경에서 효율성을 극대화하는 차세대 인터페이스로 자리 잡고 있다. 이번 글에서는 CXL 메모리의 개념, 학회 및 업계 동향, 그리고 HBM과의 차이점을 정리..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 목차ㅇ Go 언어의 인터페이스는 강력하면서도 유연한 추상화 도구이다. ㅁ 인터페이스type Speaker interface { Speak() string}ㅇ 인터페이스는 메서드의 집합을 정의하는 타입이다.ㅇ 이 인터페이스는 Speak() 메서드를 가진 모든 타입이 구현할 수 있다. type Person struct { Name string}func (p Person) Speak() string { return "Hello, my name is " + p.Name}ㅇ 예를 들어 Person 타입은 Speaker 인터페이스를 만족한다. ㅁ 인터페이스 왜 쓰나?ㅇ ..
ㅁ 들어가며 회사 쿠루의 추천으로 키보드를 구입하였다. MCHOSE GX87 기계식 키보드의 사용법에 대해서 정리하였다. ㅁ 구매처 알리 ㅇ MCHOSE GX87 V2 기계식 키보드 알루미늄 합금 삼중 모드 가스켓 구조 RGB Esports 맞춤형 게임용 키보드 Pc 액세서리ㅇ 옵션: Mountain Green-Latteㅇ 구입 링크ㅇ (3.28 기준) 최저가는 이곳이다. 한글도 표시되고 금액이 99000원이었다. ㅁ 스위치 위치 구조ㅇ 뒷면에 모드 스위치와 2.4GHz USB 수신기, Type-C 포트가 있다. ㅁ 유선 연결ㅇ 키보드 토글을 [OFF] 위치로 전환ㅇ Type-C 케이블을 키보드 포트에 연결ㅇ 케이블의 다른 쪽 끝을 컴퓨터 USB 포트에 꽂는다. ㅁ 2.4GHZ 연결 ㅇ USB 수신..
ㅁ 들어가며ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 목차ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 24장 제네릭 프로그래밍을 작성하면서 제니릭과 인터페이스의 차이점에 대해서 공부하였다.ㅇ 인터페이스와 제네릭은 프로그래밍에서 추상화와 재사용성을 높이는 데 사용되는 개념이지만, 그 목적과 사용 방식에 차이가 있다. ㅁ 인터페이스ㅇ 인터페이스는 객체의 행동(메서드 집합)을 정의하고, 이를 구현하는 타입에 따라 다형성을 제공한다.package mainimport "fmt"// Shape 인터페이스 정의type Shape interface { Area() float64}// Circle 타입type Circle struct { Radius float64}func (c Circle) Area()..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 목차 ㅁ 제네릭 프로그래밍 소개 제네릭 프로그래밍은 Go 1.18 버전에서 도입된 기능으로, 타입에 구애받지 않고 재사용 가능한 코드를 작성할 수 있게 해준다. 이를 통해 개발자는 다양한 데이터 타입에 대해 동작하는 함수와 데이터 구조를 만들 수 있으며, 코드 중복을 줄이고 타입 안정성을 높일 수 있다. ㅁ 제네릭 함수ㅇ 제네릭 함수는 타입 매개변수를 사용하여 여러 타입에 대해 동작할 수 있는 함수이다.func Max[T comparable](a, b T) T { if a > b { return a } return b}ㅇ 이 함수는 comparab..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 목차ㅇ Go 언어에서 채널(Channel)과 컨텍스트(Context)는 동시성 프로그래밍과 요청 관리에 필수적인 도구이다.ㅁ 채널(Channel) 사용하기ㅇ 채널은 고루틴 간의 데이터 통신 및 동기화를 위한 파이프 역할을 한다.ㅇ 기본 사용법생성: make(chan 타입)송신: 채널 수신: 데이터 := // 기본 예시ch := make(chan string) // 생성go func() { ch ㅁ 버퍼드 채널 vs 언버퍼드 채널유형특징예제언버퍼드송신/수신이 즉시 동기화ch := make(chan int)버퍼드지정된 크기까지 비동기적 전송ch := make(chan..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ [GO] Tucker의 GO 언어 프로그래밍 - 목차고루틴과 Go 언어의 동시성 프로그래밍에 대해 핵심 개념을 정리합니다.ㅁ 스레드란?프로세스 내에서 실행되는 실행 흐름의 최소 단위로, CPU 자원을 할당받아 작업을 수행합니다. OS 스레드는 컨텍스트 스위칭 비용이 높고 메모리를 많이 사용하지만, Go의 고루틴은 경량 스레드로 2KB의 작은 스택에서 시작해 동적으로 확장되며, Go 런타임이 직접 관리한다.📌 고루틴 vs OS 스레드OS 스레드: 컨텍스트 스위칭 비용高, 메모리 사용량多고루틴: 빠른 생성/소멸, 수천 개 동시 실행 가능. ㅁ 고루틴 사용go 키워드로 함수를 비동기 실행한다. 메인 함수도 고루틴으로 실행되며, ..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ 4장 연산자 - 연산자종류 ㅁ 산술 연산자산술 연산자는 수학적 계산을 수행a, b := 10, 20fmt.Println(a + b) // 30 (덧셈)fmt.Println(a - b) // -10 (뺄셈)fmt.Println(a * b) // 200 (곱셈)fmt.Println(b / a) // 2 (나눗셈)fmt.Println(b % a) // 0 (나머지)a++ // 증가b-- // 감소ㅇ 모든 연산자의 각 항의 타입은 항상 같아야한다.ㅇ 정수 타입과 실수 타입을 서로 더하거나 뺄 수 없다. ㅁ 비트 연산자비트 연산자는 정수의 비트를 직접 조작하는 데 사용a := 6 // 0110b := 5 // 0101#..
ㅁ 들어가며 회사에서 보안검수를 수행하는데, 본 프로그램에 대한 사항보다 nginx에 대한 점검사항이 많았다. Nginx의 보안 강화를 위한 기본적인 설정에 대해서 잘 모르고 있었다. 보안은 웹 서버를 안전하게 운영하기 위해 필수적이다. 이 글에서는 Nginx 보안을 강화하기 위한 주요 설정 사항들을 정리해 보았다. ㅁ 보안 체크리스트ㅇ Nginx 버전 정보 숨기기 (server_tokens off;)ㅇ 보안 헤더 추가 (X-Frame-Options, XSS Protection 등)ㅇ 불필요한 HTTP 메서드 차단 (limit_except GET POST)ㅇ 디렉토리 리스팅 비활성화 (autoindex off;)ㅇ 파일 업로드 크기 제한 (client_max_body_size 10M;)ㅇ 민감한 파일 접..
ㅁ 들어가며ㅇ Tucker의 GO 언어 프로그래밍 책을 보고 정리한 글입니다.ㅇ fmt를 이용하여 터미널 화면 출력하는 방법을 정리 ㅁ fmt 패키지 사용법golang의 fmt 패키지 사용법에 대해 서식문자, 최소 출력 너비 지정, 실수 소수점 이하 자릿수, 특수 문자로 나누어 정리 서식문자package mainimport "fmt"func main() { /* %d: 정수 %f: 실수 %s: 문자열 %t: 불리언 %v: 기본 형식 %T: 타입 */ name, age, pi := "Peterica", 42, 3.14159 fmt.Printf("이름: %s, 나이: %d, PI: %f\n", name, age, pi) fmt.Printf("age의 타입: %T\n", age)}##########..
ㅁ 관련 글ㅇ [Nginx] Nginx의 기본 이해와 주요 기능 ㅁ 들어가며 Nginx의 가상 호스팅 설정 방법에 대해 정리하였다. 가상 호스팅은 하나의 서버에서 여러 웹사이트를 운영할 수 있게 해준다. 이 글에서는 가상 호스팅의 개념부터 실제 설정 방법, 그리고 리버스 프록시 설정 방법을 정리하였다. ㅁ 가상 호스팅 개념 이해하기 가상 호스팅(Virtual Hosting)은 하나의 웹 서버에서 여러 개의 독립적인 웹사이트를 호스팅하는 방법이다. 각 웹사이트는 고유한 도메인 이름을 가지며, 서로 독립적으로 운영된다. ㅇ 주요 특징하나의 IP 주소로 여러 도메인 서비스 가능각 웹사이트마다 독립적인 설정 가능서버 리소스 효율적 사용ㅇ 가상 호스팅의 유형이름 기반 가상 호스팅: 도메인 이름으로 웹사이트 구..
ㅁ 들어가며나의 첫 파워미터를 장착하였다. 마진(Magene)에서 선보인 PES P505 파워미터는 뛰어난 성능과 가성비로 주목받는 제품이다. 이 파워미터는 라이더의 퍼포먼스를 극대화할 수 있도록 설계된 크랭크셋 기반 장치로, 정확한 데이터 측정과 내구성을 제공한다. 많은 라이더들이 "가격 대비 성능이 뛰어나다"며 만족감을 표현하고 있다. (ft. 진기님) ㅁ 정확한 데이터 측정ㅇ 파워미터 고민 중이라면 이거 한번 보고 결정하세요! 유튜브 동영상의 한 캡쳐인데, 정확한 파워를 측정하고 있다.ㅇ 전력 정확도 ±2%로, 최대 2500W까지 측정 가능하며, 케이던스 범위는 20~240rpm을 지원한다. ㅇ 스파이더 센싱 방식을 채택하여 안정적이고 신뢰도 높은 데이터를 제공한다. ㅁ 듀얼 프로토콜 지원ㅇ AN..
ㅁ 들어가며PR을 진행하는 과정 중 의견으로 Nginx 설정의 모듈화에 대해서 의견이 있었다. 이를 해결하는 과정에서 Nginx 서버 설정을 체계적으로 관리하고 유지보수성을 높이기 위해 외부 설정 파일을 분리 방법을 알게 되었다. 복잡한 설정을 모듈화하여 가독성과 재사용성을 향상 시킨다. ㅁ 왜 외부 파일로 분리해야 할까?유지보수 편의성: 특정 설정만 별도로 수정 가능재사용성: 여러 서버 블록에서 동일한 설정 재활용가독성: 메인 설정 파일(nginx.conf)이 간결해짐협업 효율성: 팀원들이 설정 내용을 쉽게 파악 가능실전 적용 방법 ㅁ 기본 구조 이해http { include /etc/nginx/conf.d/*.conf; # 외부 설정 파일 포함 include /etc/nginx/snip..
ㅁ 들어가며 Nginx를 블루그린 배포, 인증서 설치 등 일부 기능에 대해서만 사용하였다. 최근 Nginx 보안 검수와 캐싱기능을 이용한 서버 부하 감소 방법을 진행하면서 Nginx에 대해서 좀 더 자세히 배울 수 있었다. 부분적으로 알고 있던 지식을 정리하고자 한다. 이 글에서는 Nginx의 기본 이해와 주요 기능을 정리하였다. ㅁ Nginx란 무엇인가? Nginx는 고성능의 오픈 소스 웹 서버 소프트웨어로, 정적 콘텐츠 제공 및 리버스 프록시, 로드 밸런싱 등 다양한 역할을 수행한다. 2004년 이고르 시쇼브(Igor Sysoev)에 의해 개발되었으며, 비동기 이벤트 기반 아키텍처를 통해 높은 처리량과 낮은 리소스 사용을 자랑한다.Apache와 달리 스레드 기반이 아닌 비동기 방식으로 동작하여 대규..
ㅁ 들어가며[Nginx] NGINX에서 정적 파일 캐시 설정하는 방법을 알아보면서 HTTP 헤더의 확인이 필요하였다. ㅁ 헤더만 보기 (-I 옵션)$ curl -I http://example.comHTTP/1.1 200 OKContent-Type: text/htmlETag: "84238dfc8092e5d9c0dac8ef93371a07:1736799080.121134"Last-Modified: Mon, 13 Jan 2025 20:11:20 GMTCache-Control: max-age=1190Date: Sun, 09 Mar 2025 14:46:37 GMTConnection: keep-alive ㅁ 헤더와 본문 함께 보기 (-i 옵션)$ curl -i http://example.comHTTP/1.1 200 ..
