묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 질문입니다.
세션 만들기//로그인 성공 처리 //세션이 있으면 있는 세션 반환, 없으면 신규 세션 생성 HttpSession session = request.getSession(); //세션 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); 세션 지우기HttpSession session = request.getSession(false); if (session != null) { session.invalidate(); } 세션 확인하기HttpSession session = request.getSession(false); if (session == null) { return "home"; }세션 만들기에서는 session.setAttribute 로 정보를 저장도 했다가, 지우기 혹은 확인하기에서는 쿠키의 역할을 하는 것 같은데 session은 쿠키 + 쿠키저장소(SessionManager의 HashMap) 두 역할을 모두 하는 건가요 ?그게 아니라 session은 cookie와 같다면 서버 내부적으로 어디에 저장돼서 어떻게 확인할 수 있는 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@NotBlank 질문입니다
예를 들어 @NotBlankString nickName 이런 경우에nickName :"12 34 56" 이런 닉네임도 안 되는 건가요??아니면 nickName : " " << 이런 경우만 금지하는 건가요??" " 만 금지하는 것인지, 문자열 속에 " "를 금지하는 것인지 궁금합니다 ..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
price에 qq를 넣었을 때 오류 발생과정
@PostMapping("/add") public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { if (item.getPrice()==null || item.getPrice() <1000 || item.getPrice() > 1000000){ bindingResult.addError(new FieldError("item","price", item.getPrice(), false, null, null,"가격은 1,000 ~ 1,000,000 까지 허용합니다.")); } }price에 qq를 넣으면 오류가 2개 발생합니다.Field error in object 'item' on field 'price': rejected value [qq]; codes [typeMismatch.item.price,typeMismatch.price,typeMismatch.java.lang.Integer,typeMismatch]; Field error in object 'item' on field 'price': rejected value [null]; codes []; arguments []; default message [가격은 1,000 ~ 1,000,000 까지 허용합니다.]addItemV2()메소드 발생 전 스프링에서 HTTP 전송을 통해 넘어온 itemName 데이터에 의한 FieldError, 그리고 addItemV2()메소드에서 같은 이유로 발생한 FieldError 먼저 스프링 FieldError의 rejectedvalue에는 qq가 들어갑니다.(typeMismatch 오류가 발생하기전부터 알고있던)그 다음 개발자가 직접 작성한 FieldError의 rejectedvalue에는 null 이 들어갑니다.(Integer타입에 String 타입이 들어갔으므로)그 다음 qq, null 중 bindingResult에 먼저 들어간 qq가 출력됩니다. https://www.inflearn.com/questions/309088/bindingerror이 글을 보다 질문 드립니다.위와 같이 이해했는데 맞게 이해한 것 일까요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
findCookie 에서 쿠키가 2개인 경우는 없나요 ?
아이디가 2개이고, 이 2개의 아이디로 모두 로그인을 하면서 쿠키를 발급 받아가지고 클라이언트(브라우저)에 SESSIN_COOKIE_NAME을 이름으로 갖는 쿠키가 2개인 경우는 없나요 ?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@CookietgValue도 객체를 자동으로 생성해주나요 ?
HomeController의 homeLogin메서드의 파라미터 중 memberId에는 @ModelAttribute가 붙지 않았는데LoginController에서 오는 response의 Cookie를 자동으로 어떻게 받는 건가요 ?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 -필터,인터셉터
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]로그인 -필터,인터셉터부분에서 왜 uuid를 생성하나요?생성하는 이유와 생성하지 않을시 문제를 알려주세요ㅕ
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP 회원목록 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]save 까지는 잘 되는데 JSP 회원목록을 조회할때 500에러가 뜹니다.members.jsp 코드입니다bulid.gradle 입니다
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
requestParamV4 메서드 관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.requestParamV4@RequestParam의 required 기본값이 true라고 말씀해주셨는데 username을 빼고 보내도 오류가 안나서 질문드립니다.@RequestParam이 직접적으로 명시되어 있지않으면 required false가 기본값인 걸까요?http://localhost:8080/request-param-v4?age=20 요청
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
GetMapping 에서 @ModelAttribute 사용 이유
영상 8:57 에서 @GetMapping("/add") 에서 파라미터로 @ModelAttribute를 받는 이유가 무엇인가요 ? PostMapping이 아니라 GetMapping일 때는 데이터가 넘어오지 않기 때문에 사용할 이유가 없는 것 아닌가요 ??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 한글 깨짐
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]localhost:8080/hello-static.html에서 한글이 깨져서 출력됩니다.인코딩 관련된 질문에서 달아주신 글 모두 확인 후 전부 변경했는데 해결이 되지 않습니다..
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문에 대하여 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하십니까, 자주하는 질문 에서 학습방법을 봤는데코드를 쭉 따라하는식 방법이 적혀있었는데, 이렇게 따라만 해도 공부가 되는게 맞을까 혹시나 하는 마음에 따로 질문을 올리게 되었습니다.따로 국비학원 수료 없이 학교 졸업하자마자 취업했는데 백엔드 스프링을 사용한다해서 선생님 강의 커리큘럼을 따라갈려고합니다. 스프링을 배우는데 자바 기본 지식이 필요하다해서 자바의 정석 유튜브를 먼저 보고, 부족하지만 최대한 자바 기본 문법개념 같은걸 숙지한 상태에서 선생님 영상 시청하고있습니다. 선생님의 이론수업이 정말로 재밌고 스프링 입문하는데 좋은걸 알겠는데 이론설명뒤에 선생님이 치시는 코드가 무엇을 의미 해석이 안되고, 코드형식(?) 코드 구조 (문법?) 이게 정말 와닿지 않는 상태이다보니 ,영상을 보고 타이핑하니깐 공부 하는 느낌이 안들어서 걱정이 됩니다. 프로그래밍 능력, 자바기초실력이 부족해서 이런 느낌을 받는 거 같은데 회사 실무에 도움이 될까 걱정이 됩니다.처음 취직한 회사라서 최대한 적응하고 회사에 도움이 되는 개발자가 되어보고싶은데 어떠한 방식으로 공부를 해야할 지 조언이 가능할까요?(혹시 책이나 강의같은걸 추천해주시면 감사하겠습니다.)
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
네트워크 이름이 안 나와요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 원래 네트워크 이름이 나와야 하는데 안 나와요 이거 어떻게 해야 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
등록화면에서 new Item() 넣는 이유
@GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v1/addForm"; }저는 item에 빈값을 만드는 이유는 등록화면 처음 들어갈때 input에 item을 빈값으로 두기위해(안하면 There was an unexpected error (type=Internal Server Error, status=500 이되니까)만들었다고 생각이 듭니다. 하지만 강의14:08 에서 등록화면에 model.addAttribute("item", new Item());빈값을 넘긴 이유 중 하나가 검증에 실패했을 때 item을 재사용할 수 있게 하기 위해서라고 말씀하셨는데굳이 따지자면 재사용을 할 수 있는 건이 때 item에 빈값을 넣어줘서가 아니라@PostMapping의@PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { }@ModelAttribute Item item@ModelAttribute에서 item에 값을 넣어줘서 (물론 위에서 생성된 같은 item이기는 하지만)그 값이 재사용될 수 있는 거 아닌가요?? 정리하면우리가 검증이 실패해도 재사용 할 수 있는 건@GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v1/addForm"; }에서 new Item()때문이 아니라@PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { }@ModelAttribute Item item 때문이 아닌가 라는 생각이 듭니다.답변해주시면 정말 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ModelAttribute ItemSaveForm form에 대해 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]빈이름을 @ModelAttribute("item")으로 지정하지 않고 @ModelAttribute ItemSaveForm form로 사용했을 경우 모델이 itemSaveForm으로 넘겨지는 것으로 알 고 있습니다.그래서 모델을 item으로 하지 않고 itemSaveForm으로 넘겼을 때 addForm.html을 수정해보려고 했는데th:object"itemSaveForm"로 변경하여도 해당 모델이 아래처럼 노란줄으로 불러와지지 않습니다.모델이름은 itemSaveForm로 넘겨졌을텐데왜 itemSaveForm로 뷰템플릿이 접근하는지 못하는지에 대해 궁금해 질문남깁니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MyView.java 내 render 질문입니다.
현재 프로젝트 java SE 1.8 사용중입니다.model.forEach(key, value) -> request.setAttribute(key, value)이 부분에서 앞부분이 변수여야한다면서 에러가 생기는데요,forEach 자동 생성 시에 forEach(action) 으로 자동완성이 되더라구요. 다른 답글에서 영한님이 자바 8 문법 지원을 하게끔 시도해보라고 답변하신 걸 봤는데,어떻게 해야하는지 감이 안잡힙니다. 추가적으로 iterator 구문도 안되어서 일단 while문으로 변경해서 사용중입니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
유연한 컨트롤러1 - v5 어댑터 목록조회,핸들러어댑터는 같은 클레스에서 작동하는거죠?
안녕하세요 유연한 컨트롤러1 - v5에 궁금한점이 있어서 글남깁니다. 핸들러 어댑터 목록은 ControllerV3HandlerAdapter 클레스의 supports 함수로 판단하고핸들러 어댑터에서 컨트롤러 호출하는거는 ControllerV3HandlerAdapter 클레스의 handle 함수로 v3에 만든거 사용하고 결과 받아서 다시 프론트로 넘겨주던데 저는 원래 네모 한칸당 한 클레스로 파일 나눠 구별하는 느낌인줄 알았는데 함수로 나눠 같은 클레스에서 작동한거죠?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
템플릿 엔진과 뷰 템플릿에 대한 질문
안녕하세요. 멋진 강의 잘 수강하고 있습니다!강의를 듣다보니 용어에 대한 궁금함이 생겨 질문합니다.템플릿 엔진은 HTML 문서에 동적으로 생성하는 JSP나 타임리프와 같은 소프트웨어를 지칭하는 것으로 이해했습니다.궁금한 점은 뷰 템플릿은 무엇을 의미하는 것인가요?템플릿 엔진으로 생성된 결과물을 의미하는 것인지,템플릿 엔진과 동일한 의미인지,템플릿 엔진의 HTML 문서에 동적으로 생성하는 기능을 의미하는 것인지명확하게 이해가 되지 않아 질문을 남깁니다 🥲
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무에서 어떻게 사용하는지 질문입니다.
package hello.itemservice.web.validation; import hello.itemservice.domain.item.Item; import hello.itemservice.domain.item.ItemRepository; import hello.itemservice.domain.item.SaveCheck; import hello.itemservice.domain.item.UpdateCheck; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Slf4j @Controller @RequestMapping("/validation/v3/items") @RequiredArgsConstructor public class ValidationItemControllerV3 { private final ItemRepository itemRepository; @GetMapping("/{itemId}") public String item(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "validation/v3/item"; } @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v3/addForm"; } 클래스단의 리퀘스트 맵 마지막에 / 를 붙이는 것과 안 붙이는 것중 뭐가 정석인가요?클래스단에서@RequestMapping("/validation/v3/items/")이렇게 한다면 메소드에는 전부 /를 빼고 add ,get 만 사용하면 될텐데 뭐가 암묵적인 룰(?) 인 것일까요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
urlPatterns 값이 같을 경우에 어떻게 처리가 되나요?
FrontControllerServletV2의 urlPatterns를 FrontControllerServletV1과 같이 /front-controller/v1/* 로 바꾸고, http://localhost:8080에 접속하여 FrontController - v1에 있는 회원가입이나 회원목록을 들어가면 FrontControllerServletV1로 실행이되는데 왜그런지 궁금합니다.간단히 이야기하자면 urlPatterns 값이 같을 경우에 어떻게 처리가 되는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@NotNull과 @NotBlank 사용 차이
@NotBlank는 null + 공백을 허용하지 않고 @NotNull은 null만 허용하지 않으니 빈칸은 입력을 허용인 것이 맞나요? 그렇다면 Integer 타입에는 @NoutNull을 붙이셨는데, 여기에는 어차피 빈칸이 들어가면 안되기 때문에 @NotBlank를 사용 하는게 낫지 않나요?? 어떤 의도로 @NotNull은 사용하셨는지 궁금합니다.