2025년 11월 13일 목요일 (114일차)

Jeonghoon·2025년 11월 13일

jeonghoon's Study

목록 보기
117/128

🧩 프로젝트 관련 정리


☕ [ Spring Security ]

  • HTTP 요청 커스텀을 할 경우, 좁은 범위부터 지정해야 순차적으로 적용된다.
  • 즉, /admin/**/api/**/** 와 같이 특정 경로부터 일반 경로로 순서 설정해야 한다.

📘 예시 코드

http.authorizeHttpRequests(auth -> auth
    .requestMatchers("/admin/**").hasRole("ADMIN") // 1️⃣ 좁은 범위 (우선 적용)
    .requestMatchers("/api/**").hasAnyRole("USER", "ADMIN")
    .requestMatchers("/**").permitAll()             // 2️⃣ 넓은 범위 (마지막에 적용)
);

💡 Tip:

  • 가장 구체적인 경로부터 작성해야 한다.
  • /** 처럼 모든 요청을 허용하는 설정은 항상 맨 마지막에 둬야 한다.
  • 그렇지 않으면 상위 경로가 모두 허용되어 보안 설정이 무효화될 수 있다.

⚛️ [ React ]

✨ 스프레드 연산자 (...)

  • 객체나 배열의 값을 펼쳐서 복사하거나 병합할 때 사용한다.
  • 원본을 변경하지 않고 새로운 객체나 배열을 생성하기 때문에 불변성 유지에 유용하다.

📘 예시 코드

// 1️⃣ 객체 병합
const user = { name: "홍길동", age: 25 };
const updatedUser = { ...user, age: 26 }; // age만 변경

console.log(updatedUser);
// 출력: { name: "홍길동", age: 26 }

// 2️⃣ 배열 병합
const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const merged = [...arr1, ...arr2];

console.log(merged);
// 출력: [1, 2, 3, 4, 5]

// 3️⃣ props 전달 시 활용
<MyComponent {...props} />

🧠 스프레드 연산자 vs 구조분해할당

구분설명예시
스프레드 연산자데이터를 펼쳐서 복사{ ...object }, [...array]
구조분해할당데이터를 꺼내서 변수에 저장const { name } = object;

0개의 댓글