묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프론트 컨트롤러 3,4에서 세션 사용시
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ControllerV3 or ControllerV4에서 세션 접근 희망시 문제"mvc프레임워크 만들기의 프론트 컨트롤러 버전 3,4" 처럼, request와 response 객체를 각각의 컨트롤러에 넘겨주지 않고 paramMap으로 넘겨주는 식으로 개발하게 되면 컨트롤러 안에서 세션 접근이 안 될 것으로 생각되는데 맞을까요?이런 경우 :1. 각각의 컨트롤러 자체에서 세션에 접근할 일이 없게 구성한다 (예: 세션 정보 확인 후 해당되면 별도의 값을 넘겨주는 로직 등을 컨트롤러 밖에서 진행)2. paramMap을 string Obejct 형식으로 구성하여 세션도 함께 넘겨준다.2.1 paramMap과 더불어 session객체를 넘겨준다.3. 필요한 경우 굳이 paramMap을 넘겨주는 것이 아닌 기존의 request, response 를 넘기는 방식으로 구성한다.등의 대안이 떠오르는데..상황마다 다르겠지만 혹시 이런 경우 일반적으로 어떤 식으로 개발을 진행하는지, 아니면 처음부터 별개의 방법이 있는 것인지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginController
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Logincontroller @getmapping함수에서 이 함수는 /loginurl로 온 http get방식일때 loginform을 view로 반환해주는 역할을 하는거고 아래 @postmapping에서 @modelattribute로 고객 아이디, 비번가지고 로그인처리하는 로직이 들어가는데 저기 @getmapping에서는 @modelattribute loginForm을 인자로 담는 이유는 무엇인가요? 사용하지도 않고 view를 반환하는데요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
TimeTraceAop 함수작동원리
@Component @Aspect public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") public Object execute(ProceedingJoinPoint joinPoint) throws Throwable { long start = System.currentTimeMillis(); System.out.println("START: " + joinPoint.toString()); try { return joinPoint.proceed(); } finally { long finish = System.currentTimeMillis(); long timeMs = finish - start; System.out.println("END: " + joinPoint.toString()+ " " + timeMs + "ms"); } } } 강의 후반부 aop예제에서 이 함수의 작동원리가 try안에 있는 joinPoint.proceed()를 통해 다음 메서드로 넘어가고 마지막메서드를 실행하고 그다음에 finally문이 실행되어서 메서드실행역순으로 END time이 출력되는건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginCheckFilter에서 예외처리를 왜하는건가요?
1. 어떤예외가 발생할것이라고 생각해서 예외처리를 해주는것인가요?- 세션에 오류가있는 경우 예외가 발생할 수 있음- 리다이렉션에서 오류가 발생할 수 있음-> 그래서 try-catch사용함인건가요? 2. 예외되던지기를 사용하는이유해당 메서드에서 예외를 처리해버리면 정상요청으로 처리해버림. 그래서 was까지 올려주기 위해 예외를 던짐 < 이라고 하셨어요.왜 정상요청으로 처리하는건지.. was까지 올려주면 뭐가 달라지는건지..모르겠습니다was까지 올려줘야 해당 에러에 대한 대응 페이지를 잘 만들어주는데 제가 처리해버리면 성공에 대한 페이지를 만들어주기때문인가요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
사진업로드
사진업로드 하는 방법으로 파일크기나 동영상파일 형식으로 불러온다면 동영상 업로드하는 방법과 같은 건가요?
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
파일사용
따라하다가 오류가 났는데 고쳐지지가 않아서 선생님 소스를 사용하려고 합니다그런데 해당챕터 파일전체를 사용하려고 하니 사용이 되지 않아서 방법이 있는지 문의 드립니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP 응답 데이터 - json
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.response.setContentType을 application/json로 지정하면 utf-8을 사용하도록 정의되어 있다고 하셨는데 utf-8을 제외하고 실행하면 한글이 깨집니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring.io 2.7.8 버전
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 부트 2.7.8 사용 중 입니다. core Features 에서 welcome Page 를 못찾겠네요 어디 있을까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 27분쯤에 궁금한게 생겨서 질문드립니다.
강의 27분쯤에 하신 말씀이 헷갈려서 질문드립니다.강의 자료와 강의 내용에보면'뷰 객체를 통해서 HTML화면을 렌더링한다.' 와'JSP로 포워드해서 JSP를 렌더링한다.'이 두 말이 다른건가요? JSP를 렌더링 하는게 곧 HTML화면을 렌더링하는거 아닌가요?동작 순서를 보면 JSP를 렌더링하고 그다음에 HTML화면을 렌더링 하는건가요?그리고 dispatcher.forward() 를 하는건 JSP로 포워드해서 JSP를 렌더링하는 동작인가요?구글링 하여 알아봤는데, JSP를 렌더링하여 HTML을 만들어서 클라이언트에 응답한다. 서버는 JSP를 렌더링해서 HTML을 만들어서 클라이언트한테 주면 클라이언트는 받은 HTML을 렌더링해서 HTML화면을 보여주는것이다 라고 이해하면될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이에서 실행버튼이 사라졌어요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]cmd에서 빌드하고 localhost:8080에서 구경하는데 블루스크린 떠서 다시켰습니다. 그 후 인텔리제이에서 다시 실행하려하니 실행 버튼이 사라졌어요..이런식으로 파일도 바뀌어잇구요,,실행 버튼도 사라졌구요..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
file 관련질문
만약 쇼핑몰을 만들게 되면 판매자별로 file을 만들텐데 그러면 판매자별로 분류를 어떻게 하나요?? item.setImageFiles(storeImageFiles); -Listfile insert 부분여기에는 데이터베이스를 이용하지 않아서 여러개의 file insert시 list를 이용했는데 데이터베이스에 넣을 땐 List를 어떻게 넣어야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test method에 throws Exception
테스트 메소드는 production 코드에서 exception을 던질수 있기 때문에 웬만하면 throws Exception을 추가하는게 좋다.라는 내용을 보았는데, 김영한 님의 다른 강의에서 소개하신 live templates를 보면 throws Exception을 던지는 것을 기본 템플릿으로 사용하시더라고요.프로덕션 코드에서 exception을 던지지 않더라도 테스트 코드에서 관례상 throws Exception을 던지는 것이 좋을까요? 영한님은 어떤 의미에서 template에 throws Exception을 추가하셨는지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Component 등록시 ApplicationContext 유무
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요복습중에 궁금한점이 생겨서 질문드립니다. @Component가 스프링 컨테이너에서 스프링 빈으로 등록되기 위해선 우선 스프링 컨테이너가 필요로 한데 이를 생성하기 위해서 ApplicationContext가 필요로하다고 스프링 핵심강의때 배웠었습니다. 그런데 현재 강의에서 applicationContext의 유무를 확인할 수 없어서 질문남깁니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ModelView
안녕하세요. 복습하다가 궁금한 점이 생겨서요.public class ModelView필드에 private<String, Object> model = new HashMap<>();으로 선언이 되어 있는데컨트롤러에서 ModelView mv = new ModelView("save-result");mv.getModel().put("member", member);getModel()메서드가 model 객체를 반환하는데 이 model 객체는 private이므로 put을 못하지 않나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
urlPatterns관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요!강의내용에서 hello-form.html에 접근하기 위해 http://localhost:8080/basic/hello-form.html 을 이용했습니다. 제가 만약에 서블릿을 하나 만들고 urlPatterns를 /basic/hello-form.html 으로 만들면 hello-form.html 파일로 직접 접근하는 것이 아닌 제가 만든 서블릿으로 접근하는 것을 확인했는데요. 이 경우에는 url접근 우선순위를 1. 서블릿 Url매핑 찾기 2. 경로 정보를 이용해서 직접 html을 내려주기 이렇게 이해해도 되는지 궁금합니다!또한 이처럼 url을 겹치도록 설계하는 것 자체를 지양해야하는것인지 궁금합니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
수업 정리..
강의 듣고 학습한 내용을 github에 정리하고 싶은데출처를 밝히면 가능할까요?안된다면 하지 않겠습니다.감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberService에 @Transactional 붙이는 이유
jpa를 사용하기 이전( 순수jdbc,jdbctemplate)에는 MemberService 클래스에 @Transactional을 안달아줬는데 왜 jpa를 사용하게되면 갑자기 MemberService클래스에 @Transactional 어노테이션을 달아줘야되나요???
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
response.sendRedirect("/login?redirectURL=" + requestURI);
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. 강의 정말 잘 보고 있습니다. 그런데 스프링 인터셉터 - 인증 체크 강의 하실 때 public class LoginCheckInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null) { log.info("미인증 사용자 요청"); //로그인으로 redirect response.sendRedirect("/login?redirectURL=" + requestURI); return false; } return true; }코드를 위에서처럼 작성하시는데,여기서 제가 궁금한 점은 response.sendRedirect("/login?redirectURL="+requestURI)이 부분인데, 이 때 sendRedirect함수를 호출 했다고 해서 바로 rediredt 요청을 하는건가요? 아니면 제가 생각했을 때는 자료를 참고해보면 인터셉터에서 제한이 걸려서 WAS까지 다시 올라 간 다음에 그때 서야 서버 내부에서 redirect를 하는 건가요? 질문을 정리하면 sendRedirect를 호출할 때 서버에서 이뤄지는 과정이 어떻게 되는 건지,,, 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 구현시 세션에 담을 정보
세션에 담을 정보는 핏하게 최소한의 정보를 담으라고 말씀하셨는데그러면 memberService에서 로그인용으로 회원uid와 id, 이름 정도만을 반환해주는 매서드를 만들어서 해야 하나요?혹시 비밀번호등 회원의 모든 정보를 반환해서 세션에 담을 경우엔 보안상의 위험이 있는건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingResult
@Controller에는 bindingResult의 message를 국제화하여 messages.properties 한꺼번에 저장을 했는데 REST에서는 spring.messages.basename=messages,errors 를 설정해주어도 안되고 따로 message처리 설정을 해야하나요?