묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller와 생성자에 @Autowired 중복할필요있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 클래스에 컨트롤러 붙여주면 스프링빈에 자동등록되서 생성자에 Autowired 붙여줄필요없는거 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DTO 사용범위
안녕하세요.아직 강의를 듣는중이지만, 여러가지 찾아보다가 궁금증이 생겨 질문 남겨봅니다.궁금한 것은 DTO의 사용범위(세분화 정도)와 Request 파라미터 Null 체크입니다.DTO는 클라이언트-서버 사이의 요청/응답 데이터를 전송하는 객체라고 이해했습니다.다른 기능을 하는 aController, bController내 API가 있고 회원 정보를 담고있는 MemberDTO가 있다고 상황을 가정했습니다.MemberDTO에는 name, email, number, sequence 파라미터 등등이 담겨 있고 sequence 파라미터에는 @NotNull 애노테이션이 붙어있습니다.이때, DTO 에서 @NotNull 등을 설정 후 사용하고자 하는 aController 내 API에서는 @NotNull 애노테이션이 적용된 sequence를 response값에 넣어주고 싶지만, bController에서는 MemberDTO 객체 중 sequence만 제외한 response가 필요하면 이때 bController에 맞는 DTO 객체를 하나 생성해 주는 게 더 옳은 것일까요? 이런 경우 실무에서 어떻게 해결하는 지 궁금합니다! 생각을 해봤을 때,기능을 달리하는 Controller 내 API마다 DTO 객체 생성하나의 DTO 객체에 각 기능 별로 보내도 되지 않는 파라미터는 제거 (2번이 그렇다면 방법이 궁금합니다. 찾아보면 좋은 키워드를 알려주셔도 감사하겠습니다. 질문이 두서없을 수 있지만 답변 주시면 감사하겠습니다.제가 이해를 잘못하고 있는 부분이나 영한 님의 강의 중 관련 내용이 있는 파트가 있다면 알려주시면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceTest 중 질문
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예-------------------------------------------------------[질문 내용]스프링 입문 강의 > 섹션3 > 회원 서비스 테스트 > 11:45 지점회원가입() 메서드 내에 member 객체의 이름을 spring으로 바꾸면, 중복_회원_예외() 메서드에서 join한 member1 객체와 충돌하여 에러가 난다고 설명해주셨습니다 . -> 질문 : 중복_회원_예외() 내부에서는 member1와 member2의 이름이 같기 때문에, 예외가 발생하며 member2가 가입되지 않았습니다.그런데 왜 그 후에 회원가입() 메서드에서 member1과 이름이 같은 member가 join할 때는 위와 같이 실행되지 않고, 런타임에러가 발생하는걸까요 ?? ( 이 때도 마찬가지로 join() 내부에 있는 validateDuplicateMember()가 실행되어서 member는 가입되지 않고, 정상적으로 종료할 것이라고 예상했는데, 왜 이렇게 되는지 궁금합니다 ..!! )
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
안녕하세요 강의를 듣고 따라하다가 등록일부분과 수정일부분에서 데이터가 갑자기 조회가 안되는 현상이 발생해서 질문드립니다 .
다른부분은 이상이없는데 무었이 잘못일까요?구글드라이브 링크 남겨드립니다 :https://drive.google.com/file/d/1ZxdPrRNo-zlr_IkRXwidukMYrpDr8Af5/view?usp=share_link
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
특정 컨트롤러에서만 발생하는 예외를 별도로 처리하는법
수업 자료에서" 특정 컨트롤러에서만 발생하는 예외를 별도로 처리하기 어렵다. 예를 들어서 회원을 처리하는 컨트롤러에서 발생하는 RuntimeException 예외와 상품을 관리하는 컨트롤러에서 발생하는 동일한 RuntimeException 예외를 서로 다른 방식으로 처리하고 싶다면 어떻게 해야할까? "라는 말이 있었습니다. 그렇다면 실무에서는 위에 문제를 @ControllerAdvice를 이용하여 해결한다고 이해하면 될까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
다양한 ViewResolver를 사용하고 싶을 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다양한 ViewResolver를 사용하고 싶을 경우 어떻게 하는지 궁금해서 질문을 올립니다.예를 들어서 위 코드가 있고, 클라이언트에 요청이 들어오면 DispatcherServlet은 Adapter에게 받은 ModelAndView를 받습니다.InternalResourceViewResolver는 ModelAndView를 application.properties의 정보를 사용해서 View를 생성합니다.View를 render합니다. 서버는 위와 같은 순서로 진행된다고 생각합니다.그런데 만약 ThymeleafViewResolver도 등록해서, 어떤 요청은 jsp로 하고 어떤 요청은 thymeleaf로 동작하게 하려면 어떻게 해야할까요? "new-form" 이란 논리적인 View Name을 유연하게 물리적인 View Path로 변경하는 방법이 궁금합니다. 혹시 이렇게 사용하는 상황이 없기 때문에 지원하지 않는 것일까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
백엔드 개발자로서 프론트에 대해서 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]리액트는 선택이고 타임리프는 알아야 한다고 하셨는데 제가 알기로는 요즘에는 REST 방식으로 JSON 형태로 주고 받고 요즘 자주 쓰는 React 같은 경우는 서버를 아예 따로 띄어주고 JSON으로 데이터만 주고 받고 하는데 타임리프를 꼭 자세히 알아야 하나요?여기서 말하는 자세히란 지금 현재 타임리프 문법은 대략적으로 알 고 있고 타임리프로 프론트가 작성되어 있는거 보면 알 수 있을 정도는 되는데 프론트를 혼자서 만들 정도는 안됩니다. (그게 맞지 않아서 백엔드를 선택했는데...)프로젝트 만드는데 타임리프로도 만들어야 할 정도로 알아야 하는지 궁금합니다. 현재 계획으로는 리액트하고 백엔드하고 나눠서 따로 서버 배포하고 백엔드는 REST 방식으로만 진행해서 MVC에서 View를 빼서 나누려고 하는데 타임리프로 알아야 한다면 이것도 프로젝트로 만들어야할지 고민이되서 질문드립니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인텔리제이 터미널에서 gradlew.bat build를 치니 오류가 뜹니다. 해결방법 알 수 있을까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
memProfile 이름을 UUID로 주기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 혹시 newProfile변수에 UUID값을 줘도 되나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
member와 login의 분리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서 member와 login을 분리해주었는데요, 로그인할 때 member 도메인의 loginId, password가 필요하잖아요. 그럼 login할때 meber의 정보가 필요하니까 login을 member에 포함시켜주는건 부적절한가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
setter와 생성자 사용에 대한 질문.
안녕하세요.스프링 MVC 2편의 섹션5 : Form 전송 객체 분리 개발 강의에서 5:45 쯤에강사님께서 "setter 보단 생성자를 사용하는 것이 더 낫다"고 말씀하셨습니다.따라서 위 코드를 Item item = new Item(form);처럼 생성자를 통해서 사용할 수 있도록 Item 클래스에 ItemSaveForm을 파라미터로 갖는 생성자를 만들면 되겠구나 라고 생각했습니다. 하지만 강의를 듣다보니 섹션 6 : 프로젝트 생성 강의에서강사님께서 도메인이 가장 중요하므로 도메인이 다른 패키지, 클래스에 의존하는 설계는 좋지 않다고 말씀하셨습니다. 따라서 제가 생각했던Item item = new Item(form);위 코드는 Item 도메인 객체가 ItemSaveForm에 의존하고 있으므로 좋은 코드는 아니라는 생각이 들었습니다.그렇다면 어떻게 생성자를 이용하여 ItemSaveForm를 Item 객체로 변환할 수 있을까요? ** 추가Item item = form.transToItem();처럼 ItemSaveForm 내부에서 Item 객체로 변환하는 메서드를 작성하는 것은 데이터를 전달만 하는 용도로 사용되는 객체의 역할에 벗어나는 것일까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
[Error] Member cannot be resolved to a type
save.jsp를 요청할 때, Member cannot be resolved to a type라는 에러가 나옵니다.패키지의 문제인가 싶어서 아래와 같이 확인했습니다.스프링부터 2.6.3버전이고, implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '9.0.44' implementation 'javax.servlet:jstl' //스프링부트 3.0 미만위 코드를 gradle에 추가했습니다. 프로젝트창에 jstl과 tomcat을 검색하면 외부 라이브러리로 설치됨을 알 수 있습니다. 경로의 문제일 수 있을까요? 내 파일경로는 위와 같고, save.jsp의 코드는 아래와 같습니다.<%@ page contentType="text/html;charset=UTF-8" language="java"%> <%@ page import="hello.servlet.domain.member.Member" %> <%@ page import="hello.servlet.domain.member.MemberRepository" %> <% MemberRepository memberRepository = MemberRepository.getInstance(); String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); %> <html>...</html>경로의 문제일까요? jsp파일이 Member클래스를 참조못하는듯보입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloController 밒 hello.html 실행 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예{[질문 내용]여기에 질문 내용을 남겨주세요. 제 hello.html에는 강사님과 다르게 ${data}" 부분에 주황색 글씨로 표기가 안되고 HelloControlle에서 string hello 부분에도 주황색 글씨로 표기가 안되는데 어떤 오류가 있을까요..?
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
글쓰기화면에서리스트로갈떄 파라미터값을 못가지고오는 오류가 발생하네요 이유가 뭘까요?
서비스부분 컨트롤부분 매퍼부분 xml부분 오류코드부분
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
굳이 DTO를 join하지 않고 Member 객체를 만들어서 저장 후 넣는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제목처럼 form이 DTO의 역할을 하는 것인데 굳이 도메인인 멤버 객체를 생성해서 setName하고 join에 넣는 이유가 궁금합니다. 사실 form에서 넘어온 데이터를 바로 join에 넣으면 새로운 객체를 만들지 않아도 되서 큰 자원은 아니지만 낭비하지 않을 수 있지 않나요?..! 저렇게 사용하는 이유에 대해서 고민해보았는데 DTO의 역할은 단순하게 데이터의 전달 역할만 하는 것이기 때문에 그 역할을 지키기 위해 영상에 나온 것과 같이 사용하는 것일까요?!
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
db연동부분에서 계속 오류가 발생하네요
매퍼xml컨트롤러오류코드 2.7.7로 변경하였습니다 오류가 발생한 이유가 뭘까요?
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
인텔리j무료버젼에서는 자동완성기능이 안되는게 맞죠??
ㅇㅇ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
생성자 사용하여 memberService와 memberRepository를 new 할때
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 고생이 많으십니다. 질문이 있어 글 남깁니다.스프링 입문 강의의 회원 서비스 테스트 강의 16:30 지점에서, memberService와 memberRepository 객체를 생성하기 위해 new를 할 때,MemoryMemberRepository memberRepository = new MemoryMemberRepository(); MemberService memberService = new MemberService(memberRepository);위와 같이 해 주지 않고,MemoryMemberRepository memberRepository; MemberService memberService; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); }이렇게 해 주는 이유가, 각각의 테스트가 새로운 각각의 객체를 가지고 독립적으로 실행되어야 하기 때문인지 궁금합니다. 만약 그렇다면, AfterEach() 메서드를 사용하여 memberRepository를 계속 clear 해주고 있기 때문에 beforeEach()로 각 테스트마다 새로운 객체를 사용해 줄 필요가 없을텐데, 왜 beforeEach()를 사용하여 새로운 객체를 각 테스트 메서드 실행때마다 만들어 주도록 하는지도 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ValidationItemControllerV4_edit() 에 Item을 새로 생성해서 업데이트 하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? y3. 질문 잘하기 메뉴얼을 읽어보셨나요? y[질문 내용]안녕하세요 ValidatioinItemControllerV4_edit()과 ItemRepository 부분에서 궁금한 점이 생겼습니다위의 코드에서 받아온 ItemUpdateForm으로 Item 객체를 새로 만들어서 update를 진행하는데 item객체를 새로 생성해서 업데이트 하지 않고 ItemRepository에 update()를 수정해서 아래와 같이 이미 만든 ItemUpdateForm객체를 이용하면 안되는 이유가 있을까요?아래 ValidationItemControllerV4_edit() 검증 성공 로직
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 시큐리티와 스프링 인터셉터
안녕하세요. 강의의 내용과는 직접적인 관련은 없지만, 궁금한게 생겨서 질문 드립니다.요 근래에 스프링 부트를 이용하여 프로젝트를 진행하던 중, 로그인 관련 기능을 구현할 때 스프링 시큐리티를 사용하게 되었는데요.스프링 시큐리티를 공부하다보니 스프링 시큐리티가 대부분 필터를 이용해서 구현된 프레임워크임을 알게 되었습니다.서블릿 필터와 스프링 인터셉터가 유사한 기능을 하는 것으로 학습하였는데, 스프링 시큐리티의 내부 구현에서 스프링 인터셉터 대신 서블릿 필터를 주로 사용한 이유가 있을까요?오피셜인 이유가 있으면 좋겠지만, 없다면 개인적인 뇌피셜이라도 궁금하네요.감사합니다.