728x90
반응형

Spring/Spring Core Basic 18

비즈니스 요구사항과 설계

회원 ▶ 회원 회원을 가입하고 조회할 수 있다. ▶ 회원은 일반과 VIP 두 가지 등급이 있다. ▶ 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 ▶ 주문과 할인 정책 회원은 상품을 주문할 수 있다. ▶ 회원 등급에 따라 할인 정책을 적용할 수 있다. ▶ 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) ▶ 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 회원 도메인 설계

자바 프로젝트 생성

1. 프로젝트 생성 https://start.spring.io/ 스프링 부트를 이용하여 쉽게 프로젝트를 생성한다. Project - Gradle로 설정 그 외에는 건들 게 없고 처음에는 순수 자바 코드로 프로젝트를 시작할 것이기 때문에 Dependencies도 추가할 게 없다. -> GENERATE로 생성해준다 압축파일을 풀고 Intellij로 Build.gradle파일을 열어주면 프로젝트가 생성된 걸 확인할 수 있다.

좋은 객체 지향 프로그래밍

다형성 : Polymorphism 하나의 코드로 다양한 타입의 객체를 처리하는 기술 : 인터페이스를 기반으로 한 구현 클래스로 다른 일을 할 수 있도록 하는 것 -> 오버라이딩을 통해 가능하다. 스프링을 이용하여 개발을 할 때는 객체 지향 프로그래밍 기법으로 개발을 해야한다. 역할과 구현을 구분하여 한 가지 클래스에 너무 많은 Task를 부여하지 않는다. 자바에서는 역할 = 인터페이스 구현 = 인터페이스를 구현한 클래스, 구현 객체 객체를 설계할 때 역할과 구현을 명확히 분리하여 역할(인터페이스를)설계한 후, 그 역할에 대한 구현체(클래스)를 설계한다. 위에 말처럼 하면 이해하기 쉽지 않으니 간단한 실생활 예로 들어보자면, 객체는 하나의 컴퓨터 본체 안에 있는 CPU, RAM, SSD, 쿨러 등 본체를 ..

자바 코드로 직접 스프링 빈 등록하기

스프링에 등록하는 건 두 가지 방법이 존재한다. ① 컴포넌트 스캔을 통해 스프링 자동 등록. ② 코드 작성을 통해 스프링에 직접 등록 1번은 저번 게시물 글 내용이고 이번 게시물은 2번에 관한 내용이다. 가장 먼저 Service package에 Config 클래스를 하나 생성한 뒤 이 클래스를 통해 등록한다. package Hello.HelloBus.service; import Hello.HelloBus.domain.Member; import Hello.HelloBus.repository.MemberRepository; import Hello.HelloBus.repository.MemoryMemberRepository; import Hello.HelloBus.service.MemberService; im..

컴포넌트 스캔과 자동 의존관계 설정

지금까지 단순한 객체를 통한 서비스 개발 및 테스트를 통한 검증을 하였는데 이제 서비스 화면을 백엔드 시야에서 어떻게 처리하는지 알아본다. Controller와 ViewTemplate을 이용한다. 1. MemberController를 생성할 건데, Controller가 memberService를 통해 서비스가 이루어지고 데이터를 조회할 수 있어야한다. → MemberController와 MemberService의 의존관계 설정 -> 이것을 Spring을 통해 구현 가장 먼저 MemberController를 구현할건데 package Hello.HelloBus.controller; import Hello.HelloBus.service.MemberService; import org.springframework..

회원 서비스 테스트

앞서 만든 회원 서비스 또한 테스트 과정을 거쳐주어야한다. 가장 먼저 회원가입 method join의 테스트 코드를 작성해준다. → join method Test Code @Test void join() { // given Member member = new Member(); member.setName("Kim"); // when Long saveId = memberService.join(member); // then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } repository test 코드 작성 때 사용했던 assertThat을 ..

회원 서비스 개발 (회원 가입, 회원 조회)

앞서 Repository 인터페이스 및 구현체 -> testCase 작성을 통해 Repository 저장소 구현은 완료했습니다. 이제 간단한 회원 가입과 회원 조회 서비스를 구현해볼텐데 회원 가입 조건은 같은 이름이 존재하는 회원은 회원 가입 할 수 없도록 만들거고 같은 이름을 가진 회원이 존재하는지 확인하는 메소드를 따로 만듭니다. 회원 조회 서비스는 모든 회원을 조회하는 것과 회원 아이디를 통해 한 명의 회원만 조회하는 서비스를 만듭니다. package Hello.HelloBus.service; import Hello.HelloBus.domain.Member; import Hello.HelloBus.repository.MemberRepository; import Hello.HelloBus.reposi..

728x90
반응형