본문 바로가기

전체 글

[Docker] 스프링부트 프로젝트 도커 이미지(image) 만들고 실행하기 1) 빌드 인텔리제이 오른쪽 코끼리(gradle) 아이콘 클릭 -> 프로젝트명-Tasks-build-bootJar 클릭하면 빌드 됨! 빌드 할 때 에러 발생한 내용 ▼ 더보기 명령어로 빌드 했는데 아래와 같이 에러 빌드가 안됨(마우스 클릭클릭 빌드는 되는데 왜 명령어 빌드는 안되징....) ./gradlew clean build > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed m.. 더보기
도커(docker) VS VM(Virtual Machine) 비교 1. 공통점 각각의 애플리케이션을 원하는 환경에서 실행하는 기술 2. 차이점 1) 가상화 기술(VMware, virtualBox ) 하이퍼바이저를 사용해서 여러개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식 시스템 자원을 가상화하고, 공간을 생성하는 작업은하이퍼 바이저를 거치기 때문에 성능 손실이 발생함 OS까지 포함해야하므로 크기(용량)이 커짐 완벽한 OS를 생성할 수 있다는 장점이 있음 하이퍼바이저(Hypervisor)? 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼 하드웨어에서 운영체제와 리소를 분리해 VM에 할당하여 가상머신을 생성하고 구동 2) 도커(Docker) 도커는 리눅스의 자체 기능인 chroot, namespace, cgroup 기술을 사용해서 프로세스 단위의 .. 더보기
[Docker] 맥북 m2 홈브루(homebrew)로 도커 설치 홈브루(Homebrew)는 macOS 운영 체제에서 패키지 관리를 쉽게 할 수 있도록 도와주는 오픈 소스 패키지 관리자 Homebrew를 사용하면 터미널을 통해 손쉽게 다양한 소프트웨어를 설치, 업데이트, 삭제할 수 있음 Homebrew Cask는 Homebrew의 확장으로서, 이를 사용하여 macOS용 응용 프로그램을 관리할 수 있음 Homebrew Cask를 사용하면 명령 줄을 통해 간편하게 다양한 애플리케이션을 설치하고 관리할 수 있음 특히, 일반적인 GUI(그래픽 사용자 인터페이스) 애플리케이션들을 설치할 때 편리하게 사용됨 1. homebrew cask를 이용하기 위해 cask 설치 brew install cask 2) cask를 이용해서 docker 설치 brew install --cask d.. 더보기
[Spring boot] MDC(Mapped Diagnostic Context) 적용 1. MDC 사용 이유 1) 스레드 별 로깅 컨텍스트 다중 스레드 환경에서 각 스레드는 독립적으로 실행되며 서로 다른 작업을 수행함 MDC를 사용하면 각 스레드에게 고유한 로깅 컨텍스트를 제공하여 스레드 간 로그를 구분할 수 있음 2) 트랜잭션 추적 웹 애플리케이션 환경에서는 하나의 요청이 여러 스레드를 통과할 수 있음 MDC를 사용하면 요청을 추적하고 해당 요청과 관련된 로그를 모아서 볼 수 있으므로 트랜잭션 춪거 및 디버깅에 유용 3) 디버깅 및 로깅 수준 설정 디버깅 시 특정 스레드나 작업에 대한 로그를 쉽게 필터링 할 수 있음 특정 작업에 대한 로그를 필요한 경우에만 출력하도록 로깅 수준을 동적으로 설정할 수 있음 4) 추가 정보 제공 로그에 정보를 쉽게 추가할 수 있음 예를 들어 요청 ID, 세.. 더보기
[Springboot] MDC(Mapped Diagnostic Context) 개념 1. MDC(Mapped Diagnostic Context) 로깅 코드에서 특정 데이터를 쉽게 사용할 수 있도록 하는 메커니즘 한 스레드에서 실행되는 작업 간에 로깅 코드를 통해 데이터를 전파할 수 있음 스프링부트에서 MDC는 주로 로깅 프레임워크에서 제공하는 기능을 활용하며 주로 SLF4J와 함께 사용됨 MDC를 사용하면 로그 메시지에 특정 컨텍스트 정보를 쉽게 추가할 수 있음 2. MDC 저장소 MDC가 실제로 사용하는 저장소, 로깅 컨텍스트 정보를 스레드 로컬 기반의 Map으로 관리 로깅 프레임워크(주로 SLF4J)에서 제공하는 자바 ThreadLocal 클래스를 사용 각 스레드는 자체적인 MDC 저장소를 가지고 있으며, 이 저장소에는 특정 작업이나 트랜잭션과 관련된 추가적인 컨텍스트 정보를 저장할.. 더보기
[Springboot] 그라파나(grafana) 공유 대시보드 활용 아래 사이트에서 공유된 대시보드들을 볼 수 있음 https://grafana.com/grafana/dashboards/ Dashboards | Grafana Labs Thank you! Your message has been received! grafana.com 원하는 대시보드를 찾았으면 클릭하고 ID를 복사 그라파나 접속(localhost:3000) - 대시보드 - New - import 복사한 아이디 입력 데이터소스 프로메테우스 선택하고 Import 아래와 같이 대시 보드를 확인할 수 있음 위 대시보드를 커스텀해서 사용하면됨 더보기
[Springboot] 그라파나(grafana) 대시보드 만들기 왼쪽 상단에 메뉴 - Dashboard 클릭 Create Dashboard 클릭 오른쪽 상단에 Save dashboard 아이콘 클릭 대시보드 이름 정해주고 저장하기 Add visualization 클릭 데이터 소스 prometheus 클릭 Code로 변경 [Enter a PromQL query ...] 입력 창에 확인하고 싶은 쿼리 작성 실습에서는 system_cpu_usage 작성 왼쪽 하단에 Add query를 클릭하여 확인하고 싶은 데이터를 추가할 수 있음 실습에서는 process_cpu_usage 작성 범례명 변경 options 클릭 - Legend 를 coustom으로 선택하고 원하는 범례명 작성 대시보드 타이틀 변경 오른쪽 Panel options -title 작성 작성 후 오른쪽 상단 Ap.. 더보기
[Springboot] 그라파나(grafana)-프로메테우스 연동 그라파나는 프로메테우스를 통해서 데이터를 조회하고 보여주는 역할을 함 프로메테우스를 데이터 소스로 사용해서 데이터 읽어옴 1. 데이터 소스 추가 1) 그라파나 접속 후 admin으로 로그인 http://localhost:3000 2) 메인 화면에 Data Sources 클릭 3) Data sourcess - Prometheus 클릭 3) url 입력 Connection탭 - Prometheus server URL 입력 - Save & test 클릭 4) Save & test 클릭하면 연결 성공 메시지를 확인할 수 있음 더보기