서블릿을 이용해서 회원 관리 웹 애플리케이션을 만들고 JSP로도 넘어간 다음 MVC 패턴으로 넘어가보자.
회원 관리 웹 애플리케이션 요구사항
회원정보
- 이름: `username`
- 나이: `age`
기능 요구사항
- 회원 저장
- 회원 목록 조회
member 먼저 만들어주자.
// Member Class
package hello.setvlet.domain.member;
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class Member {
// id를 db에 저장하면 발급이 될 것이다.
private Long id;
private String username;
private int age;
public Member() {
}
public Member(String username, int age) {
this.username = username;
this.age = age;
}
}
MemberRepository를 만들어보면
package hello.setvlet.domain.member;
import java.util.HashMap;
import java.util.Map;
public class MemberRepository {
private Map<Long, Member> store = new HashMap<>();
}
Test도 한번 만들어보자.
package hello.setvlet.domain.member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.*;
class MemberRepositoryTest {
// 싱글톤이기 때문에 new로 하면 안된다.
MemberRepository memberRepository = MemberRepository.getInstance();
@AfterEach
void afterEach() {
memberRepository.clearStore();
}
@Test
void save() {
// given
Member member = new Member("hello", 20);
// when
Member savedMember = memberRepository.save(member);
// then
Member findMember = memberRepository.findById(savedMember.getId());
assertThat(findMember).isEqualTo(savedMember);
}
@Test
void findAll() {
// given
Member member1 = new Member("member1", 20);
Member member2 = new Member("member2", 20);
memberRepository.save(member1);
memberRepository.save(member2);
// when
List<Member> result = memberRepository.findAll();
// then
assertThat(result.size()).isEqualTo(2);
assertThat(result).contains(member1, member2);
}
}
테스트 결과가 잘 나오는 것을 확인할 수 있다.
<출처 김영한: 스프링 MVC 1편 - 벡앤드 웹 개발 핵심 기술>
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
'Spring > SpringMVC' 카테고리의 다른 글
JSP로 회원 관리 웹 애플리케이션 만들기 - error (0) | 2022.04.23 |
---|---|
서블릿으로 회원 웹 애플리케이션 만들기 (0) | 2022.04.23 |
HTTP 응답 데이터 - 단순 텍스트, HTML / API JSON (0) | 2022.04.22 |
HttpServletResponse - 기본 사용법 (0) | 2022.04.22 |
HTTP 요청 데이터 - API 메시지 바디 - JSON (0) | 2022.04.22 |