이를 통해 items로 리다이렉트 하게 만들어 놨음


<aside> 📖 <목차>

</aside>


도메인이 가장 중요하다.

화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을 말함. (도메인과 웹을 구분하는 것이 포인트)

Untitled

이런 식으로 웹과 도메인을 나눈 이유는 ?

향후 web을 다른 기술로 바꾸어도 도메인은 그대로 유지할 수 있어야 한다. 이렇게 하려면 web은 domain을 알고있지만 domain은 web을 모르도록 설계해야 한다. 이것을 web은 domain을 의존하지만, domain은 web을 의존하지 않는다고 표현한다. 예를 들어 web 패키지를 모두 삭제해도 domain에는 전혀 영향이 없도록 의존관계를 설계하는 것이 중요하다. 반대로 이야기하면 domain은 web을 참조하면 안된다.

의존한다는 말을 쉽게 표현 → 웹은 도메인을 알아도 되지만, 도메인은 웹을 알면 안된다는 말이다.

의존관계가 단방향으로 흘러야 핵심 업무인 도메인 영역을 다 살릴 수 있다.


MemberRepository 클래스에서

// 로그인 아이디로 찾는 방법 Optional 자바8
public Optional<Member> findByLoginId(String loginId) {
    /*
    List<Member> all = findAll();
    for (Member m : all) {
        if (m.getLoginId().equals(loginId)) {
            return Optional.of(m);
        }
    }
    return Optional.empty(); // 예전엔 값이 없으면 null로 반환했는데, 이젠 Optional을 써서 empty 로 찾을 수 있도록 코드 스타일이 변함
    */
    return findAll().stream()
            .filter(m -> m.getLoginId().equals(loginId))
            .findFirst();
} // 

→ 이를 통해 요즘은 람다와 스트림을 필수적으로 알고, 쓸 줄 알아야한다는 것을 인지하자.


서버를 껏다 키면 로그인할 때마다 회원가입을 또 하고 로그인을 또 해야한다. → 재구동으로 인해, 데이터가 날라갔기 때문이다.

TestDataInit