LATEST WRITING
최근 글
ALL WRITING
전체 글
분야
01
rati 디자인 가이드
개발과 CS 개념을 더 잘 이해하기 위한 화면의 색, 글, 코드, 도식과 움직임을 소개합니다.
02
엘레강트 오브젝트
나쁜 예시. 각 생성자가 필드를 직접 초기화.
03
D. Integration Testing Application Modules
Spring Modulith Docs - Integration Testing Application Modules
04
E. Working with Passage of Time Events
Spring Modulith Docs - Working with Passage of Time Events
05
F. Producing Documentation for Application Modules
Spring Modulith Docs - Producing Documentation for Application Modules
06
G. Production-ready Features
Spring Modulith Docs - Production-ready Features
07
1. 애플리케이션 모듈이란
애플리케이션 모듈의 구성요소는 다음과 같아요.
08
2-1. Simple Application Modules
애플리케이션의 메인 패키지는 메인 애플리케이션 클래스가 위치한 패키지에요.
09
2-2. Advanced Application Modules
애플리케이션 모듈 패키지가 하위 패키지들을 포함하고 있다면, 이를 Advanced Application Modules라고 해요.
10
2-3. Nested Application Modules
Spring Modulith 1.3 부터는 애플리케이션 모듈 내부에 또 다른 모듈을 넣을 수 있는 중첩 모듈(Nested Modules) 기능을 지원해요.
11
2-4. Open Application Modules
Spring Modulith의 모듈들은 기본적으로 닫힌(Closed) 상태에요. 즉, 우리가 노출하기로 결정한 API 패키지만 외부 모듈에 제공하고 나머지는 감추게 되죠.
12
2-5. Explicit Application Module Dependencies
기본적으로 Spring Modulith의 모듈들은 다른 모든 모듈이 노출한 제공 인터페이스(API)를 자유롭게 참조할 수 있어요.
13
3. Named Interfaces
기본적으로 Spring Modulith에서는 애플리케이션 모듈의 베이스 패키지(예: example.order)만 외부 모듈에 노출되는 Provided Interface 역할을 해요.
14
4. Customizing the Application Modules Arrangement
Spring Modulith는 2. 애플리케이션 모듈의 구성 의 하위 페이지에서 본 것처럼 메인 애플리케이션 클래스가 위치한 베이스 패키지를 기준으로 하위 패키지들을 모듈로 자동 감지해요.
15
B. Verifying Application Module Structure
1. 애플리케이션 모듈이란에서 이야기한 것처럼, ApplicationModules의 verify() 메서드를 이용해 애플리케이션 모듈 구조의 제약 조건을 검증할 수 있어요.
16
C. Working with Application Events
Spring Modulith Docs - Working with Application Events
17
ApplicationEvent
스프링 Docs - Standard and Custom Events
18
ApplicationEvents 테스트
스프링 Docs - Application Events (TestContext)
19
@DomainEvents
스프링 Docs - Publishing Events from Aggregate Roots
20
@EventListener
스프링 Docs - Annotation-based Event Listeners
21
Spring 이벤트
Spring ApplicationContext의 이벤트 발행/구독부터 Spring Data의 도메인 이벤트, 테스트에서의 이벤트 검증까지 정리한 노트 묶음이에요.
22
@TransactionalEventListener
스프링 Docs - Transaction-bound Events
23
2. 애플리케이션 모듈의 구성
2-1. Simple Application Modules
24
@EntityGraph
스프링 Docs - EntityGraph
25
@JdbcTest
참고 : @JdbcTest Spring Docs
26
@Modifying
스프링 Docs - Modifying
27
@ReflectionTestUtils
스프링 Docs - ReflectionTestUtils
28
@WebMvcTest
테스트할 특정 컨트롤러를 지정합니다.
29
@EnableConfigurationProperties
@EnableConfigurationProperties는 @ConfigurationProperties가 붙은 클래스를 스프링 빈으로 등록하고 활성화할 때 사용하는 애노테이션이에요.
30
@EnableMethodSecurity
@EnableMethodSecurity는 스프링 시큐리티에서 메서드 단위의 인가(Authorization) 기능을 활성화할 때 사용하는 애노테이션이에요. 기존의 @EnableGlobalMethodSecurity를 대체하며, 더 유연한 보안 설정을 지원해요.
31
SpringSecurity
@EnableMethodSecurity : 메서드 단위 인가 설정
32
분산 환경 로그 추적 - Loki & OpenTelemetry
MDC 에서 만든 로그 시스템에서는 다음과 같은 문제가 존재한다.
33
MDC로 시작하는 로깅 맥락 추적
비즈니스 로직을 오염시키지 않으면서 요청 단위 추적 ID를 로그에 새기는 방법 — 파라미터 전달의 고통에서 출발해 ThreadLocal/MDC, TaskDecorator를 거쳐 중앙 집중형 관측까지의 진화 과정.
34
Slf4J + Logback
Logging, 좋은 로깅이란 무엇인가에서 만든 기능들을 직접 구현하는 대신, 검증된 라이브러리를 사용하자.
35
Logging, 좋은 로깅이란 무엇인가
다음 글 : Slf4J + Logback
36
@Autowired
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html
37
RAW
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
38
1. Core
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
39
Annotation
코틀린과 자바를 함께 사용할 때(Spring 환경 등) 필수적인 애노테이션들입니다.
40
봉인된 클래스
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
41
예외
Java 와의 가장 큰 차이점 : checked exception 이 존재하지 않음.
42
Class
주 생성자는 코드를 가질 수 없으므로, 인스턴스 생성 시점에 실행될 로직은 init 블록에 작성
43
For문
자바에서 Entry 객체를 일일이 다루던 복잡성 -> 구조 분해 할당으로 해결
44
Null 관리
Not Null Assertion 대신 라이브러리 함수를 사용하면 더욱 안전하게 null 처리 가능.
45
객체(object)
클래스 내부에서 해당 클래스와 연결된 정적(static) 멤버를 정의할 때 사용
46
상속
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
47
함수
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
48
1. MySQL 엔진 아키텍처
MYSQL 서버 는 스레드 기반으로 작동.(not Process)
49
1a. 왜 MySQL은 스레드 구조인가
MySQL과 PostgreSQL은 모두 유명한 오픈소스 데이터베이스입니다.
50
2. InnoDB 스토리지 엔진 아키텍처
라티, DB 공부의 꽃이자 면접 단골 질문인 트랜잭션 격리 수준(Isolation Level)이군요. 인프라 삽질하느라 고생했는데, 이런 이론을 잘 다져두면 나중에 데이터가 꼬이는 대참사를 막을 수 있습니다.
51
`fork()` 와 `exec()`
만약 프로세스가 1GB의 메모리를 사용하고 있다면?
52
Computer Science
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
53
MySQL
도서 [Real MySQL 8.0] 을 읽으면서 공부한 내용입니다.
54
3. MyISAM 스트로지 엔진 아키텍처
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
55
4. MYSQL 로그 파일
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
56
아키텍처
1. MySQL 엔진 -> SQL 분석 및 최적화 등.
57
OperatingSystem
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
58
Concurrency
This page contains a conceptual overview of how concurrent programming works in Dart. It explains the event-loop, async language features, and isolates from a high-level.
59
임시-Concurrency
https://dart.dev/language/concurrency
60
@Async
https://www.baeldung.com/cs/async-vs-multi-threading
61
Asynchronous Programming in Java
개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.
62
비동기와 멀티 쓰레딩 차이
1. 네트워크를 통해 두 개 파일 fetch 후 결합하는 프로그램
63
GC의 한계
Gabage Colletor : JVM 환경에서 사용하지 않는 객체에 대한 메모리 할당을 해제하는 청소부.
64
Cache가 최고의 방법일까
이렇게 순서를 정의했었다. 그리고 해당 문서의 전반적인 내용을 살펴보면, 다음과 같은 주장임을 알 수 있다.
65
프로그래밍에서의 비쌈, 무거움
우리가 사용하는 컴퓨터의 자원은 유한합니다.
66
1. Object Registration - Basic
다음 글 : 2. Object Registration - Deeping
67
2. Object Registration - Deeping
getIt 은 다양한 방법으로 동일한 타입의 다른 인스턴스를 등록하는 것을 지원함.
68
3. Scopes - 기초
이전 글 : 2. Object Registration - Deeping
69
4. Scopes - 심화
이전 글 : 3. Scopes - 기초
70
5. 비동기 객체 - 기초
이전 글 : 4. Scopes - 심화
71
GetIt
2. GetIt Conatiner 에 저장
일치하는 글이 없습니다. 다른 제목이나 태그로 찾아보세요.