숙박예약 프로젝트 - 2

소금·2025년 5월 1일
0

이번 포스팅은 백엔드 프로젝트 기본 구성을 하고
간단한 회원가입 api을 만들어보려고 한다

1. config 패키지 구성

우선 프로젝트 내의 config 패키지 내의 클래스들의 기초 작업을 해줬다

1-1. AutoUser

  • Spring Security의 User 클래스를 상속한 커스텀 사용자 정보 객체
  • 사용자 정보에 추가 필드를 넣고 싶을 때 확장해서 사용하려고 함
  • 현재는 기본 생성자만 구현되어 있음(추후 구현 예정)

1-2. DBConfiguration

  • 전체 DB 설정을 관리하는 구성 클래스
  • 커넥션 풀과 DB 연결, 트랙잭션 처리와 MyBatis 설정을 담당하는 클래스이다

1-3. PasswordEncoderConfig

  • Spring Security 에서 사용할 비밀번호 암호화를 설정
  • 내 프로젝트에서는 BCyptPasswordEncoder를 사용할 것이다

1-4. SecurityConfig

  • Spring Security의 필터 체인을 정의
  • 현재 설정은 모든 요청 허용(permitAll, CSRF 보호 비활성화, 폼 로그인 비활성화를 해 두었음

1-5. WebMvcConfig

  • Spring MVC 관련 설정 커스텀 클래스
  • 현재는 아무것도 구현되어 있지 않음
  • 보통 여기에서 CORS 설정, 정적 리소스 경로, ArgumentResolver 설정, 인터셉터 등록 등을 추가로 구성함

2. DB Connection 테스트

  • 회원 관련 기능 구현 전에, 아주 간단한 db연결 테스트를 진행해 봄
  • 내 프로젝트 내의 공통 숫자코드를 담고 있는 테이블인 no_code 에서 데이터를 select 해오도록 한다
@RestController
public class OpenController {
    @Autowired
    private final TestMapper testMapper;

    public OpenController(TestMapper testMapper) {
        this.testMapper = testMapper;
    }

    @GetMapping("/dbTest")
    public String testDB(@RequestParam String param) {
        NoCode noCode = testMapper.getOne();
        return noCode.getGroup_name();
    }
    
}
@Mapper
public interface TestMapper {
    @Select("SELECT no_seqno, group_name, code_value, code_name FROM no_code LIMIT 1")
    NoCode getOne();
}

위처럼 '/dbTest'에 접속을 하면, no_code 테이블에서 하나의 데이터를 불러오는 select문을 작성했다

  • run 해준 후 dbTest url에 접속한 모습이다
    (no_code의 group_name을 리턴하도록 하고 있음)

0개의 댓글