학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다음 내용에서 th:each로 반복문을 사용하고 있는데 th:for 반복문을 다시 사용하는 이유는 뭔가요? <!-- multi checkbox --> <div> <div>등록 지역</div> <div th:each="region : ${regions}" class="form-check form-check-inline"> <input type="checkbox" th:field="*{regions}" th:value="${region.key}" class="form-check-input"> <label th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">서울</label> </div> </div>
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 4분 쯤에 강사님께서 @Autowired 설명하셨을 때 생성자의 파라미터인 memberService에 빨간 밑줄 에러표시가 떴는데 저는 그게 뜨지도 않았고, HelloSpringApplication을 실행하면 강사님과는 다르게 붉은 글씨들이 뜨네요.. 뭐가 잘못된 건지 모르겠습니다..
회원가입 테스트를 진행할때 밑에 검증하는 부분에서 궁금증이 생겼습니다. 강의상에서는 제가 작성한 부분에서는 findOneMember라는 회원의 이름을 이용하여 검증을 하고 있는걸로 알고 있습니다. 하지만 제가 추가로 작성한 마지막 줄에 있는 검증 코드처럼 findOneMember라는 회원의 이름으로 접근하지 않고 when부분에서 도출한 joinId와 given부분에서 생성한 기대하는 회원의 id를 이용하여 검증을 하면 혹시 안되는지 여쭈어보고 싶습니다. 추가로 이렇게 검증을 할 때 어떤 것을 검증하냐는 개발자의 마음인지도 궁금합니다. 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용] 안녕하세요. 강의를 듣던 도중 궁금한 점이 생겨 질문을 남겨 봅니다. API 예외를 처리할 때는 ExceptionHandler를 사용하여 처리하고, HTML 화면을 제공할 때 예외 처리는 BasicErrorController를 사용하는게 편하다고 강의에서 말씀해주셨는데요 @Controller @Slf4j public class TestErrorController { @ExceptionHandler(IllegalArgumentException.class) @ResponseBody public ErrorResult IllegalArgumentException(IllegalArgumentException e) { log.info("IllegalArgumentException ", e); return new ErrorResult("BAD Argument", e.getMessage()); } @GetMapping("/test/error/{id}") public String testException(@PathVariable String id) { if (id.equals("bad")) { throw new IllegalArgumentException("bad argument"); } return "home"; } @GetMapping("/test/error2/{id}") @ResponseBody public String testException2(@PathVariable String id) { if (id.equals("bad")) { throw new IllegalArgumentException("bad argument"); } return "OK"; } } 위와 같이 RestController가 아닌 Controller에서 View를 반환해주는 메서드가 있고, HTTP 메시지바디에 문자열을 반환해주는 메서드가 있는 상태에서 API 예외를 처리하는 @ExceptionHandler를 작성 하였고 테스트를 위해 /test/error/bad, /test/error2/bad를 호출해보면 둘 다 @ExceptionHandler가 예외를 처리하여 JSON 문자열이 반환되어 지더라구요.. 여기서 궁금점이 생기게 되었는데요 위와 같이 하나의 컨트롤러에서 View를 반환해주었을 때 IllegalArgumentException이 발생했다면 BasicErrorController처럼 오류페이지를 반환하고, API 의 경우 IllegalArgumentException이 발생하면 @ExceptionHandler에서 처리를 할 수 있는 방법은 없는 걸까요?? 만약 위의 질문에 대한 답이 없다 라고 한다면 실무에서 개발 설계를 할 때, API 컨트롤러와 View를 반환해주는 컨트롤러를 분리하여 설계를 하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 보면 <!--/* ... /--> 이 있고, <!--/*--> ... <!--*/--> 이 있는데, 본문에서는 그냥 한줄표현, 여러줄 표현이라고 하셨는데, 제가 해보니까 그런 차이는 아닌것 같더라구요. <!--/* ... */--> : 아예 소스 상 주석처리 상태. 그래서 절대경로로 열어도 뷰에는 안나옴 <!--/*--> ... <!--*/--> : 소스상으론 주석처리 안된상태. 그래서 절대경로로 열면 뷰에 보임 이렇게 해석했는데 맞는 내용일까요?
안녕하세요 ! 로그인 관련 학습 도중에 @PostMapping("/login") public String loginV4(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, @RequestParam(defaultValue = "/") String redirectURL, HttpServletRequest request) { ..생략.. } 로그인 form의 로그인 버튼을 누르면 폼의 데이터 + redirectURL 을 쿼리 파라미터 받아서 이용하는 부분에서 제가 loginForm.html 파일에 오타를 내어 <form action="/login" th:action th:object="${loginForm}" method="post"> 이라고 작성하여야 할것을 <form th:action ="@{/login}" th:object="${loginForm}" method="post"> 이라고 작성을 하였는데 , 폼의 데이터는 전송되는데 쿼리파라미터 (redirectURL)부분만 전송이 안되더라구요 . action="/login" th:action th:action ="@{/login}" 이 두개의 코드는 어떤 차이가 있는건가요 ?
안녕하세요? 강의를 듣다가 궁금한 것이 생겨 질문 드립니다. 자바의 정렬 기본 알고리즘 시간 복잡도와 이진 탐색 시간 복잡도가 nlogn인 건 이해했는데, 코드부를 보면 이중 반복문이 나오고 있습니다. 앞 서 강의에서 반복문을 기준으로 이중 반복문이면 n의2승이라고 말씀하셨는데, 이 중 반복문을 썼는데도 nlogn이 되는 건 반복문이 진행되는 동안 절반씩 찾기 때문인가요?? 만약 이중 반복문으로 시간 복잡도가 올라간다면 이중 반복문을 쓰지 않고, 해결하는 방법을 알려주실 수 있으실까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 강의 듣다가 궁금한 점이 생겨서요! 섹션6 스프링 DB 접근 기술 - 스프링 통합테스트 후반부를 듣다가 생긴 궁금증입니다~! MemberServiceTest 와 MemberServiceIntegrationTest 설명을 해주시면서 자바 코드로만 돌아갈 수 있는 순수한 단위 테스트가 좋을 확률이 높다고 하셨는데요 자바 코드로만 돌아가는 MemberServiceTest는 실제 DB를 연결하지 않았잖아요 그럼 보통 실무에서도 순수한 단위 테스트는 이렇게 MemoryMemberRepository의 형식으로 만들어서 단위 테스트를 진행 하는 건가요? MemberServiceTest와 MemberServiceIntegrationTest의 차이점은 DB를 연결하고/안하고의 차이, 그로인해 스프링컨테이너 연결 유무의 차이.. 맞죠..?
타임리프와 MVC 컨트롤러 저장 기능만 간단하게 만들어서 테스트를 해보았는데 저장 기능이 동작하지 않는 부분에 대해서 질문합니다. 간단하게 만든 유저 클래스 정보는 아래와 같습니다. 아래 사진은 리포지토리 저장 기능만 구현해둔 상태입니다. 아래는 컨트롤러 내용입니다. 아래는 타임리프로 간단하게 만든 입력창 입니다. 실제로 localhost를 띄우면 정상적으로 나옵니다. 그러나 이름과 나이를 입력 후 제출을 누르면 데이터가 생겨나지 않습니다. 확인을 위해 리포지토리 Save 메서드에 로그로 저장 성공 시에 로그 출력을 걸어두었는데 아무것도 뜨지 않으며 터미널창에 반응조차 없습니다. 이 부분에 대해서 배웠던 코드랑 비교해도 차이점을 잘 모르겠습니다. 강의 들을 때는 정상적으로 동작했었으나 제가 개인적으로 위와 같이 따로 만든 경우에는 반응이 없습니다. 왜 이런 현상이 일어나는지 혹시 알 수 있을까요? 계속해서 고민해보고 생각해보았는데 도무지 모르겠어서 질문 올립니다.
1. interface클래스내에 정의된 메써드는 public abstract이고, 변수는 public static final이 자동으로 앞에 정의가 된다고 하셨는데 이건 고정인건가요? 다른 형태로 봐꿀 수 있나요? 봐꿀 수 없다면 왜 그러한지가 궁금합니다. interface 클래스를 implements해주고 추상클래스를 extends 해주는 것은 둘 다 상속인건가요? 둘다 부모 클래스가 되는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] MappingJackson2HttpMessageConverter가 JsonConverter인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. MemberServiceTest의 join() 부분을 시청하던 도중 의문점이 생겨 질문드립니다. 현재 저희는 MemberService의 클래스가 잘 만들어졌는지 테스트를 하는 과정에서 join, findMembers, findOne을 테스트합니다. 이런 과정에서 join을 테스트할 때, 아직 검증하지 않은 findOne을 통해서 join을 테스트하는 것이 옳은 방법인지 궁금합니다. 기존에 아직 검증되지 않은 메서드를 사용해도 무방한 것일까요?? 만일 findOne이 잘 정의되어있지 않다면 아무리 잘 정의된 join도 Test에서 오류를 일으킬 것 같아서 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 버전을 최신 버전으로 다운받아서 강의자료에 있는 1.4.00 버전으로 다시 다운을 받았는데요, test.mv .db 파일을 삭제해야 한다고 하셔서 해보는데 윈도우라 어떻게 하는건지 모르겠습니다...ㅠㅠ dir /w로 검색해서 이렇게는 나왔는데 rm test.mv .db 또는 윈도우는 rmdir test.mv .db로 지우는게 아닌가요? 이렇게 나오고 삭제가 되지 않는데 삭제 방법이 궁금합니다ㅠ
스프링 MVC 2편 중 섹션 7. 로그인 처리2 - 필터, 인터셉터 의 '스프링 인터셉터 - 요청 로그' 강의 11:09쯤에 코드 중 다음과 같은 코드가 있는데요. if(handler instanceof HandlerMethod){ HandlerMethod hm = (HandlerMethod) handler; } 위와 같이 만든 hm이라는 변수를 사용하지 않는데 만드는 이유가 뭔지, 왜 캐스팅해서 무엇을 보여주고자 하는지 모르겠습니다. 바로 밑에 로그에 출력하는 handler에 영향을 주나요?