본문 바로가기

Spring10

객체지향 설계와 스프링 스프링 이야기에 왜 객체 지향 이야기가 나오는가? -스프링은 다형성 + OCP, DIP를 가능하게 지원 (OCP, DIP는 Java 게시물 참고..) DI(Dependency Injection) : 의존성 주입 DI 컨테이너 제공 -클라이언트 코드의 변경없이 기능 확장 -쉽게 부품을 교체하듯이 개발 실무 고민 -인터페이스를 도입하면 추상화라는 비용 발생 -기능 확장할 가능성이 없다면, 구체 클래스를 직접 사용하고, 향후 꼭 필요할 때 리팩터링해서 인터페이스를 도입하는 것도 방법이다. 참고 : 스프링 핵심 원리 - 김영한 2022. 11. 6.
회원 관리 예제 - 웹 MVC 개발 1 회원 웹 기능 - 홈 화면 추가 홈 컨트롤러 추가 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 회원 관리용 홈 Hello Spring 회원 기능 회원 가입 회원 목록 참고: 컨트롤러가 정적 파일보다 우선순위가 높다. 2022. 11. 4.
스프링 빈과 의존관계 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자. 회원 컨트롤러에 의존관계 추가 package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberCont.. 2022. 11. 4.
회원 리포지토리 테스트 케이스 작성 개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 회원 리포지토리 메모리 구현체 테스트 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import ja.. 2022. 11. 3.