월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
특정 리소스가 없을때에 예외페이지 처리 방법 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예를 들어서, 게시글을 조회하는 서비스가 있다고 가정해 보겠습니다./post/158위 URL을 요청할 경우, 웹 애플리케이션에서 id = 158인 게시글을 찾아 해당 내용을 클라이언트에게 주며, 만약 전달된 아이디에 해당하는 게시글이 없을 경우 예외(NoSuchPostException)을 반환하도록 구현을 했습니다.그런데 이 때, 아무런 설정이 없으면 예외가 WAS까지 전달이 되면 무조건 500 Error가 발생이 되는 것으로 알고 있습니다.제가 궁금한 것은위와 같은 상황에서 404 에러가 아닌, 500에러를 반환하도록 구현하는 것이 맞는 지 궁금합니다. 158이라는 아이디에 해당하는 리소스가 없을 경우에는 Not Found 404 상태코드를 반환하는게 맞다고 생각을 하였는데, 실무에서는 이런 상황에서 어떠한 상태코드를 사용하는 지 궁금합니다.특정 예외(이를테면 NoSuchPostException)상황에서는 404코드를 반환하도록 하고 싶은데, 이럴 경우 스프링에서 제공하는 BasicErrorController를 사용하지 못하고, 직접 에러 컨트롤러를 만들어서 처리해야 하나요? (스프링 인터셉터와 필터를 이용한 방법 모두 해보았는데 도저히 안되겠어서 질문드립니다)
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
404예외처리..
예를들어 api 서버인데, 없는 url요청하면 404에러나자나요그 응답 데이터 json 을 변경하려는데 , 어떤코드를 변경해야 할까요?404는 url못찾아서 컨트롤러로 진입도 하기 전인데..RestControllerAdvice는 컨트롤러에서 발생하는 것만 처리해줘서..방법을 모르겠어요 ㅠ이렇게 리턴되고 있는데 저 리턴되는 key와 값들부터 모두 커스텀하고싶은데.. { "timestamp": "2024-04-25T11:17:35.705+00:00", "status": 404, "error": "Not Found", "message": "No message available", "path": "/o%E3%85%87%E3%84%B9%E3%85%87%E3%84%B9" }
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 메시지 소스 사용 시 Test 컴파일 에러 나신 분을 위해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 질문은 아니고 @Test 시 계속 컴파일 오류가 나서 다른 분들 참고하시면 될 것 같아 글 작성합니다1.컴파일 에러 났을 때 간단히 System.out 출력 했을 때 ???일 때 상단 메뉴 바에서 Settings 클릭 > Encoding 검색해서 File Encodings 들어가서 사진 처럼 UTF-8로 바꿔주기 안되면 윈도우 시스템이 언어 설정 확인하기
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
itemValidation, @Validation
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어노테이션으로 Validation을 진행하면 만들었던 itemValidation은 작동 안하나요??
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
국제화 기본 설정 테스트 코드 실패
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 메시지 소스 사용 강의 2분 50초 정도에 나오는 테스트 코드가 계속 실패해서 문의 드립니다.계속 hello 값을 가져오는것 같은데, 설정 값은강의에서 제시한 그대로 인데, 기본 디폴트 값이 영어로 되어 있는걸까요? 혹시나 해서 Local.KOREA(N)을 모두 적용해보았으나 역시 같은 에러가 발생합니다.코드 내용은 위와 같습니다. 원인이 뭘까요? ㅠㅠ
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
<label > id와 <input> id 맞추기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강사님강의 10분 ~ 12분 사이에서 <label>태그와 <input> 태그의 id를 맞추기 위해서th:for="${#ids.prev('regions')}"를 사용한다고 하셨는데th: each 에서 제공하는 두 번째 파라미터를 활용해서 regionStat.index나 regionStat.Count로 id를 맞추는 방식은 어떨까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ModelAttribute
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ModelAttribute로 regions,itemTypes,deliveryCodes를 FormItemController가 처리가는 모든 view에 넘겨줬습니다. 그러면, item도 거의 모든 함수에서 사용되니까, item도 Modelattribute의 이런 사용법을 사용해도 되나요? 안된다면 왜 그런가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
form관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]질문이 있습니다 제가 회사에서 부트를 사용해서 타임리프 관련해서 학습하고 사용 할려고 하는데 form을 사용해서 action 을 하는게 아닌 거의다 js를 통해 ajax를 사용하는 등 거의 js를 통해 서버와 통신하는 방법을 사용하고 있습니다.이럴 때 타임리프에서 th:object 옵션을 사용할 방법이 따로 없을까요? html에서 form을 사용하지 않는 이상?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
매핑이 잘 안되는거 같아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.영학님이 주신 걸로 하면 버전이 안맞아서 커뮤니티 글에 있는 17버전을 새로 만들어서 영학님이 주신 form에 내용을 main하고 resources를 바꿔서 실행 하는데 서버도 열리고 잘 되는데 이상하게 이런 현상이 떠서 질문을 드립니다이렇게 뜨고 상품관리 를 누루면이렇게 뜨는데 위에 basic을 form으로 바꾸면 잘 뜨고 다른 기능도 잘 됩니다.그런데 할때 마다 계속 바꿔야 하니 문제를 찾아 보고 있는데 resources에 index.html도 확인 했는데 basic이 쓰인 곳도 없고 FormController 부분에도 basic을 반환 하는 부분도 없는데 프로그램 코드안 에서도 basic을 반환 하는 부분이 어디에도 없는데 뭐 때문에 그런지 잘 모르겠습니다. 재가 미숙해서 잘 못 찾는것도 있지만.. 배운다는 생각으로 충고 주시면 잘 배우겠습니다
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
RequestMapping 이후 GetMapping
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이렇게 RequestMapping으로 /template으로 시작하는 url을 mapping하고, /fragment로 오는 get을 template()에서 처리합니다. 그런데 이런 컨트롤러 클래스 내부의 메소드를 public으로 하는 이유가 있을까요? 예외없이 private으로 해야하는 것 아닌가요? 다른곳에서 TemplateController 인스턴스를 만들어서 template() 함수를 쓰려고 해도, templateController가 @Controller니까 의미 없지 않나요? 즉,spring 차원에서 public을 막고 private으로만 메소드를 만들게 할 수 도 있는데, 그렇게 않한 이유가 알고 싶습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 메시지 소스 사용 = 오류 발생건입니다.
실행하면 아래와 같은 메세지가 뜹니다.실행 자체가 안되는거 같은데요?spring.messages.basename=messages 설정 여부와 상관없이 오류가 납니다.@SpringBootTest public class MessageSourceTest { @Autowired MessageSource ms; @Test void helloMessage() { String result = ms.getMessage("hello", null, null); assertThat(result).isEqualTo("안녕"); } } Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/CodingStudy/스프링/message/build/reports/tests/test/index.html* 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.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임 리프 객체 접근
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]user.username 이 어떻게 가능한가요? private 이어서 user.getUsername() 해야하는 것 아닌가요? 아니면, 서버 사이드에서 user.username 을 user.getUsername으로 바꿔주나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Exception.getMessage()" because "ex" is null
안녕하세요 API 예외 처리 - '시작' 강의 후반부에 members/ex에 원래대로면 json 객체가 포스트맨에 출력되어야 하는데 서버가 에러와 함께 중단되는 현상이 발생합니다. https://drive.google.com/file/d/17UCDKzluOgLwtSn82gMD2zaTYZ4JzxHi/view?usp=sharing
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
response.sendRedirect()와 return으로 redirect를 써주는 것의 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]response객체를 받는 경우에 sendRedirect를 사용하는 건가요?아니면 doFilter()가 반환타입이 void기 때문에 이렇게 해주는건가요??둘을 사용하는 경우의 차이를 자세히 알고 싶습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean Validation 사용 시 메시지 코드에 대한 파라미터 지정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@NotBlank , @NotNull와 같은 Bean Validation 관련 어노테이션을 통해 검증할 경우 동적으로 파라메터를 지정해서 메시지를 처리할 수는 없는 것인가요?예를 들어 Bean Validation으로 메시지를 지정할 땐 @NotBlank("값은 필수여야합니다.")와 같이 기본 메시지를 지정하던가 혹은 error.properties와 같은 메시지 코드 관리하는 properties 파일에서 NotBlank=값은 필수여야합니다. 와 같이 메시지 코드를 통하여 메시지를 지정할 수 있는데 이때 {0} , {1}을 넣음으로써 동적으로 파라메터를 지정해서 바인딩하는 방법을 모르겠어서 여쭤봅니다 !
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바 17로 프로젝트 생성 후 실행은 잘 되는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 자료에 제공되는 소스 코드는 자바 11 버전이라 잘 안 될 거 같아서https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2&unitId=83272&category=questionDetail&tab=community&q=1171198 이 방법대로 해서 실행은 정상적으로 됩니다. 폴더는 강의에서와 마찬가지로 form 폴더입니다.그런데 아래 사진처럼 item-serviceform [item-service] form이 아니라 item-service 이런 식으로 표시되는데, 앞으로 강의대로 진행하다가 나중에 문제 생길 여지는 따로 없을까요?맨 위의 item-service는 Project Structure에서 form으로 바꾸면 변하긴 하던데 아래에 있는 form [item-service]는 어떻게 바꾸는지 모르겠네요.. Refactor - Rename으로 해도 똑같습니다. settings.gradle을 수정했더니 갑자기 실행이 안 되길래 무서워서 그냥 원래대로 바꿨고요.. 그냥 안 바꾸고 해도 강의 따라 하는 데 지장 없을까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메시지(국제화), 검증 모두 타임리프를 사용할 때만 적용하는건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]메시지 및 국제화, 검증 모두 타임리프를 사용해서 편리하게 꺼내고 적용하는데, 뷰나 리액트를 연결할 때도 사용하는 방식인지 궁금합니다. 게시판에 비슷한 질문을 보기는 했는데 답변이 뭔가 명확하지 않아서 다시 질문드립니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
URL 입력 시점과 LogInterceptor
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영상처럼 URL을 따라쳐보는 중에 의문점이 생겨서 문의드립니다URL에 localhost:8080 뒤 내용을 수정하고 ENTER를 누르지 않았는데도 Console에는 LogInterceptor가 수정한 주소의 로그를 찍고 있습니다로그를 찍는 기준이 ENTER를 누르는 순간이 아니라, 수정하면 즉각적으로 찍는건가요?작동원리를 정확히 알고 싶습니다현재 크롬으로 하고 있습니다(보시면 localhost:8080/items -> localhost:8080으로 수정하고 아직 ENTER를 누르지 않았는데 LogInterceptor는 localhost:8080으로 진입하였을 때의 로그를 찍고 있습니다)
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties intelliJ 인식 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]왜 제 errors.properties는 아이콘 모양이 바뀌지 않고 인식을 안하는 걸까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 에러 미전달 케이스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용]기존 섹션에서 추가한 인터셉터가 있는 경우 sendError에서 지정한 에러 코드가 아닌 정상 값을 응답 값을 전달받은 이유가 궁금합니다. 에러를 포함한 응답 값이 없는 경우 톰캣에서 무조건 200 값을 반환하는 것인가요?