🚀 Spring Boot로 회원가입 & 유저 조회 API 만들기 (feat. Postman)
2025. 5. 29. 21:35ㆍJava/SpringBoot
Spring Boot + Postman 실습 + 설계 구조 + CS 개념까지 한 번에!
✅ 개요
이 글에서는 Spring Boot를 사용해 간단한 회원가입 API와 유저 조회 API를 개발하고,
Postman을 통해 실제 요청을 보내 테스트하는 실습을 정리합니다.
또한, 이 프로젝트를 통해 백엔드 개발에서 꼭 알아야 할 **설계 구조, 계층 분리, CS 개념(HTTP, REST, DTO, DI 등)**도 함께 정리해 실무와 면접 대비에 모두 도움이 되도록 구성했습니다.
🧱 전체 설계 구조
📌 계층 구조
Controller → Service → Repository → Database ↑ DTO (Request)
계층설명역할
| Controller | UserController | HTTP 요청 처리, DTO 수신 |
| Service | UserService | 비즈니스 로직 처리 |
| Repository | UserRepository | JPA를 통한 DB 접근 |
| Entity | User | DB 테이블과 매핑되는 자바 객체 |
| DTO | UserRequest | 클라이언트 → 서버 데이터 전달용 객체 |
📌 전체 흐름 요약
- 클라이언트가 POST /users 요청을 보냄
- UserController가 @RequestBody로 DTO를 받음
- UserService가 DTO를 바탕으로 Entity 생성 및 저장
- UserRepository가 DB에 저장
- 저장된 결과를 다시 반환
📌 주요 애노테이션 정리
애노테이션역할
| @RestController | JSON 기반 REST 컨트롤러 지정 |
| @PostMapping, @GetMapping | HTTP 메서드 매핑 |
| @RequestBody | JSON → Java 객체 자동 변환 |
| @Entity | JPA에서 DB 테이블과 매핑할 클래스 |
| @Id, @GeneratedValue | PK 설정 및 자동 증가 전략 |
| @Service, @Repository | 스프링 컴포넌트로 등록 |
| @RequiredArgsConstructor | 생성자 기반 의존성 주입 자동 생성 |
🛠️ 기능 요약
기능설명
| POST /users | 이름과 이메일로 유저 등록 |
| GET /users | 전체 유저 목록 조회 |
| 도구 | Spring Boot, IntelliJ, Postman |
📦 코드 구현
1️⃣ User 엔티티
@Entity
@Getter
@NoArgsConstructor
public class User {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
public User(String name, String email) {
this.name = name;
this.email = email;
}
}
2️⃣ UserRepository
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
}
3️⃣ UserService
@Service
@RequiredArgsConstructor
public class UserService {
private final UserRepository userRepository;
public User saveUser(String name, String email) {
User user = new User(name, email);
return userRepository.save(user);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
public User getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
}
4️⃣ UserController
@RestController
@RequiredArgsConstructor
@RequestMapping("/users")
public class UserController {
private final UserService userService;
@PostMapping
public User createUser(@RequestBody UserRequest request) {
return userService.saveUser(request.getName(), request.getEmail());
}
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
}
5️⃣ UserRequest DTO
@Getter
public class UserRequest {
private String name;
private String email;
}
🧪 Postman 테스트
✅ POST /users
- URL: http://localhost:8080/users
- Method: POST
- Headers:
- Content-Type: application/json
- Body (raw/JSON):
👇 아래는 제가 Postman에서 직접 테스트해본 화면이에요!
※ 위 이미지에는 JSON 요청 바디와 서버 응답이 잘 보이죠?
→ 회원가입할 때 실제 데이터를 어떻게 보내는지 감 잡을 수 있어요.

✅ GET /users
- URL: http://localhost:8080/users
- Method: GET
- 응답 예시:

💡 백엔드 면접 대비 CS 개념
개념설명
| REST API | 자원(리소스)을 URI로 표현하고, HTTP 메서드로 조작 |
| DTO vs Entity | DTO는 계층 간 데이터 전달용, Entity는 DB 매핑용 |
| DI(의존성 주입) | 스프링이 객체 간 의존성을 자동으로 주입 |
| JPA | SQL 없이 자바 객체로 DB를 조작하는 ORM 기술 |
| HTTP 상태코드 | 200 OK, 201 Created, 400 Bad Request, 500 Error 등 |
| JSON | 백엔드-프론트 통신용 경량 포맷 |
| 단일 책임 원칙 (SRP) | 클래스는 하나의 책임만 가져야 함 |
'Java > SpringBoot' 카테고리의 다른 글
| [LG U+ 유레카 3기] Redis Queue + Scheduler로 선착순 쿠폰(100장) 동시성 해결 실습 (0) | 2026.01.06 |
|---|---|
| [LG U+ 유레카 3기]Spring Boot REST API + Swagger + Postman 연동 실습 (0) | 2025.12.02 |
| 🌐 Spring Boot 프로젝트에 Swagger(OpenAPI) 적용하는 방법 (0) | 2025.06.02 |
| 🛠️IntelliJ로 스프링부트 백엔드 개발환경 구축하기 (JDK 17 기반) (2) | 2025.05.29 |