밍쎄의 코딩공간

스프링부트를 통해 계좌 만들기 본문

개념정리

스프링부트를 통해 계좌 만들기

밍쎄 2023. 8. 27. 17:00

간략하게 정리해본 계좌(Account)만들기

 

1. 프로젝트 생성 및 의존성 추가:

  • 스프링 부트 프로젝트를 생성합니다. Spring Initializr (https://start.spring.io/)를 사용하거나 스프링 부트 CLI를 이용할 수 있습니다.
  • 프로젝트 설정에서 사용할 언어, 빌드 도구, 의존성 등을 선택합니다.
  • 계좌 생성에는 Spring Web과 Spring Data JPA 등의 의존성이 필요합니다. 이를 pom.xml (Maven) 또는 build.gradle (Gradle) 파일에 추가합니다.

2. 데이터베이스 모델의 정의 :

  • Account라는 이름의 클래스를 생성하여 계좌 정보를 표현하는 모델 클래스를 만듭니다.데이터베이스 모델 정의:
@Entity
public class Account {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String accountNumber;
    private String ownerName;
    private double balance;
    // Getter와 Setter 메서드
}

 

 

  • @Entity 어노테이션은 이 클래스가 JPA 엔티티임을 표시하며, 필드들은 데이터베이스 테이블의 컬럼과 매핑됩니다.

 

3. 데이터베이스 연결 설정:

  • application.properties 또는 application.yml 파일에 데이터베이스 연결 정보를 설정합니다.
spring.datasource.url=jdbc:mysql://localhost:3306/bankdb
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
  • 위의 예시는 MySQL 데이터베이스를 사용하는 설정입니다. 필요에 따라 데이터베이스 종류와 연결 정보를 변경하세요.

 


4. 컨트롤러 생성:

  • AccountController라는 이름의 컨트롤러 클래스를 생성합니다.
 
@RestController
@RequestMapping("/accounts")
public class AccountController {
    private final AccountService accountService;

    @Autowired
    public AccountController(AccountService accountService) {
        this.accountService = accountService;
    }

    @PostMapping
    public ResponseEntity<Account> createAccount(@RequestBody Account account) {
        Account newAccount = accountService.createAccount(account);
        return ResponseEntity.status(HttpStatus.CREATED).body(newAccount);
    }
}
    • @RestController 어노테이션은 컨트롤러가 RESTful 엔드포인트를 처리함을 나타냅니다.
    • @PostMapping 어노테이션은 POST 요청을 처리하는 메서드를 정의합니다.
    • @RequestBody 어노테이션은 요청 본문에서 JSON 데이터를 파싱하여 Account 객체로 매핑합니다.

5. 서비스 생성:

  • AccountService라는 이름의 서비스 인터페이스를 생성합니다.
public interface AccountService {
    Account createAccount(Account account);
}​
  • AccountServiceImpl이라는 이름의 서비스 구현 클래스를 생성하고, AccountService 인터페이스를 구현합니다. 이 클래스에서 실제 계좌 생성 로직과 데이터베이스 저장을 처리합니다.

6. POST 요청 처리:

  • AccountServiceImpl에서 계좌 생성 로직을 구현합니다.
@Service
public class AccountServiceImpl implements AccountService {
    private final AccountRepository accountRepository;

    @Autowired
    public AccountServiceImpl(AccountRepository accountRepository) {
        this.accountRepository = accountRepository;
    }

    @Override
    public Account createAccount(Account account) {
        return accountRepository.save(account);
    }
}​
  • AccountRepository는 Spring Data JPA를 사용하여 데이터베이스와 상호 작용하는 인터페이스입니다.

7. 응답 처리:

AccountController에서 계좌 생성이 성공한 경우, HTTP 상태 코드 201 Created와 생성된 계좌 정보를 반환합니다.

 

8.테스트:

  • JUnit 또는 TestNG를 사용하여 서비스와 컨트롤러의 유닛 테스트와 통합 테스트를 작성합니다.
728x90