묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 책 추천
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.! 김영한강사님 로드맵을 따라가려고 합니다. jpa로드맵 말고, '스프링 완전정복' 로드맵을 따라가려고 합니다. 혹시 강의와 같이 볼만한 책을 추천해주실 수 있나요?
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
질문입니다.
혼자 해결해보려다 답이 안나와서 질문드립니다.<c:forEach /> 사용하여 top_menu 의 게시판 링크를 작성하는 부분에서 ${topMenuList} 가 제대로 동작하지 않는 것 같습니다.게시판 이름별로 링크가 생성되지 않고 ,${obj.board_info_name} 만 화면에 출력됩니다.어느 부분에서 놓치고 있는 건지 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api 명세는 어떤 도구를 사용하시나요 ?
api를 작성하게되면, api를 쓰는 쪽을 위한 명세가 필요한데, 이 부분은 실무에서 주로 어떤 도구를 사용하시나요 ? 제가 알아본 것은 swagger인데, 함수에서 작성을 하면 어노테이션이 너무 길어져서 실제로도 사용하는지가 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
디스패처 서블릿의 생성과정에서 질문드립니다!
저번질문을 너무 두서없이 남겨서 하루동안 정리하고 다시 재작성합니다. 공부를 하면서 디스패처서블릿의 실행과정을 다음과 같이 정리했는데 이 내용이 맞는지 궁금해서 질문드립니다 내장 WAS기준 Springboot 1. 스프링 부트 실행 -> 2. springApplication.run으로 WebapplicationContext가 생성 프로젝트의 ComponentScan이 일어난다. run내부적으로 비어있는 ApplicaitonContext를 생성하고 refresh를 통해서 스프링컨테이너(루트컨텍스트가 생성 여기서 스프링 부트는 스프링도 마찬가지, mvc 구조에서 사용될 Converter나 리졸버 들을 @EnableautoConfiguer로 등록) -> 3. 서블릿 컨테이너 만들어지고(WAS) @EnableAutoConfiguation에 의해 -> 4. 서블릿 컨텍스트를 만든다(웹어플리케이션이 등록) -> 5. 서블릿 컨텍스트가 생성이 되고(톰켓 카타리나) -> 6. 서블릿 컨텍스트에 대한 초기화 작업이 시작된다 깡spring에서는 web.xml로 작업하던 것(Java코드로 설정하는 것 또한 지원)이 Java코드 작성으로 변경(ServeltContextInitializer의 OnStartup 메서드를 이용해서 리스너를 등록하고, 필터를 등록, ContextLoader의 서블릿 컨텍스트 생성 이벤트가 발생하고 ContextLoaderListener에 의해서 RootApplicationContext인 Spring IoC 컨테이너가 주입된다.) -> 7. 서블릿 컨텍스트에 대한 초기화및 생성 및 RootWebApplication( 프로젝트에서 생성한 스프링 컨테이너) 주입이 완료 되어 ServletContextListener contextInitialized 메서드 실행된다. -> 8. 나머지 설정인 WebMvcConfigurer에 대한 (Cors 라던지 ArgumentResolver 라던지) 자동설정 이외의 커스텀 값을 추가로 넣어준다 -> 9. 서버가 listen하기 시작 -> 10. 요청이 오면 dispatherServlet객체가 생성이 된다. ( => ? 그전에 webapplicationContext의 빈에 들어가 있는데 왜 지금 생성되는 것인지 궁금합니다) -> 11. 객체가 생성이 되면서 webapplicationContext에 있던 mvc설정 값들을 넣어주어 초기화를 시켜준다. 초기화 메서드는 initStrategies사용 이 과정이 맞는지 궁금해서 질문 작성했습니다 감사합니다 음 제가 궁금한걸 잘못 작성 한것 같습니다. 디스패처 서블릿 보다는 스프링부트든 스프링이든 서버에는 서블릿 객체들이 올라가고 사용자 정의로 작성한 applicationContext에 등록된 @controller나 @service 들이 서블릿컨테이너의 컨텍스트에 올라가는 것이라고 이해했는데 이 동작과정이 잘 와닿지 않아서 질문드렸습니다 추가적으로 이런 applicationContext등록 과정에서 컨텍스트를 따로 2개로 분리하여 작성하는 경우도 봐서 왜 그런지 굼금했습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:xxx
안녕하세요, 18:49초에 " 타임리프 뷰 템플릿을 거치게 되면 원래 값을 th:xxx 값으로 변경한다. 만약 값이 없다면 새로 생성한다." 이 부분에서 만약 값이 없다면 새로 생성한다는 의미를 정확하게 모르겠습니다. <link href="../css/bootstrap.min.css" rel="stylesheet"> 처럼 되어있다면 자동으로 <link th:href="@{../css/bootstrap.min.css}" rel="stylesheet"> 이렇게 만들어준다는 건가요? 항상 답변 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
member table inset 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. MEMBERS 에 insert 하려고하는데 아래와 같은 오류가 발생합니다. 실행하고자 하는 코드 : insert into member(name) values("spring") 오류 코드 Column "spring" not found; SQL statement:insert into member(name) values("spring") [42122-200] 42S22/42122 (도움말)org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "spring" not found; SQL statement:insert into member(name) values("spring") [42122-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:453) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:163) at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:145) at org.h2.command.dml.Insert.prepare(Insert.java:327) at org.h2.command.Parser.prepareCommand(Parser.java:744) at org.h2.engine.Session.prepareLocal(Session.java:657) at org.h2.engine.Session.prepareCommand(Session.java:595) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:212) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201) at org.h2.server.web.WebApp.getResult(WebApp.java:1459) at org.h2.server.web.WebApp.query(WebApp.java:1116) at org.h2.server.web.WebApp$1.next(WebApp.java:1078) at org.h2.server.web.WebApp$1.next(WebApp.java:1065) at org.h2.server.web.WebThread.process(WebThread.java:178) at org.h2.server.web.WebThread.run(WebThread.java:94) at java.base/java.lang.Thread.run(Thread.java:834) test.mv도 읽기전용이 아닌것을 확인했습니다. 왜 이런 오류가 발생하고.. insert가 안될까요?
-
미해결스프링 핵심 원리 - 고급편
@target 의 정의에 대해 질문이 있습니다.
안녕하세요 강사님 이번 강의에서 언급하신 `@target 어노테이션`의 정의에 대해 제가 제대로 이해했는지 궁금하여 질문 남깁니다. @target 은 인스턴스의 모든 메서드를 조인 포인트로 적용하기 때문에, target 의 대상인 `ClassAop`어노테이션이 붙은 Child 클래스만 target 의 대상이라 생각했습니다. Child 클래스의 `인스턴스`는 Child 클래스로부터 생성된 객체만을 의미하는데, 이 객체는 Parent 로부터 상속을 받았습니다. 그래서 Child에 현재는 Parent 의 메소드가 구현 돼있지 않지만, 나중에라도 구현할 수 있기 때문에 "부모의 메서드도 @Target 의 대상이 되는 것" 이라고 이해했습니다. 결국 상속의 특성으로 인해 @Target 이 부모메서드에도 적용되는 것인가요? 좋은 강의 만들어주셔서 늘 감사합니다!
-
미해결자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌
해결법 - The type org.springframework.context.ConfigurableApplicationContext cannot be resolved.
The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. 이 에러를 많이들 맞이하시는것 같은데,, https://gocoder.tistory.com/721 이곳을 보니 .m2 > repository 를 지우고 maven 업데이트를 다시 하라고 합니다. 이렇게 하니 전 해결되었습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드로 직접 빈을 생성하는 부분에서 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 먼저 좋은 강의 정말 감사하게 듣고 있습니다. @Configuration 어노테이션을 붙인 클래스에서 코드로 직접 빈을 생성하는 부분에 대한 질문입니다. @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } 이 부분에서 MemberService 객체와 MemberRepository 객체를 생성하면서 Bean으로 등록하는 것으로 보입니다. 그럼 memberService Bean은 memberRepository()를 호출하면서 Service 객체에 종속되는 MemberRepository 객체를 가지게 되고, MemberRepository Bean은 또 새로운 객체를 가지게 되어서, 결국 MemberRepository 객체가 두 개가 되는 게 아닌가요? (Service의 멤버로 하나, Repository Bean 하나) 강의 영상을 보니까 제 생각이 틀린 것 같은데, 이 부분에 대해 어떻게 작동하는 건지 이해가 잘 안 됩니다. 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
글자수 제한 질문
강의 내용과는 조금 다른 부분이긴 한데 구글링을 어떤 키워드로 해야 될지 모르겠어서 질문드립니다 Been validation으로 글자수 제한할 때 띄어쓰기 제외할 수 있을까요? @Size(max = 5) 이렇게 어노테이션을 붙여주면 5자 이하로 제한하는 걸로 알고 있는데, 이러면 띄어쓰기 포함하는 걸로 알고 있거든요 "5자 제한임" - 이건 띄어쓰기 포함 6자인데 제외하면 5자라서 이것도 통과될 수 있도록 하는 옵션이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Result 클래스 관련 질문입니다.
Result 클래스를 만들어서 response 데이터를 보냈습니다. 이때 제너릭으로 설정하신 이유가 있나요? 현재 아래 코드가 이런식입니다. static class Result<T> { private T data; } 그런데 제너릭을 쓰지 않는 반환용 DTO를 만들어서 static class ResultDto{ private List<OrderDto> orderDtos } 이렇게 하지 않는 이유가 있나요? 보통 실무에서는 어떤 방식을 주로 사용하시나요? 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터에 관련된 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 필터도 서블릿처럼 동작하는걸로 알고있고, 다만 디스페처서블릿전에 먼저 동작하는것으로 알고있습니다. 또 필터또한 서블릿컨테이너에서 관리되는것으로 알고있습니다. 서블릿이기때문이라고 생각합니다. 그런데 필터를사용하기위해서 webconfig에서 @Bean으로 스프링컨테이너에 필터를 등록해주는 작업을하는데요. 왜 두개의 컨테이너에 등록하는건가요? 중간에 잠시설명하신것중에 부트가 was를 내장하고있기때문에 @bean으로 스프링컨터네이너에 올라간다면 자동으로 서블릿컨테이너에도 필터가 등록되기때문인가요? 어떤 오개념이 있는지 알고싶습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
정적컨텐츠 관련 질문이요!
@Controllerpublic class HelloController { @GetMapping("hello-static") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; }} 위와 같이 컨트롤러를 만들었습니다. 따라서, localhost:8080/hello-static 을 입력하면template/hello.html로 이동되게 설정했습니다. 하지만, localhost:8080/hello-static.html을 입력하면 template/hello.html로 이동되지 않고 static/hello-static.html로 이동이 됩니다. 강의 내용에 따르면 localhost:8080/hello-static.html을 입력했을 때 hello-static 관련 컨트롤러가 없는 경우에 static/hello-static.html로 이동된다고 하신것으로 기억합니다. 그런데 hello-static 컨트롤러가 있는데도 왜 static으로 가게 되는지 궁금합니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Cause: invalid source release: 11
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Cause: invalid source release: 11 에러가 뜨는데 어떻게 해야하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
쿠키와 토큰의 차이가 무엇인가요?
쿠키와 토큰의 차이가 무엇인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam Map<String, Object> paramMap
안녕하세요, 14:43초 쯤 @RequestParam Map<String, Object> paramMap에서 String 대신 Object를 사용한 이유가 있을까요?? 감사합니다!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
패키지 구조 설계
패키지 구조 설계를 강의로 다루는 부분이 있을까요? 아직 제대로된 프로젝을 만든적이 없어서 패키지 구조 설계를 어떻게 해야할지 잘 모르는 상태입니다. 뭔가 알듯하면서도 잘 모르는게 개념이 확실히 안잡혀서 그런것같은데 혹시 패키지 구조 설계를 다루는 강의가 있을까요? 현재는 Spirng 로드맵대로 강의 보고있는중인데 jpa 강의쪽에서 패키지 구조 설계를 다루는지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
logout에 대해서
강의에서 보면 @PostMapping("/logout")public String logout(HttpServletResponse response) { expireCookie(response, "memberId"); return "redirect:/";} private void expireCookie(HttpServletResponse response, String cookieName) { Cookie cookie = new Cookie(cookieName, null); cookie.setMaxAge(0); response.addCookie(cookie);} 강의 코드가 위와 같은데요. 궁금한게 왜 굳이 POST 메서드로 컨트롤러 매핑을 했는지 궁금합니다 세션 쿠키는 어차피 요청시 값이 전달이 되어 GET으로 매핑해도 될것같은데 POST로 매핑한 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
4섹션 5번째 영상에서 @BeforEach로 감싸주는 이유가 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 이렇게 작성해도 테스트 정상적으로 실행되는데 어떤 이유가 있어서 BeforeEach에서 매번 new로 객체를 만들어주신건지 궁금합니다!
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
여태껏 들었던 강의 중 가장 불친절 한 강의
이 분은 진짜 글을 남겨야겠네요. 기본 적으로 강의 할 때 목소리 톤이 최소한의 겸손이 안되어 있는 느낌. "이건 당연히 아셔야 해요", "찾아보셔야 해요" <-- 이런 말투들도 최대한 이해하려고 노력 했음. 근데 가관은 bootstrap 코드를 자기가 copy&paste 해서 옮기는데 화면에 보여주지도 않음. 그거 하나하나 보면서 sign-up.html 파일 내용 기입하고 있어서 힘들었는데... 질문 게시판 답변 보니...그제서야 거기서 자기 git의 commit check out해서 옮기라네...참... 아니 강의를 하면서 그 때 그 때 말을 해주든가.. 불친절하고, 내용도 그냥 다 알아야 하는 것들 혼자 한 번 적용해보는 느낌. 새로운 내용이 나오면 그 내용을 친절하게 알려주면서 강의 노트에 있는 것도 아니고.... 그냥 말로 대충 지나가듯이 설명.... 좀 겸손하지 않으신 듯 해요. 강사 자체가...