BE Study/Spring 19

회원 서비스 테스트

기존에는 회원 서비스가 직접 회원 리포지토리를 생성하도록 하였다.이러면 memberService가 생성될 때마다 new를 호출하기 때문에 새로운 리포지토리가 나와 필요없는 작업을 하게 되었다.따라서 직접 만드는 것이 아니라 Dependency Injection을 통해 리포지토리 생성을 다른 Object에 위임해주었다.아래는 이를 활용해 생성한 테스트 코드이다.package hello.hello_spring.service;import hello.hello_spring.domain.Member;import hello.hello_spring.repository.MemoryMemberRepository;import org.assertj.core.api.Assertions;import org.junit.jupit..

BE Study/Spring 2024.06.21

회원 도메인과 리포지토리 만들기

domain의 member id, name은 private으로 설정하고 외부에서 접근할 때 getter/setter로 호출 MemberRepository Interface, 아직 리포지토리를 어떤 것을 채택할 지 안 골랐기 때문에 인터페이스로 작성.Member save(Member member) : 회원을 입력받으면 저장Optional findById(Long id) : id를 입력받으면 일치하는 회원 출력Optional findByName(String name) : name을 입력받으면 일치하는 회원 출력List findAll() : 모든 회원 출력public class MemoryMemberRepository implements MemberRepository{ private static Map ..

BE Study/Spring 2024.06.20

회원 관리 비지니스 요구사항 정리

데이터: 회원ID, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리 클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용

BE Study/Spring 2024.06.20

Static, MVC와 템플릿 엔진, API (3)

API는 MVC처럼 html로 변환해서 출력하는 것이 아니라 JSON형식으로 바꿔 전달해준다.서버 간의 데이터를 전달할 때는 클라이언트와는 달리 데이터만 보내면 되기 때문에 JSON 형식으로 많이 전달한다.@ResponseBody문자 반@ResponseBody를 넣으면 ViewResolver를 사용하지 않는다.대신 http의 body에 문자 내용을 직접 반환해준다.    hello spring!!  mvc방식으로 보내면 이렇게 html형식으로 나오는 것에 비해JSON은 간단하게 문자만 출력한다.hello spring!! @ResponseBody 객체 반환@ResponseBody 를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨  {"name":"spring!!"} 정리@ResponseBody 를 ..

BE Study/Spring 2024.06.20

Static, MVC와 템플릿 엔진, API (2)

MVC : Model, View, Controller 의 약자이다.MVC는 어떤 파일에 대해 특정 request가 오면 그에 매칭된 Controller가 수행하고 Model에 값을 저장한 후 템플릿에 전달해준다. 템플릿에서는 Model을 통해 데이터를 건내받고 타임리프같은 viewcontroller를 통해 변환 후 출력하게 된다.위와 같이 controller에서 hello-mvc를 입력받으면 ?name=spring!을 통해 model의 name attribute를 입력받고 템플릿에 있는 내용을 viewcontroller가 변형해서 출력해주는 것을 알 수있다.전체적인 흐름은 웹 브라우저에서 hello-mvc를 받고 내장 톰캣서버를 거쳐 매칭되는 controller가 있다면 실행하고 viewResolver로..

BE Study/Spring 2024.06.20

Static, MVC와 템플릿 엔진, API (1)

Static은 간단히 말해 어떤 파일을 변형하지 않고 그대로 내려주는 방식이다.static 폴더에 이와 같은 html을 작성하고 빌드를 돌려보자.localhost:8080/hello-static.html에 그대로 출력되는 것을 알 수 있다.이와 같이 작성한 내용을 그대로 전달해주는 방식이라 생각하면 될 것 같다.웹 브라우저 동작은 먼저 내장 톰캣 서버가 hello-static 관련 컨트롤러가 있는 지를 보고, hello-static이 없다면 정적 파일을 보고 만약 존재한다면 그대로 호출한다.

BE Study/Spring 2024.06.20