회원 관리 예제 - 백엔드 개발
- 비즈니스 요구 사항
데이터 : 회원 ID, 이름
기능 : 회원 등록, 조회
데이터 저장소 : 아직 선정되지 않음(가상의 시나리오)
일반적인 웹 애플리케이션 계층 구조

클래스 의존관계

- 데이터 저장소 선정되지 않아 인터페이스로 구현 클래스 변경할 수 있도록 설계
- 데이터 저장소는 RDB, NoSQL 등 다양한 저장소를 고민 중인 상황으로 가정
- 개발을 진행하기 위해 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용
※ RDB : 모든 데이터를 2차원 테이블 형태로 표현하는 관계형 데이터 모델에 기초를 둔 데이터베이스
NoSQL : 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태
+) 서비스는 비즈니스에 의존적으로 설계하고
리포지토리 기계적으로 개발스럽게 용어들을 사용한다 → 롤에 맞도록 네이밍을 잡는다
- 테스트 케이스 작성
테스트 케이스 파일 만들 때 command + shift + T : 자동으로 만들어준다
given, when, then 문법으로 작성하면 파악하기 쉽다.
@Test
void 회원가입() {
//given : 무엇인가 주어지고
Member member = new Member();
member.setName("hello");
//when : 실행했을 때
Long saveId = memberService.join(member);
//then : 결과
Member findMember = memberService.findOne(saveId).get();
assertThat(member.getName()).isEqualTo(findMember.getName());
}
회원 관리 코드 작성 중 발생한 에러 및 해결
[Spring Boot] 회원정보 테스트 에러
회원정보 리포지토리와 테스트 케이스 작성 후 실행 한 결과 밑의 에러가 발생 에러 이유 : findAll이 먼저 실행되면서 spring1,2가 이미 저장되었다. 그 다음 findByName을 실행될 때 이미 다른 객체에
shyeeon.tistory.com
'Spring Boot' 카테고리의 다른 글
| [Spring boot] 회원 관리 예제 - 웹 MVC 개발 (0) | 2024.12.22 |
|---|---|
| [Spring Boot] 회원정보 테스트 에러 (1) | 2024.12.21 |
| API (0) | 2024.12.20 |
| [Spring Boot] 스프링 웹 개발 기초 (1) | 2024.12.20 |
| Spring Boot (1) | 2024.12.20 |