Spring 입문25 스프링MVC 입문13 MemberController package com.danny.learningspring.controller; import com.danny.learningspring.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; @Controller @RequiredArgsConstructor public class MemberController { private final MemberService memberService; // @Autowired // public MemberController(MemberService memberService) { // this... 2022. 11. 11. 스프링MVC 입문12 service/MemberServiceTest package com.danny.learningspring.service; import com.danny.learningspring.domain.Member; import com.danny.learningspring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; c.. 2022. 11. 11. 스프링MVC 입문11 service/MemverService package com.danny.learningspring.service; import com.danny.learningspring.domain.Member; import com.danny.learningspring.repository.MemberRepository; import com.danny.learningspring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); .. 2022. 11. 10. 스프링MVC 입문10 repository/MemoryMemberRepositoryTest.java package com.danny.learningspring.repository; import com.danny.learningspring.domain.Member; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.*; public class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEa.. 2022. 11. 10. 스프링MVC 입문09 domain/Member.class package com.danny.learningspring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 식별자로 사용될 시스템이 정하는 id name은 회원 이름 repository/MemberRepository.interface package com.danny.learningsp.. 2022. 11. 10. 스프링MVC 입문08 비즈니스 요구사항 정리 데이터 - 회원ID, 이름 기능 - 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러 - 웹 MVC중 컨트롤러의 역할 서비스 - 핵심 비즈니스 로직 구현(중복가입 처리 등) 리포지토리 - 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 - 비즈니스 도메인 객체(회원, 주문, 쿠폰 등 주로 DB에 저장하고 관리됨) 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 이미지.. 2022. 11. 9. 이전 1 2 3 4 5 다음