본문 바로가기
IT

Springboot #6 User 관리 API

by MR쿠 2022. 3. 27.
728x90

가장 간단하고 널리 활용되는 User라는 객체를 등록, 조회, 삭제 등의 기능으로 관리하는 로직을 만들어보겠다. 

아래는 우선적으로 필요한 User 객체이다. @Data, @AllArgsConstructor 어노테이션이 포함되어 있다. 자동으로 id, name 등의 값에 대해서 set, get을 사용할 수 있고 constructor도 정의된다.

 

...

그리고 UserDaoService를 만든다.

UserDaoService는 DAO와 Serivce를 하나의 클래스로 만들었다. 소스코드는 매우 간단하다. 저장할 User객체들은 static으로 선언하고, 3개의 객체를 만들었다.

findAll, save, findOne 까지 세 개의 간단한 함수를 만든다.

*Static

Static(고정)으로 선언된 변수나 함수는 정적 필드, 정적 메소드라 하며 객체에 소속된 값이 아닌 클래스 자체에 고정된 값. 클래스가 로딩 되면 메모리에 할당 되어 바로 사용할 수 있다.

 

다음으로 UserController를 작성한다. @RestController 어노테이션은 동일하고, UserDaoService를 의존성 주입 한다. 이는 @autowired 로 할 수 있지만, 우선은 constructor를 만듦으로서 처리했다.

우선은 1개의 User를 반환하는 함수와 모든 Users를 반환하는 함수 2개를 작성했다. 간단한 소스이고, 테스트 하면 아래와 같은 결과를 얻을 수 있다.

없는 id(4)를 입력하면 아무런 결과도 나오지 않는다.

 

다음으로는 @PostMapping 및 @RequestBody를 사용하여 createUser함수를 만들어보겠다.

Post방식이며, save함수로 새로운 User객체를 DB에 저장하게 된다. Post 호출 시 @RequestBody 어노테이션을 통해 form 형태의 User객체가 넘어가게 된다. 이는 front-end 에서 만든 form으로 전달이 가능하나, 지금은 Postman을 통해 간단히 테스트 해볼 수 있다.

위와 같이 Post 방식으로 테스트를 해보면 정상 status 200을 리턴받는다. 그리고 다시 전체 조회를 하면, 아래와 같이 4개의 User 값을 확인할 수 있다. (물론 서버 재기동 시 네번째 데이터는 삭제된다.)

끝 :)