[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 코드 실행을 했으나 로컬호스트 8080으로 접속시 보여주신 에러화면이 아닌 연결실패 화면이 나와, 정상실행이 안된건지 스프링부트 3. 버전이라 다르게 나오는지 모르겠습니다 3 이후부터는 자바17로 하라고 적혀있어 환경변수 및 인텔리제이 내부 프리퍼런스도 확인했습니다. 8080포트가 이미 열려있어 그럴수 있다는 답변 내용을 보고 맥에서 확인을 해보고 일부러 오라클측 포트도 열어서 테스트해봤는데 이미 8080포트가 열려져있지 않아서 kill 할수도 없었습니다 어떻게 확인해야할까요?
제가 리액트 공부를 전에 해서 같이 사용해서 테스트 해보려고 하는데 ModelAttribute 개념에 대해 아직 제대로 숙달이 되지 않아, 만약에 리액트에서 사용하려면 어떻게 해야하는지 감이 안잡혀서 그래서 인터넷을 찾아서 하는중인데.. @GetMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8") @ResponseBody public Map<String, String> getRegions(){ Map<String, String> regions = new LinkedHashMap<>(); //순서가 보장이 안됨 regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JUJE", "제주"); return regions; } @GetMapping(value = "") @ResponseBody public List<DeliveryCode> deliveryCodes(){ List<DeliveryCode> deliveryCodes = new ArrayList<>(); deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송")); deliveryCodes.add(new DeliveryCode("NORMAL", "일반 배송")); deliveryCodes.add(new DeliveryCode("SLOW", "느린 배송")); return deliveryCodes; } 이런 식으로 하고 있습니다. ModelAttribute 리액트에서 어떻게 사용할 수 있을까요?
4:39 부분 assertThat(conversionService.convert(1000, String.class)).isEqualTo("1,000"); 1000(객체) -> String 이므로 MyNumberFormatter에 parse()실행 assertThat(conversionService.convert("1000", Long.class)).isEqualTo(1000L); String -> 1000(Long) 이므로 MyNumberFormatter에 print 실행 위 코드에는 MyNumberFormatter에 있는 parse(), print()를 사용하는 곳이 없는데, 포맷터 사용의 경우 DefaultFormattingConversionService에 의해서 parse(), print()가 알아서 실행된다고 이해하면 될까요?
converter-form.html을 아래와 같이 작성 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> th:field <input type="text" th:field="${ipPort}"><br/> </form> </body> </html> converterForm을 아래와 같이 작성 @GetMapping("/converter/edit") public String converterForm(Model model) { IpPort ipPort = new IpPort("127.0.0.1", 8080); model.addAttribute("ipPort", ipPort); return "converter-form"; } 위와 같이 작성하고 실행하면, ipPort값이 출력이 되어야 할 것 같은데 1. 아래와 같이 입력창 안에 아무 값도 나오지 않는 이유가 무었인지 궁금합니다. 2. 혹시 th:object="${form}"을 안쓰면 입력창 안에 텍스트가 나오게 할 수 없는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] session Manager을 domain패키지에 두면 이상한가요? session값을 실무에서 데이터베이스에 저장하고 쓰나요?
1. 13:09 부분을 Integer statusCode = (Integer)request.getAttribute(ERROR_STATUS_CODE) 위와 같이 해도 될텐데, RequestDispatcher를 사용하신 이유가 궁금합니다. 2. log.info ("1 : " + request.getAttribute(ERROR_STATUS_CODE)); log.info ("2 : " + request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE)); getAttribute의 반환 타입이 Object여서 위와 같이 로그 출력을 하면 Object안에 데이터가 출력될 줄 알았는데 500이 출력 됩니다. 이건 왜 그런건가요? 타입 자동 변환 그런것이 있는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. Bean Validation 가장 처음에 나오는 간단한 예제를 Item 클래스에 적용해 보았는데 오류 검증로직이 수행되지 않고 있습니다. 어디서 잘못된 것인지 조언 부탁드립니다. 제가 만든 프로젝트는 아래 주소에 있습니다. https://drive.google.com/file/d/1QPoMqciIcKlqDc1jQFtRPTu55orNfEOs/view?usp=share_link 감사합니다.
1. 5:29부분에 "인터셉터와 중복으로 처리되지 않기 위해 앞의 logFilter() 의 @Bean 에 주석을 달아두자" 라고 하신거는 로그에 필터와 인터셉터 로그가 나와서 그런건가요? 2. FilterRegistrationBean에 있는 @Bean을 제거 해서 doFilter로는 안가는데, 이 경우에는 filter가 없는거라 이해하면 되나요? 아니면 내분에 필터가 따로 있어서 그 필터가 적용되는 건가요? 3. 필터에서 dispatchType=REQUEST로 설정해두는 부분이 아래 부분에서 filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ERROR); 이 부분이 맞나요?? public FilterRegistrationBean logFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LogFilter()); filterRegistrationBean.setOrder(1); filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ERROR); return filterRegistrationBean; } 4. 3번이 맞다면 dispatchType은 REQUEST, ERROR로 설정이 된것이 맞나요? 5. 4번이 맞다면 6:37 쯤에서 설명하시는 내용인 4번은 어떻게 진행이 되는 건가요? dispatchType이 REQUEST로 되어 있으면 ERROR의 경우에는 해당 필터가 호출되지 않는다고 하셨는데, 이 경우에는 호출이 되는 건가요? 6. 필터, 인터셉터는 개발자가 코드를 작성해야만 적용이 되는 건가요? 아니면 내부에(?) 필터, 인터셉터가 알아서 처리되는 부분도 있는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 수업에 있는 내용을 따라서 프로젝트를 구성했는데 로그아웃시 세션이 유지가 됩니다. 로그아웃하고 상품목록 주소를 바로 입력했을 경우 상품목록페이지가 조회됩니다. 참고로 저는 login-start를 기준으로 하지 않고 form을 기준으로 시작하였습니다. 제가 작성한 프로젝트 전체를 압축해서 공유드립니다. https://drive.google.com/file/d/1QXAgDBbo8In1lIXeLE7nUox8HeQaRm1d/view?usp=share_link 제가 작성한 프로젝트를 기준으로 무엇이 문제인지와 그에 대한 해결책을 알고 싶습니다. 그럼 부탁드립니다. 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 안녕하세요 강사님 강의를 듣다가 명확하게 정리가 안돼서 헷갈리는 부분이 생겨 질문드립니다 ${} 나 *{}같은 문법은 잘 이해 했는데요 #{xxx}와 {#xxx}부분이 헷갈립니다. 타임리프에서 #은 어떤 것에 붙여 사용하는 건지 정리할 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 수업을 듣다가 getSession() 메서드가 Member를 반환한다면 형변환도 필요 없고 좋지 않을까 하는 생각이 들어서 위와 같이 바꿔 봤습니다. 일단 실행은 되는데 아직 배우는 단계이다 보니 전체적인 시야가 부족해 어떤 문제점이 있을 수 있는지 궁금합니다. 덧붙여 실무에서도 제네릭을 많이 사용하는지도 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 저희가 개발하는 itemService가 실제로 관리자들이 사용하는 서비스라고 가정하면 만약에 관리자1이 상품 상세 페이지에서 상품 수정을 누르려고 할 때 관리자2가 그 상품을 삭제를 하면 관리자 1이 상품 수정을 눌렀을 때 오류가 나나요? 오류가 나지 않는다면 id,name,value 값은 어떻게 렌더링 되나요?
public int memberUpdate(MemberVO vo) { String SQL = "update member set age='" + vo.getAge() + "', email='" + vo.getEmail() + "', phone='" + vo.getPhone() + "' where num='" + vo.getNum() + "'"; int cnt = -1; getConnect(); try { stmt = conn.createStatement(); cnt = stmt.executeUpdate(SQL); } catch (Exception e) { e.printStackTrace(); } finally { dbClose(); } return cnt; } 안녕하세요 강사님 저는 사이버 보안을 공부하는 학생입니다. MVC2 까지 듣고 문득 SQL인젝션이 가능한지 궁금해 실험해보니 preparedStatement를 사용하고 있어서 특정한 상황이 아닌 이상 발생하지 않는다는 걸 알게되었습니다. 그래서 Statement를 사용하면 인젝션이 성공하는지 궁금해 실험해봤는데 코드가 안전해서 그런건지 제가 실력이 부족해서인지 모르겠지만 인젝션에 계속 실패했습니다. 버프 스위트인 프록시 도구로 phone 또는 mail 파라미터 값을 조작했는데요 이해가 안가는 부분이 phone 파라미터에 ' or 1=1; # 이 쿼리를 사용하면 주석이 작동되어서 모든 테이블의 phone 컬럼이 1로 바뀌는데 ' ; update member set phone=010-4444-4444 where num=[일련번호]; # 이 쿼리를 사용하면 주석이 작동하지 않아 인젝션이 성공하지 않습니다. 혹시 무엇때문인지 아신다면 도움 부탁드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] pdf 6장22쪽에서 model에 객체 넘겨주기 위해서 memberRepository에서 찾은거 이해했는데.. 로그인할때 loginService.login()을 통해서 레포지토리에 있는지 확인하고 null인지 확인하잖아요. 근데 다시 homeLogin()에서 null값을 확인하는데 그저 이중검증이라고 생각하면 될까요??아님 제가 잘못이해하고 있는걸까요??? (pdf 6장 22쪽) loginService.login()
항상 Member객체를 만들고 시작하시는 것 같은데, 실제로는 멤버객체가 이미 있고 그걸 find하든 save하든 할거아니예요?? Test할땐 항상 처음부터 시작한다고 생각하고 로직을 짜나요?? 그리고 Test코드를 작성하는 이유는 무엇인가요? 기능 테스트를 할 때 항상 postman으로 했는데 그렇게 하는 것과 차이점이 있을까요 ??? 그리고 테스트코드에서는 main 디렉토리에 있는 클래스를 자유롭게 접근할 수 있는건가요? 예시에서도 MemoryMemberRepository를 쓰시길래 궁금해서 여쭤봅니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select * from member where name = ?] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement: select * from member where name = ? [42104-214] org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select * from member where name = ?] 통합테스트를 진행시키면 위와 같은 에러가 나옵니다. 강의를 들으면서 MemberServiceIntegrationTest.java를 작성했고, jdbc 템플릿을 이용해 db 구축도 했습니다. 오타가 있는지 계속 확인해보았지만 오타로 보이는것이 없어 질문 올립니다. 스프링이 완전 처음이라 강의를 100퍼센트 이해하면서 코드를 따라 짜지 못했기 때문에, 질문을 정확하고 자세하게 말씀 못드려서 죄송합니다... https://github.com/ffe4el/Spring_prj/tree/main/hello-spring 오류가 나는 코드를 깃허브 위 주소에 올려놓았습니다. 살펴봐주세요...ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예 [질문 내용] Run이 실패하는데 제가 환경변수를 잘못 설정한건지 설ㅍ치를 잘못 한건지 뭐가 문제인건지 모르겠네요ㅠㅠㅠ