inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 기능

LoginForm클래스가 web영역인 이유가 궁금합니다.

해결된 질문

328

양치잘하기

작성한 질문수 67

1

멤버 클래스, 멤버 리포지토리 클래스와 비교하였을 때 멤버 클래스는 도메인 영역에 존재하고 멤버 리포지토리에 의해서 멤버 클래스의 객체가 만들어지는것 같은데

로그인기능에서 로그인폼 클래스가 멤버 클래스와 같은 기능인것 같은데 서로 다른 영역에 존재하고 로그인 사용자가 생성될려면 로그인서비스의 loginService.login()기능이 호출되어서 로그인 객체가 생성이 되는것을 알겠는데 멤버클래스와 다르게 web영역에 존재하는 이유가 궁금합니다.

spring mvc

답변 2

1

OMG

안녕하세요. 양치잘하기님, 공식 서포터즈 OMG입니다.

(멤버) 도메인은 웹에 의존하지 않아야 합니다.

반면, 로그인을 웹 화면에서 시도하여 서버에게 로그인 사용자 정보를 전달하기 때문에

로그인 폼은 웹 화면에서의 로그인 처리에 대한 데이터 정보를 담고 있어 웹 계층에 위치한 것입니다.

추가로 ai인턴 답변도 참고해주세요 😀

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

양치잘하기님의 질문에 대해 정확한 답변을 드리기 위해 고민하였습니다. “LoginForm클래스가 web 영역에 존재하는 이유”와 관련하여, 이는 LoginForm 클래스의 역할과 사용 범위에 기인합니다.

LoginForm 클래스는 웹 계층에서 사용자의 입력을 받아오는 폼 데이터를 매핑하기 위한 DTO(Data Transfer Object) 역할을 합니다. 즉, 사용자가 웹 페이지에서 로그인 정보(예: 사용자 이름, 비밀번호 등)를 입력할 때, 이 정보를 컨트롤러로 전달하기 위해 사용되는 객체입니다. 이런 이유로 LoginForm은 웹 계층에 속합니다.

반면에, 멤버 클래스(Memeber)는 도메인 모델로서 애플리케이션의 핵심 비즈니스 로직을 구현하는데 사용됩니다. 멤버 리포지토리(MemberRepository)는 이 도메인 객체에 대한 데이터 접근 계층의 역할을 하며, 데이터베이스와 같은 영속성 관리를 담당합니다.

LoginForm이 도메인 영역이 아니라 웹 계층에 속하는 주된 이유는, 이 객체가 사용자의 입력 값을 컨트롤러에서 처리하기 위한 목적으로만 사용되기 때문입니다. 도메인 모델이나 리포지토리와는 다르게, 이 DTO는 데이터의 임시 보관과 전달에 초점을 두고 설계되었습니다.

아래 링크에서 비슷한 주제에 대한 기존 답변을 찾을 수 있습니다:

이 링크에서는 웹 폴더에 있는 LoginForm 객체가 도메인 객체가 아닌 웹 계층에서만 사용하는 객체로서 기능하게 됨을 설명해 줍니다. LoginForm은 특정 컨트롤러에서 사용자의 입력을 바인딩하고, 그 데이터를 서비스 계층으로 전달하는 역할을 합니다. 이는 애플리케이션의 계층 분리 원칙에 따라 설계된 것으로 구조적인 명확성을 제공합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이미지 업로드와 db 트랜잭션 묶는법

0

40

1

Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4

0

45

2

MessageSourceTest 코드

0

46

1

인터셉터 에러 설정

0

47

1

resolveArgument()메서드 질문

0

54

1

43강 검증1 에서 실패 로직 관련 질문있습니다.

0

52

2

타임리프 3.X 버전 rendering, serializer 에러 해결 방법

2

130

3

스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ

0

86

3

pdf 오타 문의

0

54

1

ItemUpdateForm 검증 관련 질문입니다.

0

46

1

22page 링크 주소 변경

0

55

2

특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문

0

52

1

섹션3번 수업에 대한 질문입니다.

0

78

2

@Autowired 보다 더 좋은 방법이 어떤 걸까요?

0

84

2

타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.

0

63

1

자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다

0

140

3

스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문

0

62

1

톰캣 에러 페이지가 안보입니다.

0

98

2

apiEceptionController에서 센드 에러 호출하면 안되는지?

0

80

1

세션 타임아웃시 쿠키 삭제 방법이 없나요?

0

116

2

ApiExceptionController 질문드립니다.

0

62

1

셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?

0

64

1

MemberRepository 필드의 fianl 선언 유무

0

83

2

혹시 index.html 에서는 fragment 사용이 안되는건가요

0

57

1