묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
갑자기 강의듣다가 servlet질문인데요!
ApplicationContext(Spring Container)는 Interface로 되어있고 우리가 흔히알고있는AnnotationConfigApplicationContext만 스프링 컨테이너라고 알고있었습니다. 그런데 강의를 듣던도중에 servlet에 대한 AnnotationConfigApplicationContext를 찾아보니 AnnotationConfigWebApplicationContext에 대한 spring container도 찾아볼수있었습니다 그래서 AnnotationConfigApplicationContext == AnnotationConfigWebApplicationContext 인거같아 공식문서를 봐보니<p>This is essentially the equivalent of {@link org.springframework.context.annotation.AnnotationConfigApplicationContext * AnnotationConfigApplicationContext} for a web environment. 라는 설명이 나오는군요.첫번째질문으로, 본질적으로는 같은것인데 http요청이 있을때의 ApplicationContext는 AnnotationConfigWebApplicationContext를 쓰고 단순히 project에서 bean을 등록하고 관리하는 ApplicationContext는 AnnotationConfigApplicationContext를 쓰는거같은데 맞나요? 두번째 질문으로,protected WebApplicationContext createRootApplicationContext() { Class<?>[] configClasses = getRootConfigClasses(); if (!ObjectUtils.isEmpty(configClasses)) { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(configClasses); return context; } else { return null; } } /** * {@inheritDoc} * <p>This implementation creates an {@link AnnotationConfigWebApplicationContext}, * providing it the annotated classes returned by {@link #getServletConfigClasses()}. */ @Override protected WebApplicationContext createServletApplicationContext() { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); Class<?>[] configClasses = getServletConfigClasses(); if (!ObjectUtils.isEmpty(configClasses)) { context.register(configClasses); } return context; } root ApplicationContext와 ServletApplicationContext에 대한 코드를 공식문서에서 가져왔는데 root ApplicationContext와 ServletApplicationContext는 부모-자식 관계로 이루어져있다고 나와있습니다. 하지만 서로 WebApplicationContext로 구현이 되어있는데 어떻게 부모-자식 관계가 되는걸까요? 세번째 질문으로. root ApplicationContext는 @Service, @Repositroy의 역할이며 Web ApplicationContext는 @Controller역할이라고 나와있는데 @Service, @Repository, @Controller은 Bean으로 등록되어 Spring container로 관리가 된다고 알고있습니다. 물론 WebApplicationContext도 ApplicationContext를 구현한 spring container이긴 하지만 Servlet에 대한 요청과 다른부가적인 요소를 담당한다고 해서 Servlet Container로써 알고있습니다. 그렇게되면 @Service, @Repository, @Controller은 spring에서 관리가 되는것이아닌 servlet에서 관리가 되는게 아닌지 헷갈려서 질문드립니다. mvc1편에서 servlet container와 spring container를 다르게 구분해서 사용한다고 알고있었는데 공식문서를 찾아보니 하나의 ApplicationContext에서 사용되는거같아 정확한 구분이 필요할거같아 오랜만에 질문드립니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jdbc properties에 유저와 패스워드가 없어서 그런지 에러가 뜹니다
[질문 내용]이렇게 뜨고있고, 유저랑 패스워드가 틀렸다는 에러가 뜹니다.ip 주소때문이라 생각이 들어서 localhost로 변경 후 톰캣을 재실행 했음에도 여전히 유저와 비밀번호가 틀렸다는 에러가 나옵니다. properties에 유저와 패스워드를따로 설정해줘야할까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
공통 레이아웃 사용시 js <script> 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.레이아웃 구성시 base.html-> 공통파일개별 페이지 -> <head>에서 title, script, link 넘겨서 페이지별로 추가 구성이런식으로 사용하고 있는 중 인데 한가지 궁금한 점이 있습니다. <head> </head> 태그 안에 있는 <title> <link> <script> 태그들만 들어가는게 아니라 전체 페이지에 있는 <script> 태그가 다 넘어가는 건가요? 혹시 이 방식을 사용하면서 개별 페이지에서 <script></script>를 추가해서 사용하는 방식은 없을까요..? 강의 내용에선 layoutMain.html 파일에서 <head></head> 안이 아닌 다른 영역에 <script></script> 를 따로 써서 이 페이지에서만 쓸 수 있는 스크립트를 작성할 수 있는지 궁금합니다...!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
paramMap과 model
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 둘 다 request 파라미터에 관한 변수들 아닌가요??근데 왜 두 변수로 나눠서 사용하는 건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost8080이 실행이안됩니다...
실행 버튼도 누르고 21버전으로 모두 맞췄는데도 자꾸 안되네요
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Spring EL 표현식 ${} 관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]일반적으로 ${}를 쓸 때는 중괄호 내에 지정된 필드에 "실제 값"을 호출하는 것으로 알고 있습니다 예를 들어 <span th:text="${item.itemName}"></span>의 경우 Item객체에 프로퍼티 접근을 통하여 itemName 필드에 들어있는 "실제 값"에 접근을 합니다즉 itemName의 실제 값인 "itemA"를 반환하게 되는 것이지요 하지만<form th:object="${item}"><label for="itemName"></label><input type="text" th:field ="${item.itemName}"></form>와 같이 th:object=${item}으로 폼에서 item 객체를 지정해서 th:field=*{itemName} 하게 되면 이때는 "실제 값"을 꺼내는 게 아닌 itemName이라는 "변수 이름"을 꺼내서 id , name , value값으로 지정하게 됩니다 [핵심 질문]이에 따라 일반적인 상황에선 Spring EL 문법인 ${}의 용도가 "실제 값"을 꺼내는 거지만 th:field같은 예외적인 상황에서만 "변수 이름"에 접근하는 것이라고 이해해도 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 데이터베이스 설치
H2 데이터베이스 설치 후 sql파일을 만드는 과정에서 아래 사진 처럼 sql파일은 Intellij IDEA ultimate 에서만 지원가능하다고 하는데 Intellij IDEA ultimate을 새로 또 설치해야 되는건가요?그 다음 강의에서 application properties에 코드를 입력 할때도 Intellij IDEA ultimate에서만 지원가능하다고 합니다..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring Oracle 연동 질문입니다.
현재 사내에 연결된 다른 db 서버들은 모두 connection이 잘되는데,oracle db 서버만 연결이 이상한 상황입니다.위와같이 연결테스트도 성공을 하는데..위와같은 오류가 발생하며 위와같이 다른 db와 달리 선택된 스키마가 없는상황입니다.. Toad에서 위 oracle db연결했을 때 완전히 같은 정보를 입력했을 때, 정상적으로 작동합니다..도대체 뭐가 문제일까요 ㅠㅠ서버 ip, port도 정상적인 상황입니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어떻게 MemberForm 클래스가 선택이 되는지 과정이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 잘 듣고 있습니다. 재밌게 강의를 듣던 중 궁금증이 생겨 이렇게 질문 드리게 되었습니다. 7분40초~7분50초 쯤 설명에 의하면 "우리가 웹에서 입력한 name값이 MemberForm의 name 필드로 전달이 된다"라는 식으로 말씀을 하셨는데, 어떻게 Member 클래스가 아닌 MemberForm 클래스의 name을 찾아가게 되는 건가요?? 제가 워낙에 초보라서 그런지, 코드 상에서 "Member의 name이 아닌 MemberForm의 name을 찾아가도록 하는" 코드도 발견을 못하겠습니다.. 또한 다른 분들의 말씀에 의해서 질문을 드리고 싶은데, MemberForm 클래스에서 setName() 메서드가 사용이 안되는 것 같은데, 7분55초~ 8분 쯤의 설명으로는 setName() 메서드를 사용하시는 것처럼 말씀하시더라구요. 이 역시도 제가 잘 몰라서 그러는데 실제로 setName() 메서드가 사용되는 건가요?? 자세한 설명 부탁드리겠습니다.감사합니다:-)
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
강의자료 관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 잘 듣고 있습니다. pdf 강의자료 6.스프링과 문제 해결 pg.11의 MemberServiceV4Test 코드에서 @AfterEach의 after 메소드에 붙은 throws SQLException를 제거해도 될 것 같아서 글을 남깁니다. 좋은 하루 되세요.
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
Controller의 BoardMapper 쪽에서 문제가 있습니다.
Controller에서 @Autowired로 private BoardMapper boardMapper를 해주었는데 필드 주입이 되지 않습니다.root-context에서 <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <constructor-arg ref="mysqlHikariConfig" /> </bean> <mybatis-spring:scan base-package="com.spring.board.mapper" /> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean>mybatis-spring:scan 으로 패키지에 제대로 설정해주었는데 "/boardList.do"로 이동하면 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.spring.board.mapper.BoardMapper.getLists이러한 에러가 콘솔창에 나타납니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
천천히 친절하고 인텔리제이 친화적인 강의에 감사합니다
[질문 내용]너무 친절하고 무료 강의 감사합니다.너무 좋은 강의라 고민입니다. ㅎㅎ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Data 를 사용했을때 차이점
https://www.inflearn.com/questions/1087841/spring-3-2-0-%EC%82%AC%EC%9A%A9%ED%95%98%EC%8B%9C%EB%8A%94-%EB%B6%84%EB%93%A4-%EC%A4%91-converteredit%EC%97%90%EC%84%9C-%EC%BB%A8%EB%B2%84%ED%8C%85-%EC%95%88%EB%90%98%EC%8B%9C%EB%8A%94-%EB%B6%84 위 링크에 있는 질문처럼 @Data를 사용하면 오류가 뜨고 따로 @Setter @Getter @RequiredArgsConstructor를 사용했을때 정상작동되는 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션1 <빌드하고 실행하기>
강의자님께서 mac은 ./gradlew build이고 window의 경우에는 ./gradlew.bat을 build 하면 된다고 하셨는데 ./gradlew.bat 명령어만 치면되는 건가요? (window 사용, bash 터미널 사용 중입니다.!)
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 웹 기능 조회
회원 웹 기능 조회에서 잘 따라가다가 아래 처럼 model에서 오류가 뜹니다.. 뭐가 잘못되었을 까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost8080 연결 거부
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]view 환경설정에 코드 resources/static/index.html 코드 복사해서 치고 실행돌린 후 localhost:8080 돌렸는데도 자꾸 연결 거부만 뜹니다..그리고 왜 코드도 저렇게 흰색으로 뜨는 지 잘 모르겟어요..뭐가 문제인가요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션1 <View 환경설정> 강의 질문
templates 폴더의 hello.html 파일에서 <p>태그로 묶여있는 "안녕하세요. 손님"은 화면에서 확인할 수가 없는 이유가 궁금합니다. Thymeleaf templates 엔진 처리를 통해 웹 브라우저에 무언가를 띄우려면 항상 th:text="'안녕하세요. ' + ${data}" 이런 식의 문법을 사용해야 하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
index.html에는 th:replace 적용이 안되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]템플릿 레이아웃 1의 내용을 보면 templates경로로 들어가서 th:replace를 하는데 제가 index.html에서 ../templates/경로로 하니 인식을 못합니다. 이게 static/index.html은 사용 불가인지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestMethod.GET인데도 HEAD로 요청했을 때 오류가 안 나는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)@RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic", method = RequestMethod.GET) public String helloBasic() { log.info("helloBasic"); return "ok"; } } 이렇게 RequestMethod.GET인 상태에서 Postman으로 /hello-basic를 GET으로 요청하면 ok가 반환되고 다른 HTTP 메서드, 예를 들어 POST로 요청하면 HTTP 405 상태 코드를 포함한 에러 메시지가 반환된다고 이해했습니다.그런데 똑같이 RequestMethod.GET인 상태에서 Postman으로 HEAD로 요청하면 HEAD 특성상 원래도 ok를 반환하진 않지만, 응답에 에러 메시지도 안 뜹니다. 인텔리제이의 콘솔 창에서도 GET으로 요청했을 때와 마찬가지로 log.info("helloBasic");가 정상적으로 호출됩니다.GET과 HEAD가 body에 내용물이 있고 없고의 차이 말곤 비슷하다고 알고 있긴 했지만, 스프링의 RequestMethod나 RequestMapping 내부 코드를 봐선 RequestMethod.GET임에도 불구하고 HEAD로 요청했을 때 오류가 나지 않는 이유를 못 찾겠습니다. 이유가 무엇인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
이 메서드를 호출하려면 URL 주소를 어떻게 써야 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@GetMapping(value = "/mapping-param", params = {"mode=debug","mode=good"}) public String mappingParam() { log.info("mappingParam"); return "ok"; } http://localhost:8080/mapping-param?mode=debug http://localhost:8080/mapping-param?mode=good http://localhost:8080/mapping-param?mode=debug&mode=good 이 URL들로는 Whitelabel Error Page가 뜨는데 어떻게 호출할 수 있나요?