1. 왜 Spring Security가 필요한가

현재 게시판의 문제:

아무나 게시글을 생성할 수 있음
아무나 다른 사람의 글을 수정/삭제할 수 있음
"author" 문자열만 바꾸면 다른 사람인 척 할 수 있음
비밀번호 없이 이름만 넣으면 됨

해결해야 할 것:

인증 (Authentication): "이 사람이 누구인가?" → 로그인
인가 (Authorization): "이 사람이 이 행동을 할 수 있는가?" → 권한 체크

인증은 신분증을 확인하는 것이고, 인가는 출입 권한을 확인하는 것입니다. 회사 건물에 비유하면 로비에서 신분증을 확인하는 게 인증, 특정 층에 출입할 수 있는지 확인하는 게 인가입니다.


2. 의존성 추가

build.gradle에 추가합니다:

dependencies {
    // 기존 의존성들...
    implementation 'org.springframework.boot:spring-boot-starter-security'    // 추가
}

Gradle Sync 후 앱을 실행해보세요. 이게 중요합니다.


3. Security 추가만으로 벌어지는 일

앱을 실행하면 콘솔에 이런 로그가 나옵니다:

Using generated security password: a1b2c3d4-e5f6-7890-abcd-ef1234567890

이제 Postman으로 기존 API를 호출해보세요:

GET /api/posts
{
    "status": 401,
    "error": "Unauthorized"
}

모든 API가 401 Unauthorized를 반환합니다. Spring Security를 추가하면 기본적으로 모든 요청에 인증을 요구합니다.