slf4j을 활용한 로깅시 놓치기 쉬운 실수 한가지 그리고 Logback 내부 동작 과정 해당 포스트에선 java 8, logback 1.3, slf4j 2.0를 바탕으로 코드 제공 및 설명한다. 요약: slf4j의 로깅 메서드 호출 시 formatted string이 필요하다면 무조건 {} 쓰자. 개발을 하다 보면 디버깅 및 에러감지를 위해 필수적으로 코드 사이사이에 로그를 쌓게 된다. 자바에서는 로깅 기능을 위해 활용되는 프레임워크가 크게 logback, log4j, log4j2 정도가 있다. 보통 애플리케이션 단에서는 이 프레임워크들을 직접 사용하진 않고(굳이 사용하고 싶다면 뭐..), 이들을 추상화시켜 뒷단에 두며 구현체를 선택할 수 있는 퍼사드를 제공하는 프레임워크를 사용한다. 퍼사드의 종류엔 ..
스프링을 사용하다보면 @Transactional과 함께 자주 사용하는 애노테이션중에 하나가 바로 @Async 일 것이다. 스프링은 애플리케이션에서 메소드의 비동기 수행이 필요한 경우, @Async 애노테이션을 통해 애플리케이션 코어 로직을 수정하지 않고도 AOP를 통해 메소드를 비동기 처리로 전환할 수 있다. 오늘은 이 스프링 비동기 실행 및 이를 위해 필요한 스레드풀 관련해서 포스팅하려 한다. 아래 Spring 코드는 5.x 기반 주의. 스프링 프레임워크 코드 및 이미지가 많아 스크롤 압박은 있을 수 있으나 내용은 실제로 그렇게 길지 않습니다. Spring Async 설정 및 메소드 비동기 수행 스프링은 일련의 작업을 수행하는 메소드를 간단하게 비동기로 처리할 수 있게끔 프레임워크단에서 AOP로 비동기..
자바(버전 8 기준) 오브젝트 생성 과정 톺아보기 (+ JVM Runtime Data Area 영역) Intro 이번에 java 및 JVM의 Runtime Data Area 영역에 대해 공부를 하였는데, 자바에서 오브젝트가 생성 시 어떤 과정을 거치며 jvm 메모리 영역에 올라가는지에 대해 조금 더 자세히 알게되어 정리하고자 합니다. (사실 지금부터 제가하는 말은 거짓말입니다.; 가려서 들어주시고, 틀린점은 바로잡아주시면 업데이트해놓도록 하겠습니다.) 아래와 같은 Product 모델 클래스가 있다고 가정을 하고, 이 클래스의 오브젝트를 생성해보도록 한다. public class Product { public static final int PAYMENT_WINDOW_TITLE_MAX_BYTE = 4000;..
- Total
- Today
- Yesterday
- log level
- logback
- object
- async
- webserver
- runtime data areas
- logging
- java
- NGINX
- Apache
- JVM
- linux
- slf4j
- TaskExecutor
- lood
- logging facade
- Spring
- log
- good practice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |