LATEST WRITING

최근 글

ALL WRITING

전체 글

73개의 글
분야
태그
01
Computer Science·

Step0 : DNS Resolution

`google.com` 은 어떻게 `142.251.118.102` 로 변경될까?

#Computer Science#Network#DNS#TCP/IP
02
Computer Science·

한 요청은 어떤 과정을 거칠까?

HTTP 요청 하나가 클라이언트부터 서버까지 도달하는 과정과 도착해서 처리 후 응답이 돌아오기까지 과정을 정리해보았습니다.

#Computer Science#Network#HTTP
03
개발 일반·

엘레강트 오브젝트

나쁜 예시. 각 생성자가 필드를 직접 초기화.

#개발 일반#객체 지향
04
Spring·

D. Integration Testing Application Modules

Spring Modulith Docs - Integration Testing Application Modules

#Spring#Spring-Modulith
05
Spring·

E. Working with Passage of Time Events

Spring Modulith Docs - Working with Passage of Time Events

#Spring#Spring-Modulith
06
Spring·

F. Producing Documentation for Application Modules

Spring Modulith Docs - Producing Documentation for Application Modules

#Spring#Spring-Modulith
07
Spring·

G. Production-ready Features

Spring Modulith Docs - Production-ready Features

#Spring#Spring-Modulith
08
Spring·

1. 애플리케이션 모듈이란

애플리케이션 모듈의 구성요소는 다음과 같아요.

#Spring#Spring-Modulith#A. Fundamentals
09
Spring·

2-1. Simple Application Modules

애플리케이션의 메인 패키지는 메인 애플리케이션 클래스가 위치한 패키지에요.

#Spring#Spring-Modulith#A. Fundamentals
10
Spring·

2-2. Advanced Application Modules

애플리케이션 모듈 패키지가 하위 패키지들을 포함하고 있다면, 이를 Advanced Application Modules라고 해요.

#Spring#Spring-Modulith#A. Fundamentals
11
Spring·

2-3. Nested Application Modules

Spring Modulith 1.3 부터는 애플리케이션 모듈 내부에 또 다른 모듈을 넣을 수 있는 중첩 모듈(Nested Modules) 기능을 지원해요.

#Spring#Spring-Modulith#A. Fundamentals
12
Spring·

2-4. Open Application Modules

Spring Modulith의 모듈들은 기본적으로 닫힌(Closed) 상태에요. 즉, 우리가 노출하기로 결정한 API 패키지만 외부 모듈에 제공하고 나머지는 감추게 되죠.

#Spring#Spring-Modulith#A. Fundamentals
13
Spring·

2-5. Explicit Application Module Dependencies

기본적으로 Spring Modulith의 모듈들은 다른 모든 모듈이 노출한 제공 인터페이스(API)를 자유롭게 참조할 수 있어요.

#Spring#Spring-Modulith#A. Fundamentals
14
Spring·

3. Named Interfaces

기본적으로 Spring Modulith에서는 애플리케이션 모듈의 베이스 패키지(예: example.order)만 외부 모듈에 노출되는 Provided Interface 역할을 해요.

#Spring#Spring-Modulith#A. Fundamentals
15
Spring·

4. Customizing the Application Modules Arrangement

Spring Modulith는 2. 애플리케이션 모듈의 구성 의 하위 페이지에서 본 것처럼 메인 애플리케이션 클래스가 위치한 베이스 패키지를 기준으로 하위 패키지들을 모듈로 자동 감지해요.

#Spring#Spring-Modulith#A. Fundamentals
16
Spring·

B. Verifying Application Module Structure

1. 애플리케이션 모듈이란에서 이야기한 것처럼, ApplicationModules의 verify() 메서드를 이용해 애플리케이션 모듈 구조의 제약 조건을 검증할 수 있어요.

#Spring#Spring-Modulith
17
Spring·

C. Working with Application Events

Spring Modulith Docs - Working with Application Events

#Spring#Spring-Modulith
18
Spring·

ApplicationEvent

스프링 Docs - Standard and Custom Events

#Spring#Spring 이벤트
19
Spring·

ApplicationEvents 테스트

스프링 Docs - Application Events (TestContext)

#Spring#Spring 이벤트
20
Spring·

@DomainEvents

스프링 Docs - Publishing Events from Aggregate Roots

#Spring#Spring 이벤트
21
Spring·

@EventListener

스프링 Docs - Annotation-based Event Listeners

#Spring#Spring 이벤트
22
Spring·

Spring 이벤트

Spring ApplicationContext의 이벤트 발행/구독부터 Spring Data의 도메인 이벤트, 테스트에서의 이벤트 검증까지 정리한 노트 묶음이에요.

#spring#event#Spring#Spring 이벤트
23
Spring·

@TransactionalEventListener

스프링 Docs - Transaction-bound Events

#Spring#Spring 이벤트
24
Spring·

2. 애플리케이션 모듈의 구성

2-1. Simple Application Modules

#Spring#Spring-Modulith#A. Fundamentals
25
Spring·

@EntityGraph

스프링 Docs - EntityGraph

#Spring#DB 접근 기술
26
Spring·

@JdbcTest

참고 : @JdbcTest Spring Docs

#Spring#DB 접근 기술
27
Spring·

@Modifying

스프링 Docs - Modifying

#Spring#DB 접근 기술
28
Spring·

@ReflectionTestUtils

스프링 Docs - ReflectionTestUtils

#Spring#SpringMVC#Test
29
Spring·

@WebMvcTest

테스트할 특정 컨트롤러를 지정합니다.

#Spring#SpringMVC#Test
30
Spring·

@EnableConfigurationProperties

@EnableConfigurationProperties는 @ConfigurationProperties가 붙은 클래스를 스프링 빈으로 등록하고 활성화할 때 사용하는 애노테이션이에요.

#Spring#SpringSecurity
31
Spring·

@EnableMethodSecurity

@EnableMethodSecurity는 스프링 시큐리티에서 메서드 단위의 인가(Authorization) 기능을 활성화할 때 사용하는 애노테이션이에요. 기존의 @EnableGlobalMethodSecurity를 대체하며, 더 유연한 보안 설정을 지원해요.

#Spring#SpringSecurity
32
Spring·

SpringSecurity

@EnableMethodSecurity : 메서드 단위 인가 설정

#Spring#SpringSecurity
33
Observability·

분산 환경 로그 추적 - Loki & OpenTelemetry

MDC 에서 만든 로그 시스템에서는 다음과 같은 문제가 존재한다.

#Observability#log#Spring#Loki#Alloy
34
Observability·

MDC로 시작하는 로깅 맥락 추적

비즈니스 로직을 오염시키지 않으면서 요청 단위 추적 ID를 로그에 새기는 방법 — 파라미터 전달의 고통에서 출발해 ThreadLocal/MDC, TaskDecorator를 거쳐 중앙 집중형 관측까지의 진화 과정.

#spring#logging#observability#mdc
35
Observability·

Slf4J + Logback

Logging, 좋은 로깅이란 무엇인가에서 만든 기능들을 직접 구현하는 대신, 검증된 라이브러리를 사용하자.

#Observability#log
36
Observability·

Logging, 좋은 로깅이란 무엇인가

다음 글 : Slf4J + Logback

#Observability#log
37
Spring·

@Autowired

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html

#Spring#SpringMVC#Annotation
38
Spring·

RAW

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Spring#SpringMVC#Annotation
39
프로그래밍 언어·

1. Core

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#프로그래밍 언어#Kotlin#1. Core
40
프로그래밍 언어·

Annotation

코틀린과 자바를 함께 사용할 때(Spring 환경 등) 필수적인 애노테이션들입니다.

#프로그래밍 언어#Kotlin#1. Core
41
프로그래밍 언어·

봉인된 클래스

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#프로그래밍 언어#Kotlin#1. Core
42
프로그래밍 언어·

예외

Java 와의 가장 큰 차이점 : checked exception 이 존재하지 않음.

#프로그래밍 언어#Kotlin#1. Core
43
프로그래밍 언어·

Class

주 생성자는 코드를 가질 수 없으므로, 인스턴스 생성 시점에 실행될 로직은 init 블록에 작성

#프로그래밍 언어#Kotlin#1. Core
44
프로그래밍 언어·

For문

자바에서 Entry 객체를 일일이 다루던 복잡성 -> 구조 분해 할당으로 해결

#프로그래밍 언어#Kotlin#1. Core
45
프로그래밍 언어·

Null 관리

Not Null Assertion 대신 라이브러리 함수를 사용하면 더욱 안전하게 null 처리 가능.

#프로그래밍 언어#Kotlin#1. Core
46
프로그래밍 언어·

객체(object)

클래스 내부에서 해당 클래스와 연결된 정적(static) 멤버를 정의할 때 사용

#프로그래밍 언어#Kotlin#1. Core
47
프로그래밍 언어·

상속

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#프로그래밍 언어#Kotlin#1. Core
48
프로그래밍 언어·

함수

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#프로그래밍 언어#Kotlin#1. Core
49
Computer Science·

1. MySQL 엔진 아키텍처

MYSQL 서버 는 스레드 기반으로 작동.(not Process)

#Computer Science#Database#MySQL#아키텍처
50
Computer Science·

1a. 왜 MySQL은 스레드 구조인가

MySQL과 PostgreSQL은 모두 유명한 오픈소스 데이터베이스입니다.

#Computer Science#Database#MySQL#아키텍처
51
Computer Science·

2. InnoDB 스토리지 엔진 아키텍처

라티, DB 공부의 꽃이자 면접 단골 질문인 트랜잭션 격리 수준(Isolation Level)이군요. 인프라 삽질하느라 고생했는데, 이런 이론을 잘 다져두면 나중에 데이터가 꼬이는 대참사를 막을 수 있습니다.

#Computer Science#Database#MySQL#아키텍처
52
Computer Science·

`fork()` 와 `exec()`

만약 프로세스가 1GB의 메모리를 사용하고 있다면?

#Computer Science#OperatingSystem
53
Computer Science·

Computer Science

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Computer Science
54
Computer Science·

MySQL

도서 [Real MySQL 8.0] 을 읽으면서 공부한 내용입니다.

#Computer Science#Database#MySQL
55
Computer Science·

3. MyISAM 스트로지 엔진 아키텍처

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Computer Science#Database#MySQL#아키텍처
56
Computer Science·

4. MYSQL 로그 파일

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Computer Science#Database#MySQL#아키텍처
57
Computer Science·

아키텍처

1. MySQL 엔진 -> SQL 분석 및 최적화 등.

#Computer Science#Database#MySQL#아키텍처
58
Computer Science·

OperatingSystem

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Computer Science#OperatingSystem
59
Flutter·

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.

#Flutter#Dart#Concurrency
60
Flutter·

임시-Concurrency

https://dart.dev/language/concurrency

#Flutter#Dart#Concurrency
61
Spring·

@Async

https://www.baeldung.com/cs/async-vs-multi-threading

#Spring#Java 비동기 프로그래밍
62
Spring·

Asynchronous Programming in Java

개발과 컴퓨터 과학의 개념을 정리한 학습 기록입니다.

#Spring#Java 비동기 프로그래밍
63
Spring·

비동기와 멀티 쓰레딩 차이

1. 네트워크를 통해 두 개 파일 fetch 후 결합하는 프로그램

#Spring#Java 비동기 프로그래밍
64
Spring·

GC의 한계

Gabage Colletor : JVM 환경에서 사용하지 않는 객체에 대한 메모리 할당을 해제하는 청소부.

#Spring#Java
65
개발 일반·

Cache가 최고의 방법일까

이렇게 순서를 정의했었다. 그리고 해당 문서의 전반적인 내용을 살펴보면, 다음과 같은 주장임을 알 수 있다.

#개발 일반
66
개발 일반·

프로그래밍에서의 비쌈, 무거움

우리가 사용하는 컴퓨터의 자원은 유한합니다.

#개발 일반
67
Flutter·

1. Object Registration - Basic

다음 글 : 2. Object Registration - Deeping

#Flutter#GetIt
68
Flutter·

2. Object Registration - Deeping

getIt 은 다양한 방법으로 동일한 타입의 다른 인스턴스를 등록하는 것을 지원함.

#Flutter#GetIt
69
Flutter·

3. Scopes - 기초

이전 글 : 2. Object Registration - Deeping

#Flutter#GetIt
70
Flutter·

4. Scopes - 심화

이전 글 : 3. Scopes - 기초

#Flutter#GetIt
71
Flutter·

5. 비동기 객체 - 기초

이전 글 : 4. Scopes - 심화

#Flutter#GetIt
72
Flutter·

GetIt

2. GetIt Conatiner 에 저장

#Flutter#GetIt
73
사이트 이야기·

rati 디자인 가이드

개발과 CS 개념을 더 잘 이해하기 위한 화면의 색, 글, 코드, 도식과 움직임을 소개합니다.