AuthController.java 오류

순두누나·2025년 5월 7일

트러블슈팅

목록 보기
2/8

회원가입 API를 구현하는 도중 Controller 코드에서 오류 발생


오류 상황

- 현코드

package com.example.qnb.login.controller;

import com.example.qnb.login.dto.RegisterRequest;
import com.example.qnb.login.entity.User;
import com.example.qnb.login.repository.UserRepository;
import org.springframework.http.ResponseEntity;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/auth")
public class AuthController {

    private final UserRepository userRepository;
    private final PasswordEncoder passwordEncoder;

    public AuthController(UserRepository userRepository, PasswordEncoder passwordEncoder) {
        this.userRepository = userRepository;
        this.passwordEncoder = passwordEncoder;
    }

    @PostMapping("/register")
    public ResponseEntity<?> register(@RequestBody RegisterRequest request) {
        // 이메일 중복 체크
        if (userRepository.findByUserEmail(request.getUserEmail()).isPresent()) {
            return ResponseEntity.badRequest().body("이미 사용 중인 이메일입니다.");
        }

        // 비밀번호 암호화
        String encodedPassword = passwordEncoder.encode(request.getUserPassword());

        // 유저 생성 및 저장
        User user = new User();
        user.setUserEmail(request.getUserEmail());
        user.setUserPassword(encodedPassword);
        userRepository.save(user);

        return ResponseEntity.ok("회원가입이 완료되었습니다.");
    }
}

- 오류

: 다 이렇게 현재 각 파일에서 메소드를 찾을 수 없다고 나옴


해결방안

방법 1

: Lombok의 @Getter/@Setter가 적용 여부 다시 확인

  • 현재 DTO/User 엔티티 모두 적용이 잘됨

→ 이 방법은 아님(Rebuild를 해도 해결 안됨)

방법 2

: 메소드 직접 작성

👉 RegisterRequest.java


public class RegisterRequest {
    private String userEmail;
    private String userPassword;

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }
}

👉 User.java


public class User {
    private Integer userId;
    private String userEmail;
    private String userPassword;

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }
}

→ 해결됨! 사실 이런 오류에서는 메소드 직접 생성해주는 것이 확실한 방안임

profile
순두의 누나입니다

0개의 댓글