묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 웹기능 조회가 안됩니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]회원 등록을 모두 한 후에 회원 조회을 하면 Whitelabel Error Page 가 나옵니다.어디가 문제인지 도저히 모르겠습니다.코드 구글드라이브 링크 첨부하겠습니다.도움 부탁드립니다!https://drive.google.com/file/d/1lv8SJTWHjyc_gJBVFh0PFG0BTv3y_SPK/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한님 저는 영한님 수업을 정말 잘 듣고있는 대학생입니다. 이번 spring강의를 들으면서 개인 velog에 학습겸 포스팅을 하고싶은데 주된내용이 영한님이 알려주시는 코드인지라 이런것들을 포스팅 해도되는지 여쭙고싶습니다. 인프런 강의보니까 모든 코드와 영한님이 만드신 pdf파일은 퀄리티가 상당하여 함부로 velog에 작성해도되는지 조심스럽습니다. 혹시 약간의코드와 배운 지식을 학습차원에서 게시해도 되는지 여쭈어봐도 될까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링 3 버전 이상 rollbackFor 변경된듯요
rollbackOn으로 변경된거같네요 스펙이
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
index.html 경로 인식
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 복습을 진행중 입니다멀티모듈 프로젝트로 만들어서 그런지 index.html 위치를 제대로 설정하였는데도 http://localhost:8080/ 로 들어가면 404에러가 뜨는데 이유를 모르겠습니다 ㅠ사진은 디렉토리 구조입니다/resources/static 아래에 두면 웰컴 페이지로 잘 동작하지만, 그 후 jsp사용한 회원 가입 등을 할 때 404에러가 발생하여 질문드리게 되었습니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
예외 발생 요청 흐름에서 필터와 인터셉터 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예외 발생 흐름이 WAS - 필터 - 서블릿 - 인터셉터 - 컨트롤러 순이라고 배웠습니다이때, 서블릿은 Spring의 DispatcherServlet을 의미하는 것으로 알고 있습니다그렇다면 여기서 말하는 "필터"와 "인터셉터"는 개발자가 직접 구현한 것을 뜻하는 건가요?아니면 Spring 자체 구조 안에 필터와 인터셉터가 내장되어 있는 건가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 전파 질문.
두가지 질문 있습니다. 1) 16분 30초부터 설명하는 내부 트랜잭션 응답 흐름에서 궁금한점이 있습니다.이번 강의에서 내부 트랜잭션이 참여하게 되면 이것은 아무것도 하지 않는 것이다라고 하셨고내부 트랜잭션이 커밋해도 신규 트랜잭션이 아니기 때문에 실제 커밋을 호출하지 않는다. 그리고 실제 커넥션에 커밋이나 롤백을 호출하면 트랜잭션을 끝나기 때문에 안되기 때문에 실제 커밋을 호출하면 안되고 여기서는 아무것도 안한다 라고 설명하시는데요.그렇다면 다음 코드에서@Test void inner_commit() { log.info("외부 트랜잭션 시작"); TransactionStatus outer = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("outer.isNewTransaction()={}", outer.isNewTransaction()); log.info("내부 트랜잭션 시작"); TransactionStatus inner = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("inner.isNewTransaction()={}", inner.isNewTransaction()); log.info("내부 트랜잭션 커밋"); // txManager.commit(inner); log.info("외부 트랜잭션 커밋"); txManager.commit(outer); }내부 트랜잭션에서 실제 커밋을 호출하면 안되고 어차피 아무것도 하지 않는 것이라면 없어도 되는 코드 아닌가? 라고 생각했는데 아래 다른 분이 하신 비슷한 질문의 답변에서 내부 트랜잭션을 사용한다고 결정했다면 항상 내부 트랜잭션을 커밋이나 롤백을 결정하셔야 합니다. 라고 답변 하신 것을 보았는데요. 아무것도 하지 않는데 내부 트랜잭션은 왜 커밋을 해주어야하는건가요? 2) 1번 질문이랑 관련 있는 것 같기는한데요.이전 강의에서 모든 논리 트랜잭션이 커밋되어야 물리 트랜잭션이 커밋된다고 하셨는데요, 이번 강의에서나 다음 강의에서나 외부(물리) 트랜잭션만 커밋해도 실제 커넥션에 모두 커밋되는 것 같은데.. 아닌가요? 이것이 맞다면 1번 질문과 마찬가지로 외부 (물리) 트랜잭션만 하면 되니 txManager.commit(inner) 코드는 필요 없는 것 아닌가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ControllerV3 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.controllerV3를 만들때 파라미터로 Map<String,String>으로 전해주시는데 이것은 V2에서는 사용안하는 response를 없애기 위한것인가요?그렇다면 파라미터로 그냥HttpServletRequest requestt만 받게 하면 안되나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
response.sendRedirect("/basic/hello-form.html"); 코드에서 302번이확정적인지? ?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 저가 이해 한게 맞는지 알고 싶어서 올립니다. 사진을 보시면 response.sendRedirect("/basic/hello-form.html"); 라는 코드가 있는데저가 이해한 바로는 여기 이 코드(로직) 안에 "302"이 고정 되어 있어서 302번 상태 코드를 호출 하고 폼으로 간다 라고 이해 해도 되냐요?답변 부탁드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃시 서버로 전달되는 쿠키(세션ID)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]로그아웃시에 서버로 전달되는 쿠키는 브라우저가 자신에게 저장된 쿠키 값을 조회해서 HTTP 헤더에 넣은 다음 서버로 전달하는 걸까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Content-Type에 나오는 txet/plain이 무엇인지?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 . 굼긍즘이 생겨서 질문을 드립니다.hello.servlet.basic.response 에 있는 ResponseHeaderServlet 클래스 에서response.setHeader() 에서"Content-type","text/plain;charset=utf-8" 이렇게 입력하는 것을 보았습니다.근데 여기 입력에서 첫 번째 입력 값 text/plain 에 대해서 잘 모르겠습니다. 그래서 검색해서 찾아보니(볼로그 글을 보니) text/plain: 일반 텍스트 데이터임을 의미text/plain: 일반적인 평문의 글을 의미하며, html도 이에 해당 합니다.이렇게 두 가지 글을 찾을 수가 있었으나 뭔 말 인지 이해가 안되는 상황입니다. 혹 text/plain 에 대해서 더 자세히 알켜 주실수 있나요? 답변 부탁 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginCheckFilter의 sendRedirect부분에 대해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.LoginCheckFilter의 doFilter 메서드에서 미인증 사용자의 요청일 경우 httpResponse.sendRedirect("/login?redirectURL=" + requestURI);위와 같이 리다이렉트를 해주는데 @PostMapping("/login") public String loginV4(@ModelAttribute LoginRequest loginRequest, HttpServletRequest request, @RequestParam(defaultValue = "/") String redirectURL) { log.info("redirectURL: {}", redirectURL);로그를 찍어보면 "/" 값이 넘어옵니다.여기서 궁금한게 있는데, redirect는 get요청으로 알고있는데 어떻게 Post요청이 되는지 궁금합니다.브라우저가 응답을 받아 리다이렉트 했을 때 요청받는 건 GetMapping("/login")이 아닌건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 프로젝트를 windows로 빌드하고 실행한 이후..
[질문 내용]그 이후부터는 intellij에서 localhost:8080으로 접속이 안됩니다. 설정에서 이렇게 변경을 해도 프록시서버 설정을 바꿔야하는건지 알수가 없네요. 프로젝트 다시 만드는 방법보다 설정바꿔서 실행해보고 싶은데 어느 쪽을 변경해야하나요?
-
미해결[심화] 인디해커를 위한 루비온레일즈 8 완벽 강의
테스트 관련 내용은 없는지 궁금합니다.
레일즈는 테스트가 중요하다고 얼핏 들은거같은데 테스트 관련 내용도 강의에 포함되어 있나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
앤터티 필드 선언시 Integer 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Item 클래스에서 price와 quantity의 데이터 타입을 int가 아닌 Integer로 선언하셨는데 Integer로 선언하신 이유가 궁금해요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
welcome-page
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]보통 tomcat을 사용하면 web.xml에 welcome-page 관련한 설정을 하는 것으로 알고 있는데, 스프링부트 내장 톰캣 또한 자동으로 welcome-page가 /webapp/index.html으로 설정이 되어 있어서 index.html이 렌더링 되는지 아니면 다른 곳에 welcome-page가 설정되어 있는지 궁금하여 문의드립니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
프로젝트 오픈 에러
제공된 소스 폴더 itemservice-db-start 를 itemservice-db로 변경 후 openProject 하였더니 다음과 같은 빌드 에러가 납니다..질문 답변 봐도 별 내용 없는거로 보아 저만 이런거같은데 어떻게 해결하나요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
콘솔창 한글 깨짐 해결법
[상황]분명 다른 강의들에선 한글 잘 나왔는데 왜 갑자기 한글이 깨질까? 달라진 점을 생각해보니 gradle로 설정을 바꾼 후로 깨진 것 같았음실제로 IntelliJ IDEA로 바꾸니까 한글 출력 잘됨.[이유]IntelliJ는 실행할 때 JVM 인코딩을 UTF-8로 설정해주지만, Gradle은 인코딩을 시스템 기본값에 맡기기 때문이라고 함 -gpt-[해결 방법]제어판 - 국가 또는 지역 - 관리자 옵션 - 시스템 로캘 변경 - Beta 체크박스 체크 후 재부팅다들 이것부터 해보시길
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행시 콘솔? 계속 돌아가요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실행하게 되면 8080과 /hello같은 곳에 접속은 잘 되는데 영한님 화면과 다르게 이 실행창의 톱니바퀴가 계속 돌아가고, 밑에 ServletApplication.main()의 빌드가 되고있는 듯이 보이고, 실행 종료시에는이렇게 뜹니다.메세지:* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 4m 10s3 actionable tasks: 2 executed, 1 up-to-date
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 JdbcTemplate에서 H2에 테이블이 없다는 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증 실패 후 값이 빈칸인 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과를 보관 log.info("item.price1 = {}", item.getPrice()); //검증 로직 if (!StringUtils.hasText(item.getItemName())) { bindingResult.addError(new FieldError("item","itemName","상품 이름은 필수입니다.")); } if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) { bindingResult.addError(new FieldError("item","price","가격은 1,000 ~ 1,000,000 까지 허용합니다.")); } if (item.getQuantity() == null || item.getQuantity() >= 9999) { bindingResult.addError(new FieldError("item", "quantity", "수량은 최대 9,999 까지 허용합니다.")); } //특정 필드가 아닌 복합 룰 검증 if (item.getPrice() != null && item.getQuantity() != null) { int resultPrice = item.getPrice() * item.getQuantity(); if (resultPrice < 10000) { bindingResult.addError(new ObjectError("item","가격 * 수량의 합은 10,000원 이상이어야 합니다. 현재 값 = "+resultPrice)); } } //검증에 실패하면 다시 입력 폼으로 if (bindingResult.hasErrors()) { log.info("errors = {} ", bindingResult); log.info("item.price2 = {}", item.getPrice()); return "validation/v2/addForm"; } //성공 로직 Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v2/items/{itemId}"; }addItemV1에서 폼의 가격에 1원을 입력 후 저장했을 때 log.info("item.price1 = {}",item.getPrice()) 와 log.info("item.price2 = {}",item.getPrice())로 검증시작 전과 검증 실패 후(뷰 반환 직전)에 item.getPrice()의 값을 로그로 확인했는데, 둘다 1이 뜨더라구요.그럼 검증 실패후 뷰로 넘어갔을 때 뷰에서는 똑같이 1이 남아있어야 하는거 아닌가요? 뷰의 th:field="*{price}"는 item.getPrice()로 값을 가져오는데 왜 1이 아니라 null인건지 이해가 안됩니다..!-> 강의뒷편에 내용이 나오네요 ㅎㅎ해결했습니다.