목록전체 글 (184)
솔솔
🍀 배경개발 환경에서는 객체 상태나 처리 결과를 확인하기 위해 DEBUG 로그를 자주 사용한다.log.debug("{}", getMessage());운영 환경에서는 일반적으로 로그 레벨을 INFO 이상으로 설정하기 때문에 DEBUG 로그는 출력되지 않는다.그렇다면 DEBUG 로그가 비활성화되어 있을 때 getMessage()도 실행되지 않을까? 결론부터 말하면 DEBUG 로그가 출력되지 않더라도 getMessage()는 실행된다. 🍀 문제다음과 같은 코드가 있다고 가정해 보자.log.debug("{}", getMessage());현재 로그 레벨이 INFO로 설정되어 있다면 DEBUG 로그는 출력되지 않는다.logging: level: root: INFO하지만 여기서 확인해야 할 부분이 있다...
내가 맡은 백엔드 서비스에 이메일 발송 기능을 신규로 추가하게 되었음. 예약 확인 메일, 취소 안내 메일 등 실제 고객에게 발송되는 HTML 이메일을 직접 만들어야 했음.디자인은 디자이너에게 전달받았지만, 퍼블리싱은 직접 해야 하는 상황이었음. 처음에는 일반적인 웹 페이지를 만들듯 HTML과 CSS를 작성했음.하지만 실제 메일을 발송해보니 예상하지 못했던 문제들이 발생함.Chrome에서는 정상적으로 출력됨.Gmail에서는 일부 스타일이 사라짐.네이버 메일에서는 레이아웃이 깨짐.Outlook에서는 전혀 다른 형태로 출력됨.같은 HTML인데 메일 클라이언트마다 결과가 모두 달랐음. 이메일 HTML은 웹과 완전히 달랐음 웹 개발에서는 브라우저만 신경 쓰면 되는 경우가 대부분이었음.하지만 이메일은 전혀 다른 세..
🍀 WSL(Windows Subsystem for Linux)이란?WSL(Windows Subsystem for Linux)은 Windows에서 별도의 가상머신(VM) 없이 Linux를 실행할 수 있도록 제공하는 기능예전에는 Windows에서 Linux를 사용하려면 다음과 같은 방법을 사용했음.VMwareVirtualBoxHyper-V하지만 이러한 방식은 별도의 운영체제를 설치해야 하므로 CPU, 메모리, 디스크를 많이 사용하고 부팅 시간도 오래 걸림.WSL은 이러한 문제를 해결하기 위해 Microsoft에서 만든 기능으로, Windows 안에서 Linux를 거의 네이티브 수준으로 실행할 수 있음.🍀 WSL은 어떻게 가능한가?"Windows인데 어떻게 Linux가 실행되지?"라는 의문을 가지게됨. ..
🤔 문제IntelliJ에서 Claude CLI를 사용할 때 Esc 키를 눌렀는데Claude Code가 아니라 에디터로 포커스가 이동하는 문제 발생 Claude CLI에서 Esc 키는 자주 사용하는 핵심 제어 키인데IDE가 이 키를 먼저 가로채면서 Claude가 제대로 동작하지 않음 🛠 해결 방법 Settings → Tools → Terminal ✅ Move focus to the editor with Escape 체크 해제
# 현재 대화 컨텍스트 초기화(이전 대화 내용 전부 삭제, 완전히 새로 시작할 때 사용)/clear# 대화를 요약해서 컨텍스트 절약(토큰 절약 (속도 + 비용), 긴 대화에서 필수)/compact/compact 핵심만 정리# 이전 세션 선택해서 이어서 작업 (여러 작업을 병렬로 할 때 유용)/resume ⚠️ 실수했을 때 복구 방법1. 프롬프트 날려버렸을 때 (claude cli 켜져있는 상태)1. ESC 누르기2. /terminal-setup3. ↑ (위 방향키) 누르기4. 이전에 입력했던 프롬프트 복구 2. 터미널 창을 꺼버렸을 때 (claude cli 꺼져있는 상태)1. claude --continue2. 마지막 작업 세션 그대로 이어서 진행 가능
🍀 Filebeat 다운로드* 필자의 경우 Filebeat를 올릴 서버가 보안문제로 다운로드가 되지않아 로컬 컴퓨터에서 다운받아서 Filebeat로 올릴 서버로 옮김curl -fLO https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.1.4-linux-x86_64.tar.gzcurl -fLO https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.1.4-linux-x86_64.tar.gz.sha512sha512sum -c filebeat-9.1.4-linux-x86_64.tar.gz.sha512 # OK 나오면 정상🍀 Kibana UI에서 API Key 발급1.[Stack..
🍀 K6이란?부하 테스트(Load Testing) & 성능 테스트(Performance Testing) 도구(원래는 LoadImpact라는 회사가 개발했고 지금은 Grafana Labs에서 유지보수 중이라고 한다.) 🍀 K6 설치$ brew install k6 🍀 K6 설치 확인 $ k6 🍀 시스템 구성도 및 API에 부하를 주기 위해 K6 스크립트 작성✅ 시스템 구성도✅ 스크립트작성import http from 'k6/http';import { sleep } from 'k6';export default function () { http.get('http://localhost:8080/boards');} 🍀 DB 직접 조회와 DB + Redis 캐시 조회 환경 성능 비교조회를 ..
🍀 데이터(Key, Value) 저장하기# set [key 이름] [value]$ set solri:name "solri noh" # 띄워쓰기 해서 저장하려면 쌍따옴표로 묶어주면 됨$ set solri:hobby soccer 🍀 데이터 조회하기 (Key로 Value 값 조회하기)# get [key 이름]$ get solri:name$ get solri:hobby# 없는 데이터를 조회할 경우 (nil)이라고 출력됨 🍀 저장된 모든 key 조회하기$ keys * 🍀 데이터 삭제하기 (Key로 데이터 삭제하기)# del [key 이름]$ del solri:hobby$ get solri:hobby # 삭제됐는 지 확인 🍀 데이터 저장 시 만료시간(TTL) 정하기레디스는 RDBMS와는 다르게 데이터 ..