묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터, 인터셉터 흐름
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. 필터, 인터셉터는 개발자가 코드를 작성해야만 적용이 되는 건가요? 아니면 내부에(?) 필터, 인터셉터가 알아서 처리되는 부분도 있는 건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
<input type="hidden" name="_open"/> 여기 부분 질문이요
안녕하세요 강의 잘 듣고있습니다 히든태그 부분에서요 value태그가 없어도 잘 작동이 되는데요 value를 굳이 안써도 되는걸까요?<input type="hidden" name="_open"/>
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Validation 과 exception
Validation 과 exception의 차이는 뭔가요..?? 둘이 헷갈려요...
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃시 세션이 유지 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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 제가 작성한 프로젝트를 기준으로 무엇이 문제인지와 그에 대한 해결책을 알고 싶습니다.그럼 부탁드립니다.감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프 문법에서 궁금한게 있습니다. (# 샵과 관련)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요 강사님 강의를 듣다가 명확하게 정리가 안돼서 헷갈리는 부분이 생겨 질문드립니다${} 나 *{}같은 문법은 잘 이해 했는데요#{xxx}와 {#xxx}부분이 헷갈립니다.타임리프에서 #은 어떤 것에 붙여 사용하는 건지 정리할 수 있을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
SessionManager를 제네릭 클래스로 사용해도 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 수업을 듣다가 getSession() 메서드가 Member를 반환한다면 형변환도 필요 없고 좋지 않을까 하는 생각이 들어서 위와 같이 바꿔 봤습니다.일단 실행은 되는데 아직 배우는 단계이다 보니 전체적인 시야가 부족해 어떤 문제점이 있을 수 있는지 궁금합니다. 덧붙여 실무에서도 제네릭을 많이 사용하는지도 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
기본객체들 - @Controller , @Component
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기본객체들 3분 58초에 나오는 내용인데 문득 궁금증이 생겼어요..@Controller @RequestMapping("/basic") public class BasicController { @GetMapping("text-basic") public String textBasic(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-basic"; } @GetMapping("text-unescaped") public String textUnescaped(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-unescaped"; } @GetMapping("/variable") public String variable(Model model){ User userA = new User("userA", 10); User userB = new User("userB", 20); List<User> list = new ArrayList<>(); list.add(userA); list.add(userB); Map<String,User> map = new HashMap<>(); map.put("userA",userA); map.put("userB",userB); model.addAttribute("user",userA); model.addAttribute("users",list); model.addAttribute("userMap",map); return "basic/variable"; } @GetMapping("/basic-objects") public String basicObjects(HttpSession session ){ session.setAttribute("sessionData","Hello Session"); return "basic/basic-objects"; } @Component("helloBean") static class HelloBean { public String hello(String data){ return "Hello "+data; } }여기서 컨트롤로 클래스에 @Controller가 붙어있으면 (@Controller 내부에 @Component를 포함하고있으므로 ) 컨트롤로 클래스 안에 내부 클래스를 빈등록시 @Component("helloBean") static class HelloBean { public String hello(String data){ return "Hello "+data; }질문:별도의 빈을 만들때 @Component("helloBean")를 빼줘도 되는거 아닌가요?? 너무 궁금합니다...실행해보면 @Component("helloBean")를 써줘야만 제대로 실행되네요..
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상품 수정 관련해 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.저희가 개발하는 itemService가 실제로 관리자들이 사용하는 서비스라고 가정하면 만약에 관리자1이 상품 상세 페이지에서 상품 수정을 누르려고 할 때 관리자2가 그 상품을 삭제를 하면 관리자 1이 상품 수정을 눌렀을 때 오류가 나나요? 오류가 나지 않는다면 id,name,value 값은 어떻게 렌더링 되나요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
SQL 질문 드립니다.
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=[일련번호]; # 이 쿼리를 사용하면 주석이 작동하지 않아 인젝션이 성공하지 않습니다. 혹시 무엇때문인지 아신다면 도움 부탁드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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()
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Test를 만들땐 항상 처음부터 시작하는 식으로 코드를 짜나요?
항상 Member객체를 만들고 시작하시는 것 같은데, 실제로는 멤버객체가 이미 있고 그걸 find하든 save하든 할거아니예요?? Test할땐 항상 처음부터 시작한다고 생각하고 로직을 짜나요??그리고 Test코드를 작성하는 이유는 무엇인가요? 기능 테스트를 할 때 항상 postman으로 했는데 그렇게 하는 것과 차이점이 있을까요 ???그리고 테스트코드에서는 main 디렉토리에 있는 클래스를 자유롭게 접근할 수 있는건가요? 예시에서도 MemoryMemberRepository를 쓰시길래 궁금해서 여쭤봅니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트를 진행할때 bad SQL grammer 에러가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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오류가 나는 코드를 깃허브 위 주소에 올려놓았습니다. 살펴봐주세요...ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 Run이 실패합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]Run이 실패하는데 제가 환경변수를 잘못 설정한건지 설ㅍ치를 잘못 한건지 뭐가 문제인건지 모르겠네요ㅠㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 폼태그 form:textarea에 디비에서 불러온 값을 표시하는 방법
안녕하세요.스프링 폼태그를 이용해서 디비에 저장된 값을 textarea에 출력하고 싶습니다.그런데 스프링 폼태그는 태그 사이에 값을 넣을 수 없고, form:textarea에는 value 속성이 없습니다. placeholder에 넣는 방법도 있긴 한데 그건 저 코드와 동일하진 않아서요.HTML로 작성한<textarea rows="5" cols="20" placeholder="내용" name="content">${board.content}</textarea>를 스프링 폼태그로 바꾸려면 어떻게 하는 게 좋을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 여부 체크
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요!pdf7장에 1쪽에상품 관리 컨트롤러에서 로그인 여부를 체크하는 로직을 하나하나 작성하면 되겠지만, 등록, 수정, 삭제, 조회 등등 상품관리의 모든 컨트롤러 로직에 공통으로 로그인 여부를 확인해야 한다. 라고 하셨는데 로그인 여부 체크를 세션을 통해서 하면 되는걸까요?? 아니면 다른 방법이 있나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
new-form.jsp를 접속하려면 에러가 뜨는데 왜 그러는지 궁금합니다.
안녕하세요!아래 올려드린 소스코드로http://localhost:8080/jsp/members/new-form.jsp 를 접속하면 에러가 뜨는데jsp를 사용할 수 있도록 build.gradle의 dependencies에 잘 추가한 것 같은데 왜 안될까요?커뮤니티 검색도 하고 구글링도 해보았는데 방법을 못찾았어요ㅠ 디렉토리 구조도 잘 맞는 것 같은데 이상하네요..! https://drive.google.com/file/d/1U-T6v83kwoCgceYkzs6EZOJaJhbudPQP/view?usp=share_link
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
프로퍼티 접근, 직접호출
user.username은 user의 username을 프로퍼티 접근을 해서 user.getUsername()을 호출하고, user.getUsername()은 user의 getUsername()을 직접 호출한다고 하셨는데,똑같이 getUsername()을 호출하는건데 무슨 차이가 있는건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
TestDataInt
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]TestDataInt 가 @Component인 이유는ItemRepository와 MemberRepository의 의존관계 주입을 위해서 인가요?? 다른 이유도 있을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestDispatcher 시 404 에러
실습을 따라하다가 404가 에러가 나는데 원인을 모르겠습니다.http://localhost:8080/servlet-mvc/members/new-form 에 접속을 하면 404 가 납니다.혹시 오타인가 싶어 강사님 소스를 복사하여 붙여넣기를 했습니다만 동일합니다.service 메서드 안의 system.out.println 이 찍히는거보면 MvcMemberFormServlet 까지는 들어온 것 같은데요, dispatcher.forward 로 이동시킬 때 해당 jsp를 찾지를 못하는 것 같습니다. 확인해주시면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 맥(m1)에서 프로젝트를 빌드하는 도중에 해당 에러가 발생했습니다.이전 질문에서도 똑같은 에러가 있길래 답변을 확인해봤으나 프로젝트의 sourceCompatibility = '17' 과 java -version의 openjdk version "17.0.6" 2023-01-17를 확인하니 자바 버전은 동일한 것 같습니다. 그런데 왜 해당 오류가 발생하는지 의문입니다.프로젝트를 초기 세팅할 때도 스프링부트 3 버전과 자바 17버전으로 잘 세팅했습니다.에러가 나는 이유를 알 수 있을까요?