inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

여기까지 달려오면서..

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 열심히 백엔드 강좌를 수강하고 있는 학생입니다! 다름이 아니라 Spring MVC 배우기 전 핸들러와 핸들러 어댑터 , 뷰 리졸버 등등.. 배웠는데 이걸 코드와 동작과정을 다 외워야하는지 아니면 핸들러어댑터는 핸들러를 사용할 수 있는 지 판별하는 기능인것이고, 뷰 리졸버는 논리적인 매핑주소를 물리적으로 바꾸어주는 기능인 것이다. 이렇게만 이해하고 Spring MVC로 넘어가도 되는 것일까요?

  • spring
  • mvc
축구하는야채볶음밥 댓글 2 좋아요 0 조회수 370

컴파일러에 ‘-parameters’ 옵션 추가하는 방법을 알려주세요

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

build.gradle에 compileJava { options.compilerArgs << '-parameters'} 를 추가했는데 안됩니다. IDE 또는 빌드 도구(Gradle, Maven 등)의 설정에서 Java 컴파일러 옵션에 ‘-parameters’를 추가하라고 하는데, 인텔리제이 메뉴의 설정에서 하는건지, 어떻게 하는건지 자세한 방법을 알려주세요.

  • spring
  • mvc
jfk6725 댓글 2 좋아요 0 조회수 2207

18:06 로그인을 하려도 리다이렉트가 안되는데 이유가 있나요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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); } } 오타는 딱히 없는것 같은데 리다이렉트가 이루어지지 않습니다.

  • spring
  • mvc
양치잘하기 댓글 3 좋아요 1 조회수 540

application.properties 새로 실행하면 코드가 사라져요

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

다시 실행버튼을 누르면 두번째 코드가 사라지는 현상이 발생합니다.. 밑에는 콘솔창 로그입니다.. > 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 WebApplicationContext 2024-04-05T18:12:23.773+09:00 INFO 19692 --- [servlet] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 952 ms 2024-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)

  • spring
  • mvc
선희 이 댓글 1 좋아요 0 조회수 190

SendError 의 두번째 매개변수는 어디서 확인할 수 있나요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 오류!" 이 텍스트는 어디서 확인할 수 있을까요?

  • spring
  • mvc
행복한개발자 댓글 2 좋아요 0 조회수 262

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

  • spring
  • mvc
jfk6725 댓글 1 좋아요 0 조회수 2107

mvc1편 상품상세 오류 문의 합니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

메서드 코딩하고 @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. 오류가 뜹니다.

  • spring
  • mvc
댓글 1 좋아요 0 조회수 533

member.get 함수

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 함수를 어떻게 쓸 수 있는 걸까요??

  • spring
  • mvc
  • spring-jdbc
JuHee_Lee 댓글 1 좋아요 0 조회수 197

mv.getModel.put("member", member)

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

mv.getModel().put("member", member) 이 부분이 이해가 정말 안되고 있어서 GPT 사용해봤는데 이렇게 이해 해도 될까요? chatGPT 네, 맞습니다. 일반적으로 setModel() 메서드는 새로운 모델을 설정하는데 사용됩니다. 이것은 기존 데이터를 모두 대체합니다. 반면에 getModel()을 사용하여 모델을 가져오고 put() 메서드를 사용하면, 이미 설정된 모델에 새로운 데이터를 추가하거나 기존 데이터를 변경할 수 있습니다. 따라서 setModel()을 사용하면 기존 모델은 없어지고 새로운 모델이 설정됩니다. 반면에 getModel()을 사용하여 모델을 가져온 후에 put()을 사용하면, 기존 모델에 데이터를 추가하거나 변경할 수 있습니다.

  • spring
  • mvc
규원 댓글 1 좋아요 0 조회수 301

H2 연결

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. H2.bat 처음부터 이렇게뜨고 강의처럼 바꿔서 해보았는데도 안됩니다 어디가 문제인가요?

  • java
  • spring
  • mvc
  • spring-boot
백종원 댓글 3 좋아요 0 조회수 818

h2 DB Insert 문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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) ); 이래도해서 넣었는데

  • java
  • spring
  • mvc
  • spring-boot
백종원 댓글 1 좋아요 0 조회수 340

7-6 상품 상세에서 basic/items/{itemid} 로 상품 상세을 조회하는 부분에서 오류가 납니다..

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 대로 코드를 똑같이 따라하였고 오류 사항도 없는것같은데 basic/items 에서 상품명을 클릭해서 상품 상세로 갈때 whitelabel이 뜹니다 이유를 모르겠습니다 ㅠㅠ 상품명 클릭시 basic/items/1 과 같이 itemId는 url에 잘 뜨고 html 역시 두개다 절개경로로 열게되면 잘 나옵니다

  • spring
  • mvc
kimtaeyan21 댓글 2 좋아요 0 조회수 493

H2 초반 연결문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 연견을 누르면 아래와같은 오류가 나옵니다

  • java
  • spring
  • mvc
  • spring-boot
백종원 댓글 2 좋아요 0 조회수 584

String str = "Hello, Java! Welcome to Java";과 String str1 = str.concat("!!!");의 객체값 비교

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. package lang.String.method; public class StringChangeMain1 { public static void main(String[] args) { String str = "Hello, Java! Welcome to Java"; //x001 Object object = new Object(); String str1 = str.concat("!!!"); //x002 System.out.println(str); System.out.println(str1); str = object.toString(); str1 = object.toString(); System.out.println(str1.equals(str)); System.out.println(str1==str); System.out.println(str); System.out.println(str1); } } 결과로 Hello, Java! Welcome to Java Hello, Java! Welcome to Java!!! true false java.lang.Object@b4c966a java.lang.Object@b4c966a 가 나오는데, 배운 내용대로라면 str1은 str과 다른 새로운 객체값니간, str이랑 다른 객체값이 나올거라 생각했는데, str과 같은 객체값이 출력이 되어서 질문드립니다. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • 객체지향
김동현 댓글 1 좋아요 0 조회수 315

import jdbc 문제 (jdbc.core does not exist)

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 으로 되어있습니다 도저히 없어요... 어떡하죠.... [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
최승원 댓글 2 좋아요 0 조회수 536

Enum 내부에 인스턴스 생성 불가

해결됨

김영한의 실전 자바 - 중급 1편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Enum 타입이 생성자를 private로 하여 외부 생성을 막은 클래스와 거의 동일하다고 하셨는데 그 부분에 이해가 안되는 부분이 생겨 질문 드립나다. public class Grade { public static final Grade BASIC = new Grade(); public static final Grade GOLD = new Grade(); public static final Grade DIAMOND = new Grade(); private Grade() { } //자기 자신의 클래스에서 새로운 인스턴스 생성 (가능) public static Grade generate() { return new Grade(); } } 위의 코드처럼 class로 만든 경우 private으로 외부 인스턴스 생성을 막아도 자신 클래스 내부에서는 새로운 인스턴스 생성하는 코드에 빨간줄이 나타나지 않았습니다. public enum Grade { BASIC, GOLD, DIAMOND //자기 자신의 클래스에서 새로운 인스턴스 생성 (불가능) public static Grade generate() { return new Grade(); } 강의에서 위의 코드와 거의 동일한 코드라고 해주셨던 Enum타입으로 클래스를 만들경우는 아래의 generate 메서드에서 새로운 인스턴스를 만들 수 없다며 빨간줄이 생깁니다. 위의 코드와 아래 코드의 어떤 부분에서 이러한 차이가 생기는지 궁금합니다. 단순히 private으로 외부 인스턴스 생성만 막은 경우라면 자기 자신 안에서는 인스턴스 생성이 가능해야 할 것 같은데 어째서 Enum에서는 자기 자신 내부에서 생성이 불가능한 건가요? private으로 외부 생성을 막더라도 저런식의 generate 메서드를 만들면 외부에서 인스턴스 생성이 가능해 지지 않을까 하는 생각에 만들다가 이런 차이를 발견해 질문 드립니다.

  • java
  • 객체지향
오스즈 댓글 2 좋아요 0 조회수 439

로그인 쿠키 처리 HomeController에서 질문이 있습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 쿠키를 이용한 로그인 여부를 처리하기 위해 @RequirdArgsConstructor를 사용 하였는데 이 어노테이션은 생성자를 직접 작성하지 않도록 해주는 어노테이션으로 이해 하였는데 굳이 작성해주는 이유가 있나요? 멤버리포지토리에서 값을 꺼내오기 위해 의존성을주입하여 private final MemberRepository memberRepository; 를 작성해주셨는데 final을 실수로 생략 하였더니 500 오류가 발생하였습니다. 그 이유가 있나요?

  • spring
  • mvc
양치잘하기 댓글 2 좋아요 0 조회수 358

서버 실행 실패

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

> Task :LibraryAppApplication.main() FAILED . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.6) 2024-04-04 17:09:40.815 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 17.0.9 on KONG with PID 12468 (C:\Project\project\library-app\build\classes\java\main started by jinju in C:\Project\project\library-app) 2024-04-04 17:09:40.819 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : No active profile set, falling back to 1 default profile: "default" 2024-04-04 17:09:41.422 INFO 12468 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-04-04 17:09:41.474 WARN 12468 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'userRepository' defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot register bean definition [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration] for bean 'userRepository': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=userConfiguration; factoryMethodName=userRepository; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/group/libraryapp/config/UserConfiguration.class]] bound. 2024-04-04 17:09:41.505 INFO 12468 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-04-04 17:09:41.521 ERROR 12468 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The bean 'userRepository', defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration, could not be registered. A bean with that name has already been defined in class path resource [com/group/libraryapp/config/UserConfiguration.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true Execution failed for task ':LibraryAppApplication.main()'. > Process 'command 'C:/Program Files/Java/jdk-17/bin/java.exe'' finished with non-zero exit value 1 찾아본 결과 이 문제는 Spring 애플리케이션의 빈(bean) 정의 중에 중복이 발생하여 발생한 것으로 보입니다. 에러 메시지에 따르면 userRepository 빈이 이미 UserConfiguration 클래스에서 정의되어 있으며, 또한 Spring Data JPA가 자체적으로 해당 빈을 생성하려고 시도하고 있는 것으로 보인다고 합니다. 혹시 UserConfiguration 부분에 변경이 적용 안된게 있어서 그런걸까요? 저 bean 부분을 지워도 .UserServiceV1 때문에 컴파일 에러가 발생하더라구요,.,..

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 3 좋아요 0 조회수 629

파라미터를 Map으로 조회하기 관련 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

map<string, object>와 map<string, string> 모두 정상 수행이 됩니다. 받아들인 변수를 처리하는데 차이가 있을까요? public String requestParamMap(@RequestParam Map<String, Object> paramMap){ public String requestParamMap(@RequestParam Map<String, String> paramMap){

  • spring
  • mvc
jfk6725 댓글 1 좋아요 0 조회수 200

단순한 궁금증으로 인한 질문 드리겠습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 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방식으로 작성이 되는 설명이나 이유를 좀 알려주실 수 있으실까요?

  • java
  • spring
  • mvc
  • spring-boot
최규범 댓글 1 좋아요 0 조회수 232

인기 태그

인프런 TOP Writers

주간 인기글