묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컴파일러에 ‘-parameters’ 옵션 추가하는 방법을 알려주세요
build.gradle에compileJava { options.compilerArgs << '-parameters'}를 추가했는데 안됩니다.IDE 또는 빌드 도구(Gradle, Maven 등)의 설정에서 Java 컴파일러 옵션에 ‘-parameters’를 추가하라고 하는데, 인텔리제이 메뉴의 설정에서 하는건지, 어떻게 하는건지 자세한 방법을 알려주세요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
18:06 로그인을 하려도 리다이렉트가 안되는데 이유가 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]체크필터 코드 입니다.package hello.login.web.filter; import hello.login.web.session.SessionConst; import lombok.extern.slf4j.Slf4j; import org.springframework.util.PatternMatchUtils; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @Slf4j public class LoginCheckFilter implements Filter { private static final String[] whitelist = {"/", "/members/add", "/login", "/logout", "/css/*"}; @Override public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String requestURI = httpRequest.getRequestURI(); HttpServletResponse httpResponse = (HttpServletResponse) response; try{ log.info("인증체크 필터 시작 {}", requestURI); if(isLoginCheckPath(requestURI)){ log.info("인증 체크 로직 실행 {}", requestURI); HttpSession session = httpRequest.getSession(false); if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null){ log.info("미인증 사용자 요청 {}", requestURI); // 로그인 페이지로 리다이렉트 httpResponse.sendRedirect("/login?RedirectURL=" +requestURI); return; } } chain.doFilter(request, response); }catch (Exception e){ throw e; // 예외를 로길 가능 하지만, 톰캣까지 예외를 보내주어야 한다. }finally { log.info("인증 체크 필터 종료"); } } /** * 화이트 리스트의 경우 인증체크 필요 없음 */ // private boolean isLoginCheckPath(String requestURI){ // for (String s : whitelist) { // if (requestURI.equals(s)){ // return false; // } // } // return true; // return !PatternMatchUtils.simpleMatch(whitelist, requestURI); // } /** * 화이트 리스트의 경우 인증 체크X */ private boolean isLoginCheckPath(String requestURI) { return !PatternMatchUtils.simpleMatch(whitelist, requestURI); } } 컨트롤러 코드 입니다.package hello.login.web.login; import hello.login.domain.login.LoginService; import hello.login.domain.member.Member; import hello.login.web.session.SessionConst; import hello.login.web.session.SessionManager; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.servlet.server.Session; import org.springframework.stereotype.Controller; 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.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Slf4j @Controller @RequiredArgsConstructor public class LoginController { private final LoginService loginService; private final SessionManager sessionManager; @GetMapping("/login") public String loginForm(@ModelAttribute LoginForm form){ return "login/loginForm"; } // @PostMapping("/login") /*public String login(@Validated @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response){ if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember == null){ bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } // 로그인 성공 처리 //쿠키에 시간 정보를 주지 않으면 세션 쿠키임(브라우저 종료시 모두 종료됨) Cookie idCookie = new Cookie("memberId", String.valueOf(loginMember.getId())); response.addCookie(idCookie); return "redirect:/"; // 홈으로 보냄 } // @PostMapping("/login") public String loginV2(@Validated @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response){ if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember == null){ bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } // 로그인 성공 처리 // 세션 관리자 통해 세션 보관 ㅏ고 회원 데이터 보관 sessionManager.createSession(loginMember, response); return "redirect:/"; // 홈으로 보냄 } // @PostMapping("/login") public String loginV3(@Validated @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletRequest request){ if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember == null){ bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } // 로그인 성공 처리 // 세션이 있으면 있는 세션을 반환, 없으면 생셩해서 반환 HttpSession session = request.getSession(true); // 기본이 true라 생략 가능, 세션을 생성(있으면)하려면 true false일때는 세션 없으면 널일뿐 //세션에 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); // 세션 관리자 통해 세션 보관 ㅏ고 회원 데이터 보관 return "redirect:/"; // 홈으로 보냄 }*/ @PostMapping("/login") public String loginV4( @Validated @ModelAttribute LoginForm form, BindingResult bindingResult, @RequestParam(defaultValue = "/") String redirectURL, HttpServletRequest request){ if(bindingResult.hasErrors()){ return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); log.info("login? {}", loginMember); if(loginMember == null){ bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } // 로그인 성공 처리 // 세션이 있으면 있는 세션을 반환, 없으면 생셩해서 반환 HttpSession session = request.getSession(true); // 기본이 true라 생략 가능, 세션을 생성(있으면)하려면 true false일때는 세션 없으면 널일뿐 //세션에 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); // 세션 관리자 통해 세션 보관 ㅏ고 회원 데이터 보관 return "redirect:" + redirectURL; } //로그아웃 // @PostMapping("/logout") // public String logout(HttpServletResponse response){ // expireCookie(response, "memberId"); // return "redirect:/"; // } // @PostMapping("/logout") public String logoutV2(HttpServletRequest request){ sessionManager.expire(request); return "redirect:/"; } @PostMapping("/logout") public String logoutV3(HttpServletRequest request){ HttpSession session = request.getSession(false); if(session != null){ session.invalidate(); } return "redirect:/"; } private static void expireCookie(HttpServletResponse response, String cookieName) { Cookie idCookie = new Cookie(cookieName, null); idCookie.setMaxAge(0); response.addCookie(idCookie); } } 오타는 딱히 없는것 같은데 리다이렉트가 이루어지지 않습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
application.properties 새로 실행하면 코드가 사라져요
다시 실행버튼을 누르면 두번째 코드가 사라지는 현상이 발생합니다..밑에는 콘솔창 로그입니다..> Task :compileJava UP-TO-DATE> Task :processResources> Task :classes> Task :ServletApplication.main() . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.4)2024-04-05T18:12:22.774+09:00 INFO 19692 --- [servlet] [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 20.0.2 with PID 19692 (C:\Spring\servlet\build\classes\java\main started by SUN in C:\Spring\servlet)2024-04-05T18:12:22.777+09:00 INFO 19692 --- [servlet] [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2024-04-05T18:12:23.715+09:00 INFO 19692 --- [servlet] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)2024-04-05T18:12:23.726+09:00 INFO 19692 --- [servlet] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2024-04-05T18:12:23.727+09:00 INFO 19692 --- [servlet] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.19]2024-04-05T18:12:23.772+09:00 INFO 19692 --- [servlet] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2024-04-05T18:12:23.773+09:00 INFO 19692 --- [servlet] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 952 ms2024-04-05T18:12:24.053+09:00 INFO 19692 --- [servlet] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path ''2024-04-05T18:12:24.059+09:00 INFO 19692 --- [servlet] [ main] hello.servlet.ServletApplication : Started ServletApplication in 1.597 seconds (process running for 1.898)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
SendError 의 두번째 매개변수는 어디서 확인할 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용]response.sendError(404, "404 오류!");해당 코드에서 두번째 매개변수는 콘솔에도 브라우저의 응답에서도 확인할 수 없는데 왜그런걸까요?검색해보니까 server.error.include-message and server.error.include-binding-errors 이런설정들을 해보라고해서 해봤는데 그래도 응답에 포함되는거같지않아서요..ㅠ"404 오류!" 이 텍스트는 어디서 확인할 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc 1편 상품상세 실행 오류입니다.
상품상세 실행 중java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.오류 메세지가 나옵니다.https://drive.google.com/file/d/1Uqz3Fdgnh66wMES8vdChuriSCb3zXb_S/view?usp=sharing
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc1편 상품상세 오류 문의 합니다.
메서드 코딩하고 @GetMapping("/{itemid}") public String item(@PathVariable Long itemId, Model model){ Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; }html은 basic에 카피해서 tymeleat와 css 부분만 수정했습니다.<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <link th:href="@{/css/bootstrap.min.css}" href="../css/bootstrap.min.css" rel="stylesheet"> <style> .container { max-width: 560px; } </style>실행하면java.lang.IllegalArgumentException: Name for argument of type [long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.오류가 뜹니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
member.get 함수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 중 아래 부분에서 의문이 들어 질문 남깁니다.pstmt.setString(1, member.getMemberId()); pstmt.setInt(2, member.getMoney());. 이 부분에서 저희가 만든 member클래스에는 get 함수를 넣지 않았는 데 get 함수를 어떻게 쓸 수 있는 걸까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mv.getModel.put("member", member)
mv.getModel().put("member", member) 이 부분이 이해가 정말 안되고 있어서 GPT 사용해봤는데 이렇게 이해 해도 될까요? chatGPT네, 맞습니다. 일반적으로 setModel() 메서드는 새로운 모델을 설정하는데 사용됩니다. 이것은 기존 데이터를 모두 대체합니다. 반면에 getModel()을 사용하여 모델을 가져오고 put() 메서드를 사용하면, 이미 설정된 모델에 새로운 데이터를 추가하거나 기존 데이터를 변경할 수 있습니다.따라서 setModel()을 사용하면 기존 모델은 없어지고 새로운 모델이 설정됩니다. 반면에 getModel()을 사용하여 모델을 가져온 후에 put()을 사용하면, 기존 모델에 데이터를 추가하거나 변경할 수 있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 연결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.H2.bat 처음부터 이렇게뜨고 강의처럼 바꿔서 해보았는데도 안됩니다 어디가 문제인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 DB Insert 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]name이 varchar로 알고이는데 글자를 넣으면 안되고 숫자를 넣으면 되는데 뭐가 문제인가요 create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ); 이래도해서 넣었는데
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
7-6 상품 상세에서 basic/items/{itemid} 로 상품 상세을 조회하는 부분에서 오류가 납니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 대로 코드를 똑같이 따라하였고 오류 사항도 없는것같은데 basic/items 에서 상품명을 클릭해서 상품 상세로 갈때 whitelabel이 뜹니다 이유를 모르겠습니다 ㅠㅠ 상품명 클릭시 basic/items/1 과 같이 itemId는 url에 잘 뜨고 html 역시 두개다 절개경로로 열게되면 잘 나옵니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 초반 연결문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.연견을 누르면 아래와같은 오류가 나옵니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
import jdbc 문제 (jdbc.core does not exist)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예import 에 문제가 있는 것 같은데 도저히 구글링이랑 전의 질문에서도 찾을 수가 없어요... 계속 고민하다가 안돼서 질문 올려요..gradle도 했고jdk는 17 사용중이고 설정도 됐습니다그리고 C드라이브 하위에있고spring-hello 프로젝트도 C드라이브 하위에 있고intellij도 C드라이브 하위에 있습니다. +사용자 명도 tmddnjs 으로 되어있습니다도저히 없어요... 어떡하죠.... [질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 쿠키 처리 HomeController에서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]쿠키를 이용한 로그인 여부를 처리하기 위해 @RequirdArgsConstructor를 사용 하였는데 이 어노테이션은 생성자를 직접 작성하지 않도록 해주는 어노테이션으로 이해 하였는데 굳이 작성해주는 이유가 있나요?멤버리포지토리에서 값을 꺼내오기 위해 의존성을주입하여 private final MemberRepository memberRepository;를 작성해주셨는데 final을 실수로 생략 하였더니 500 오류가 발생하였습니다. 그 이유가 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
파라미터를 Map으로 조회하기 관련 질문
map<string, object>와 map<string, string> 모두 정상 수행이 됩니다. 받아들인 변수를 처리하는데 차이가 있을까요?public String requestParamMap(@RequestParam Map<String, Object> paramMap){public String requestParamMap(@RequestParam Map<String, String> paramMap){
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
단순한 궁금증으로 인한 질문 드리겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JPA사용법에 관한 강의를 듣다가 정확히 따로 정리를 하는데 스스로 정리를 어떻게 해야할 지 모르겠어서 문의 남깁니다.JpaRepository에서 findById함수 아래 코드가Member member = em.find(Member.class, id); 라고 작성이 되는데 find 괄호 안에 Member.class에 저런 ,class방식으로 작성이 되는 설명이나 이유를 좀 알려주실 수 있으실까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
<WHERE>태그 대신
<WHERE>태그 대신 WHERE 1=1 주고 강제적으로 true 준 이후에 and조건을 <if>안에 사용하는데 그게 더 안좋은 방법일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 17버전으로 업데이트했는데도 윈도우에서 빌드가 안 됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 빌드가 잘 되지않아 여러 질문글을 읽고hello-spring 폴더를 복사하여 C폴더 아래 dev 폴더를 넣어 빌드를 진행했습니다.이런 오류 내용이 뜨는데 뭐가 문제일까요? gradle 파일에서 자바 17버전을 요구하는 것을 확인헀고, 자바 17을 설치하고 환경변수 JAVA_HOME에 경로 넣기, path에서 \bin 변수 넣어 최상단으로 올리기까지 설정했습니다. cmd에서 버전확인하면 17로 나옵니다. 계속 빌드가 안 되는데 원인을 모르겠습니다 뭐가 문제일까요..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프에서 어떤 부분이 typeMismatch 오류 메시지를 출력하는 건가요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.<div class="field-error" th:if="${errors?.containsKey('price')}" th:text="${errors['price']}"> 가격 오류 </div>타임리프의 이 부분이 typeMismatch에 대한 메시지 코드인 '숫자를 입력해주세요' 를 출력하는 건가요? 아니면 <input type="text" id="price" th:field="*{price}" th:errorClass="field-error" class="form-control" placeholder="가격을 입력하세요">이 부분의 th:field가 오류 감지하고 출력하는 건가요
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
커넥션에 관한 질문 드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요 커넥션과 관련된 질문을 드리고 싶습니다.해당 강의에서 커넥션이 여러번 반복되어 나오는데커넥션 개념이 정리가 잘 되지 않습니다.애플리케이션 로직이 커넥션을 조회하면 DB 드라이버에서DB와 TCP/IP 커넥션 연결을 한다고 나옵니다.그 후 다다음 단계에서 커넥션이 생성 완료되었다고 나오는데커넥션을 연결하는 것과 커넥션이 생성되는 것이 모호하게 이해가 잘 되질 않습니다. 이 부분에 대한 추가적인 설명을 부탁드려도 될까요? 그 후 DB드라이버는 커넥션을 반환한다고 나오는데 이것은 커넥션 객체를 말하는 것일까요?