Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/user-service/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ COPY build/libs/*.jar app.jar

EXPOSE 8080

CMD ["java", "-jar", "app.jar"]
CMD ["java", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.gltkorea.icebang.config;

import java.time.Duration;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

@Configuration
public class WebConfig {

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// 1. SimpleClientHttpRequestFactory 객체를 직접 생성
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();

// 2. 타임아웃 설정 (이 메서드들은 deprecated 아님)
requestFactory.setConnectTimeout(Duration.ofSeconds(5));
requestFactory.setReadTimeout(Duration.ofSeconds(5));

// 3. 빌더에 직접 생성한 requestFactory를 설정
return builder.requestFactory(() -> requestFactory).build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.gltkorea.icebang.filter;

import java.io.IOException;
import java.util.UUID;

import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;

import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@Component
public class LoggingFilter extends OncePerRequestFilter {

public static final String TRACE_ID_HEADER = "X-Request-ID";

@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {

// 다른 시스템에서 이미 전달한 Trace ID가 있는지 확인
String traceId = request.getHeader(TRACE_ID_HEADER);

// 없다면 새로 생성 (요청의 시작점)
if (traceId == null || traceId.isEmpty()) {
traceId = UUID.randomUUID().toString();
}

MDC.put("traceId", traceId.substring(0, 8));

// ⭐️ 요청 객체에 attribute로 traceId를 저장하여 컨트롤러 등에서 사용할 수 있게 함
request.setAttribute("X-Request-ID", traceId);

// 응답 헤더에 traceId를 넣어주면 클라이언트가 추적하기 용이
response.setHeader(TRACE_ID_HEADER, traceId);

filterChain.doFilter(request, response);
}
}
4 changes: 2 additions & 2 deletions apps/user-service/src/main/resources/log4j2-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ Configuration:
value: "UTF-8"
# 통일된 콘솔 패턴 - 모든 로그에 RequestId 포함
- name: "console-layout-pattern"
value: "%highlight{[%-5level]} [%X{id}] %d{MM-dd HH:mm:ss} [%t] %n %msg%n%n"
value: "%highlight{[%-5level]} [%X{traceId}] %d{MM-dd HH:mm:ss} [%t] %n %msg%n%n"
# 파일용 상세 패턴 - RequestId 포함
- name: "file-layout-pattern"
value: "[%X{id}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
value: "[%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
# 로그 파일 경로들
- name: "info-log"
value: ${log-path}/user-service/info.log
Expand Down
3 changes: 2 additions & 1 deletion apps/user-service/src/test/resources/sql/create-schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ CREATE TABLE "USER" (
PRIMARY KEY ("user_id")
);


CREATE TABLE "GROUP_INFO" (
"group_info_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"name" VARCHAR(255) NULL,
Expand Down Expand Up @@ -95,4 +96,4 @@ CREATE TABLE "ROLE_PERMISSION" (
FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id"),
FOREIGN KEY ("permission_id") REFERENCES "PERMISSION" ("permission_id"),
UNIQUE ("role_id", "permission_id")
);
);
1 change: 0 additions & 1 deletion docker/local/init-scripts/create-schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ DROP TABLE IF EXISTS "GROUP_INFO";
DROP TABLE IF EXISTS "USER";


-- 사용자 정보 (외부 노출 가능성 높음 -> UUID)
CREATE TABLE "USER" (
"user_id" VARCHAR(36) NOT NULL,
"name" VARCHAR(100) NULL,
Expand Down
Loading