DTO, VO, Entity
프로젝트를 진행하면서 DTO와 VO, Entity에 대해 제대로 이해하지 못한 상태에서 DB에 있는 테이블을 토대로 클래스를 만들려다다보니 어려움이 있었다. 여러 블로그를 참고해 어느정도 정리가 된 느낌이라 바로 블로그에 작성하려고 한다. 회원의 데이터를 저장하는 VO 클래스를 만들다보니 DB 칼럼과 클래스 변수들이 1대1로 매칭되는 것이 맞는건지...
프로젝트를 진행하면서 DTO와 VO, Entity에 대해 제대로 이해하지 못한 상태에서 DB에 있는 테이블을 토대로 클래스를 만들려다다보니 어려움이 있었다. 여러 블로그를 참고해 어느정도 정리가 된 느낌이라 바로 블로그에 작성하려고 한다. 회원의 데이터를 저장하는 VO 클래스를 만들다보니 DB 칼럼과 클래스 변수들이 1대1로 매칭되는 것이 맞는건지...
전 포스팅에서 우리는 직접 MemberService에 생성자를 만들어 DI를 통해 MemberRepository를 주입했었다. 하지만 스프링에서는 사용자가 직접 DI를 구현할 필요없이 개발자의 편의를 위해 스프링 컨테이너가 관리해준다. 뿐만 아니라 스프링 컨테이너에 객체를 등록하면 해당 객체를 관리해주는 기능을 제공한다. 이때 컨테이너에 객체를 ...
Test package hello.hellospring.service; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.util.List; import static ...
스프링 웹 개발에는 크게 세가지 방법이 있다. 정적 컨텐츠 MVC와 템플릿 엔진 API 이 세가지 방식에 대해 알아보자. 정적 컨텐츠(Static Content) 정적 컨텐츠 서버에서 파일을 그대로 웹브라우저에게 보내는 것을 의미한다. 스프링 부트는 기본적으로 정적 컨테츠를 제공한다. resources/static 폴더가 있는데...
Member에 사용될 비즈니스 로직을 가진 Service 클래스를 만들어보자. MemberService package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import ...
이전에 만들었던 MemoryMemberRepository의 테스트 케이스를 작성해보자 Test Case Test Case를 작성할 때는 test 폴더 밑에 같은 테스트를 진행할 패키지의 이름과 같은 이름의 패키지를 하나 만들어준다 @Test 어노테이션을 붙여 테스트 코드라는 것을 명시해준다. 작성 코드 package hello.hel...
웹 애플리케이션 계층 구조 Controller : MVC에서 컨트롤러의 역할을 하고, 클라이언트에서 요청이 들어오면 그 요청을 Service에게 Mapping 해준다. Service : 핵심 비즈니스 로직을 구현한 계층, Repository에 저장된 객체를 이용한다. Domain : DB에 저장할 객체, 보통 Getter와 Sette...
IN IN v IN (v1, v2, v3 ….) 에서 v 가 (v1, v2, v3 …) 중에 하나라도 값이 같다면 TRUE를 return 한다. (v1, v2, v3 …) 는 명시적인 값이 될 수도 있고, subquery의 결과 (set or multiset)일 수도 있다. NOT IN v NOT I...
Call By Value와 Call By Reference는 함수의 호출 방법을 뜻한다. Call By Value call by value는 값에 의한 호출을 말한다. call by value는 인자로 받은 값을 복사하여 처리한다. 장점 : 값을 복사하기 때문에 원본에 영향이 가지 않음, 안전함 단점 : 메모리 사용 증가 Call B...
JSP 환경에서 페이지에서 작업 중일 때 다른 페이지로 이동하는 방식에 대해 알아보자. 각 예제를 통해 어떤 식으로 작동되는지 알아보자. 만약 고객이 상담원에게 전화해 문제를 해결하고 싶다고 가정해보자. 고객은 클라이언트, 상담원 번호는 URL, 상담원은 서버가 된다. forward의 경우 고객이 고객센터로 123번 상담원에게 전화를 건...