회원 관리 웹 애플리케이션 요구사항

slee2·2022년 1월 5일
0

회원정보

  • 이름: username
  • 나이: age

기능 요구사항

  • 회원저장
  • 회원 목록 조회

이번 시간에 배울 것은 서블릿을 이용해서 회원 관리 웹 어플리케이션을 만들어 보고 불편한 점을 확인한 다음,
이를 개선한 JSP로도 만들어보는 것이 목적이다.

그것을 위해 먼저 우리는 요구사항에 만족하는 간단하게 회원정보를 저장하는 기능을 만들어야 한다.

Member

간단하게 멤버를 롬복을 통해 GetterSetter를 만들고, 생성자를 기본 생성자와 이름과 나이를 넣는 생성자 두개를 만든다.

MemberRepository

package hello.servlet.domain.member;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MemberRepository {

    private static Map<Long, Member> store = new HashMap<>();
    private static long sequence = 0L;

    private static final MemberRepository instance = new MemberRepository();

    public static MemberRepository getInstance() {
        return instance;
    }

    private MemberRepository() {
    }

    public Member save(Member member) {
        member.setId(++sequence);
        store.put(member.getId(), member);
        return member;
    }

    public Member findById(Long id) {
        return store.get(id);
    }

    public List<Member> findAll() {
        return new ArrayList<>(store.values());
    }

    public void clearStore() {
        store.clear();
    }
}

먼저 싱글톤으로 구현하기 위해 생성자를 private으로 막았다.

그리고 getInstance를 통해 간접적으로 MemberRepository에 접근하도록 만들었다.

save메서드에서 sequence를 계속 늘리면서 회원id를 저장하고, store에 put을 통해서 멤버정보를 저장한다.

참고로 스프링에서는 저렇게 안해도 된다. 간접적으로 싱글톤 만드는것도 스프링은 알아서 다 해준다.

이에 대한 두 테스터 모두 잘 통과된 상태이다.

0개의 댓글

관련 채용 정보