묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
웹에서 hello를 에러가 뜹니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 내용]컴퓨터를 포멧하고 인텔리제이를 깔아서 시작했는데 jdk가 설치 안되서 그런 걸까요? 어떤 것이 문제인지 모르겠습니다
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Spring MVC에서 model의 역할
model객체에 대해서 궁금한 점이 있어서 질문 드립니다.일단 강의를 들으면서 dispatcherServlet 구조에 대해서 간략하게 정리한 내용입니다.개발자가 model 객체를 파라미터로 등록후 view에 담길 정보를 저장하고 Controller 메소드를 만듬-> 해당 URL에 접속하면 스프링이 dispatcherServlet의 doDispatch() 실행HandlerAdapter ha = this.getHandlerAdapter(mappedHandler.getHandler());-> doDispatch에서 해당 Controller에 맞는 어댑터를 찾고 mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); -> (handler, request, response)를 가지고 ModelAndView 객체를 생성 이후 processDispatchResult()에서 render()를 실행render()에서는 mv객체 정보를 바탕으로 view의 render()함수를 사용해서 model에 있는 정보를 request.setAttribute()를 사용해서 저장하고 view를 반환함제가 model에 있는 정보를 request의 attribute객체에 담는 함수를 디버깅모드로 찾아봤는데 강의에서 구현한 코드와 거의 유사하게 작성된 것을 발견했습니다. 그럼 model 객체를 단순히 request의 attribute객체에 데이터를 쉽게 전달하기 위해서 사용한다고 생각해도 되는건가요? 그럼 model를 사용하지 않고 request에 직접 접근해서 저장하는 방법도 있을 텐데 스프링에서 model 객체를 만든 이유가 궁금합니다.긴글 읽어주셔서 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
request값으로 뭘 넣어야할지 잘 감이 안옵니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]김영한 강사님의 mvc와 jpa 수업을 어느정도 듣고 프로젝트를 참가하였는데 종종 까먹어서 다시 와서 듣곤 합니다. 근데 최근 프로젝트를 하면서 계속 헷갈리는게 request 값을 어떻게 넣어줘야할지 모르겠습니다...restController를 만들고있는데 만약 댓글 생성하는 컨트롤러를 만든다고 치면, board_Id는 @pathvariable을 통해서 가져와 getID 하면 된다고 치지만. 글을 작성하는 User는 어떻게 받아와야할지... 그냥 냅다 request에 User user를 받아와도 되는건지 헷갈립니다.. 프론트를 안해봐서 그런지 더 헷갈리는거같아요. 만약에 댓글을 작성하는 컨트롤러를 만든다고 하였을 때, User user, @pathvariable board_id, comment comment 라고 한다면 comment는 form에서 Post로 값이 넘어오는 건 알겠는데 User같은 경우는 어떻게 받아야하나요..?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 자막 오류입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]여기에 질문 내용을 남겨주세요.HTTP 요청 데이터 - POST HTML FORM 강의 중28초 ~ 49초까지 자막 오류가 있습니다 수정 부탁드립니다.첫 자막은 제가 수정했고 그 이후 자막 추가해주시면 될 것 같습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 데이터베이스 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]test.mv.db 파일 생성된 것 확인하고 그다음에 jdbc:h2:tcp://localhost/~/test이거 복사 붙여넣기 해서 연결 눌렀더니 사진처럼 연결이 안되네요 이거 관련된 질문 찾아봤는데 파일 지우고 다시 만들라는데 윈도우 cmd에서 touch 명령어가 안먹히는데 어떡하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
요청 로그 남기기
요청로그를 남길때 인터셉터보다 서블릿 필터에서 남기는게 더 좋지 않나요?왜냐하면 mvc로 진입하기 이전에 문제가 발생하면 로그 자체도 못남길수 있을텐데처음에 더 앞단인 서블릿 필터에서 요청 로그를 남기는게 좋지않나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메시지, 국제화 처리 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]메시지, 국제화 처리를 thymeleaf에서는 #{} 로 처리를 하지만 리액트와 협업을 할 때는 어떻게 메시지, 국제화 처리를 하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 설치부터 설정까지 강의를 봐도 안나와있어서 문의드려요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 입문 수업을 듣고있는데 처음부터 막혔어요 ㅜㅜ 인텔지제이 설치부터 설정을 처음부터 어떻게 해야하나요 강의에서는 인텔리제이가 이미 깔려있고 설정도 어느정도 마친상태로 하던데 어떻게 해야하냐요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링은 아닌데 강사님께 궁금한점.....
우아한 형제들에서 실제 개발하실 때 개발 방법론을 적용해서 개발을 하고 그것을 모두가 지킬 수 있게 교육(?) 같은 것도 진행하나요 ?? 애자일 방법론 이런 것들이 잘 적용되며 효율적이었는지가 궁금합니다....넘 강의 외적인 질문이라면 죄송합니다...
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servlet 관련 코딩 질문
실제 코드를 짤땐 servlet 자체를 쓰지 않고 쓰기 좋게 추상화되어서 MVC 패턴을 사용하는(?)게 맞지요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
글로벌 예외 처리를 서블릿?
스프링으로 rest api 서버를 만들때 RestControllerAdvice를 사용하여 컨트롤러 이하 레벨의 예외를 공통으러 처리하는데 서블릿 필터를 이용하여서도 공통 예외 처리가 필요할까요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 vs 스프링 부트
선생님 안녕하세여 강의 열심히 듣고 있는 학생입니다.다름이 아니라 프로젝트 제작 하려고 하는데 스프링과 스프링 부트 중에 어떤 걸 더 추천하시나요? 선생님 의견이 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 난이도
안녕하세요. 컴퓨터공학과 3학년학생입니다. 백엔드에 관심이 생겨 스프링 강의를 들으려 강의를 찾아보던중 인프런의 김영한님의 스프링 강의를 알게 되었습니다. 김영한님 강의가 어렵다는 말도 있던데, 스프링 완전 초보자가 들어도 잘 이해할 수 있을지 궁금합니다! 저는 로드맵에서 가장 첫 무료 입문 강의(코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 )를 초반만 조금 들었봤는데 조금 난이도가 있더라고요. 이게 전체적인 흐름을 알려주는거라서 어려운것인가요? 로드맵 뒤에 스프링 핵심 원리 - 기본편도 비슷한 난이도인가요? 더 쉬운편인지 궁금합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
섹션 6. 로그인 처리1
@PostMapping("/logout") public String logout(HttpServletResponse response) { expired(response, "memberId"); return "/"; } private void expired(HttpServletResponse response, String cookieName) { Cookie cookie = new Cookie(cookieName, null); cookie.setMaxAge(0); response.addCookie(cookie); }로그아웃 할 때, 쿠키에 setMaxAge(0)으로 쿠키를 날리는 것은 이해가 되는데, 쿠키를 새로 만들어서 보내는 이유는 뭔가요? 원래 있던 쿠키의 setMaxAge(0)으로 바꾸는 것도 아니고, new Cookie를 만들어서, 새로 만든 쿠키의 기간을 0으로 맞추는데 어째서 원래 있던 쿠키가 사라지는 건지 모르겠습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd에서 조작하는 법을 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]일단 h2 다운받기는 했는데 cmd에서 조작하는 법을 모르겠습니다. 아무거나 쳐봐도 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고만 뜹니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
김영한 강사님 스프링 로드맵을 수강하려고 합니다.
백엔드 프로젝트로데이터베이스를 사용하지 않는 게시판을 만들어보고 싶은데김영한 강사님의 로드맵스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 핵심 원리 - 기본편 현재 강의 모든 개발자를 위한 HTTP 웹 기본 지식 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술스프링 MVC 2편 - 백엔드 웹 개발 활용 기술스프링 DB 1편 - 데이터 접근 핵심 원리스프링 DB 2편 - 데이터 접근 활용 기술스프링 핵심 원리 - 고급편실전! 스프링 부트 중 어디까지는 들어야지 제가 원하는 간단한 프로젝트를 진행할수 있을지 궁금합니다.감사합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
h2 database 연결 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]선생님 h2에 서버 모드로 연결하려고 할 때 해당 오류가 발생합니다. 도와주세요 ㅜㅜ 도저히 저의 힘으로 해결 할 수가 없습니다.IO Exception: "/Users/jonghyunlee/test outside /opt/homebrew/var/sonarqube/data" [90028-224] 90028/90028 (도움말)org.h2.jdbc.JdbcSQLNonTransientException: IO Exception: "/Users/jonghyunlee/test outside /opt/homebrew/var/sonarqube/data" [90028-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.engine.ConnectionInfo.setBaseDir(ConnectionInfo.java:250) at org.h2.server.TcpServerThread.run(TcpServerThread.java:152) at java.base/java.lang.Thread.run(Thread.java:840) at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) at org.h2.engine.SessionRemote.done(SessionRemote.java:619) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:148) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:438) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:330) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) at org.h2.util.JdbcUtils.getConnection(JdbcUtils.java:288) at org.h2.server.web.WebServer.getConnection(WebServer.java:811) at org.h2.server.web.WebApp.login(WebApp.java:1039) at org.h2.server.web.WebApp.process(WebApp.java:227) at org.h2.server.web.WebApp.processRequest(WebApp.java:177) at org.h2.server.web.WebThread.process(WebThread.java:154) at org.h2.server.web.WebThread.run(WebThread.java:103) at java.base/java.lang.Thread.run(Thread.java:1583)
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상품 등록에서 상품명을 빈 칸으로 넣었을 때
html <form action="item.html" th:action th:object="${item}" method="post"> <label for="itemName" th:text="#{label.item.itemName}">상품명</label> <input type="text" id="itemName" th:field="*{itemName}" th:errorclass="field-error" class="form-control" placeholder="이름을 입력하세요"> <div class="field-error" th:errors="*{itemName}"> 상품명 오류 </div> controller @PostMapping("/add") public String addItemV3(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { log.info("objectName={}", bindingResult.getObjectName()); log.info("target={}", bindingResult.getTarget()); //검증 로직 if (!StringUtils.hasText(item.getItemName())) { bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, new String[]{"required.item.itemName"}, null, null)); } if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) { bindingResult.addError(new FieldError("item", "price", item.getPrice(), false, new String[]{"range.item.price"}, new Object[]{1000, 1000000}, null)); } if (item.getQuantity() == null || item.getQuantity() >= 9999) { bindingResult.addError(new FieldError("item", "quantity", item.getQuantity(), false, new String[]{"max.item.quantity"}, new Object[]{9999}, null)); } //특정 필드가 아닌 복합 룰 검증 if (item.getPrice() != null && item.getQuantity() != null) { int resultPrice = item.getPrice() * item.getQuantity(); if (resultPrice < 10000) { bindingResult.addError(new ObjectError("item", new String[]{"totalPriceMin"}, new Object[]{10000, resultPrice}, null)); } } //검증에 실패하면 다시 입력 폼으로 if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return "validation/v2/addForm"; } //성공 로직 Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v2/items/{itemId}"; } log 2024-06-26T10:44:00.155+09:00 INFO 22592 --- [nio-8081-exec-8] h.i.w.v.ValidationItemControllerV2 : target=Item(id=null, itemName=, price=null, quantity=null)상품 등록 창에서 전체 칸을 빈칸으로 넣어서 로그를 출력했을 때,id, price, quantity는 null이 들어갔는데 itemName는 null이 아니라 그냥 빈칸인가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Session ID의 저장 위치는 어디인가요?
서버가 받은 요청의 JSESSIONID가 A12345이고, 서버 측 HTTP Session의 사용자 {username: "john123"}의 JSESSIONID가 A12345라고 가정하겠습니다. 그럼 A12345 == {username: "john123"}인데, A12345라는 세션ID 요청을 받았을 때 john123이라는 사용자에 대한 정보를 제공해야 합니다. 이때 서버에서 Session ID를 저장하는 곳은 어디인가요?그 클래스는 아래와 같은 작업을 수행할 것입니다. public void addSession(String sessionId, HttpSession session) { sessions.put(sessionId, session); } public HttpSession getSession(String sessionId) { return sessions.get(sessionId); }
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
BeanPropertySqlParameterSource
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]BeanPropertySqlParameterSource를 사용하려면해당 DTO나 도메인에 getter setter or @Data가 필수로 있어야 하는 게 맞겠지요?