묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨토비의 스프링 부트 - 이해와 원리
imports 파일을 읽어오지 못하는 오류
안녕하세요!이번에 스프링부트를 수강하게 된 학생입니다.퀄리티 높은 수업을 제공해주셔서 감사합니다!다름이 아니라 "자동 구성 정보 파일 분리" 파트를 수강하던 중imports 파일을 생성하여 class 정보를 불러오는 부분에서 오류가 발생하여 질문글 남깁니다.MyAutoConfigImportSelector.java에서 selectImports 메소드를 사용할 때리턴 해주는 String 배열을 직접 입력해주는 아래와 같은 방법을 사용하여 작성했을 때는 서버가 정상적으로 실행되었습니다.return new String[] { "tobyspring.config.autoconfig.DispatcherServletConfig", "tobyspring.config.autoconfig.TomcatWebServerConfig" };그런데 classLoader를 사용하여 META-INF 하위에 생성한 imports 파일을 읽어오는 코드를 작성하여 실행하니 ServletWebServerFactory 빈을 찾을 수 없다는 오류가 발생하며 서버가 정상적으로 실행되지 않습니다...혹시 META-INF를 읽어오지 못하는 이유가 있을까요??
-
해결됨실전! 스프링 데이터 JPA
findby findUserBy의 차이가 뭔지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]JpaRepository 를 사용하던 중 findBy 와 findUserBy (find{Entity}By)가 있던데 이 둘의 차이가 궁금합니다. 둘 다 객체를 반환하던데 이 둘의 성능이나 보안적인 차이가 있을까요? 어떤 것을 사용하는 것이 좋은지 궁금합니다...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
setname이 안보이고 객체생성에 오류가 납니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]setname이 보이지않고 객체생성 옆에 오류가 납니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
백엔드 뉴비입니다. 뷰도 만들고 싶은데 SSR말고 CSR 하는게 좋을까요?
백엔드 뉴비입니다. 뷰도 만들고 싶은데 SSR말고 CSR 하는게 좋을까요?혼자 프로젝트 연습중인데요! 타임리프보다는 Vue.js같은 걸 하는게나중에 협업할때 좋을 것 같아서요.이왕 공부하는거 타임리프보다Vue.js 공부할까요?정말 고민이에요..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
클라이언트사이드렌더링vs서버사이드렌더링
둘의 차이에 대해 설명해보라고하면클라이언트 사이드 렌더링은 web서버에서 html생성하는것이고 서버사이드렝더링은 was에서 html생성함이라고 말할 수 있나요?
-
미해결토비의 스프링 부트 - 이해와 원리
kotlin에서 registerBean 컴파일 에러 해결법
kotlin으로 toby님의 강의를 따라다가다 안되는 부분이 발생하여 다른분들도 해결하시면 좋을 것 같아 공유차원에서 글 남깁니다! org.springframwork.context.support.registerBean을 impot하여 해결할 수 있습니다.관련 docs:https://docs.spring.io/spring-framework/docs/5.0.0.RELEASE/spring-framework-reference/kotlin.html import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory import org.springframework.boot.web.server.WebServer import org.springframework.boot.web.servlet.ServletContextInitializer import org.springframework.context.support.GenericApplicationContext import org.springframework.context.support.registerBean import org.springframework.http.HttpHeaders import org.springframework.http.HttpMethod import org.springframework.http.HttpStatus import org.springframework.http.MediaType import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse class HellobootApplication fun main(args: Array<String>) { val myApplicationContext = ApplicationContext() myApplicationContext.registerSpringBean() val serverFactory: TomcatServletWebServerFactory = TomcatServletWebServerFactory() val webServer: WebServer = serverFactory.getWebServer( ServletContextInitializer { it.addServlet("frontController", FrontController::class.java) .addMapping("/*") } ) webServer.start() } class ApplicationContext{ fun getContext() = springApplicationContext fun registerSpringBean(){ springApplicationContext.apply{ registerBean<HelloController>() refresh() } } companion object{ val springApplicationContext: GenericApplicationContext = GenericApplicationContext() } } class FrontController: HttpServlet() { override fun service(request: HttpServletRequest?, response: HttpServletResponse?) { requireNotNull(request) requireNotNull(response) val springApplicationContext = ApplicationContext().getContext() val helloController = springApplicationContext.getBean(HelloController::class.java) //인증, 보안, 다국어, 공통 기능 처리 duplicateCode() if(request.requestURI == "/hello" && request.method == HttpMethod.GET.name ){ val name = request.getParameter("name") response.status = HttpStatus.OK.value() response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE) response.writer.println(helloController.hello(name)) }else { response.status = HttpStatus.NOT_FOUND.value() } } } private fun duplicateCode(){}
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Category에서 부모와 자식에 대해 모르겠습니다.
지금 카테고리에서 왜parent, children을 사용하는지 모르겠습니다.그냥 이게 왜 있고 뭐에 쓰는 건지를 모르겠어요어디서 학습할 수 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA 강의를 듣고 프로젝트를 만들 수 있나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니요2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 이번에 백엔드 단기간 취업 목적으로 JPA 활용 1, 2 를 들어서 포트폴리오에 첨가할 프로젝트를만들 계획이 있습니다.부수적인 CS, 언어, 데이터베이스 등등의 지식이뒷받침된다는 전제하에 만들 수 있나요?MVC 강의가 있던데 이것을 듣지 않는다면 불가능하거나 혹은 지장이 많나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
적절한 메시지 컨버터 선택하는건 어디에서 이뤄지나요?
바로 전 강의에서 컨트롤러의 파라미터 타입이나 반환 타입에 따라 메시지 컨버터를 순차적으로 돌면서 찾아 수행한다고 하셨는데아큐먼트 리졸버도 마찬가지로 적절한 파라미터 타입이나 반환타입에 따라 여러 종류가 있다고 하셨습니다.그러면 디스패처 서블릿에서 파라미터 타입에 따른 적절한 아규먼트 리졸버를 찾아 호출하게 된다면 메시지 컨버터를 순차적으로 돌며 찾는 과정은 없어도 되는거 아닌가요?만약 존재한다면 어디에서 이루어지는건가요? ReturnValueHandler도 반환타입에 따라 종류가 여러 가지라고 하셨는데 이 ReturnValueHandler 종류를 찾고 호출하는 건 어디에서 이루어지는건가요? 핸들러 어댑터는 디스패처 서블릿으로 ModelAndView를 반환해야 되는데그러면 ReturnValueHandler가 HTTP 메시지 컨버터를 호출해서 만든 응답결과가 ModelAndView 타입이고 이 응답결과를 핸들러 어댑터로 반환한 후 다시 핸들러 어댑터는 디스패처 서블릿으로 반환하는건가요?
-
해결됨스프링 핵심 원리 - 기본편
3분 경 필드 명을 빈 이름으로 변경하였을 경우에 대한 설명
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]3분 10초 경 강의 중에 생성자의 파라미터를 rateDiscountPolicy로 변경하고 필드 명을 빈 이름으로 변경하는 예시를 설명 중 필드명을 생성자의 파라미터 이름과 다르면 오류가 나온다고 하였는데 실제로 보니 fix로 바꾸어서 확인해보았는데 따로 오류는 나지 않더라구요.그래서 생각해보았는데 일단 순서상 생성자 주입이 먼저 일어나니 이 때 파라미터명을 보고 rateDiscountPolicy가 주입이 일어나고 이후 3번째 필드 주입된 곳은 앞서 주입했던 rateDiscountPolicy가 다시 들어간 것인가요?콘솔을 보니 fixDiscountPolicy는 의존 주입이 일어나지 않아서 이렇게 생각해보았습니다.
-
해결됨스프링 핵심 원리 - 기본편
선생님의 Build.gradle 소스코드를 받을 수 있을까요
분명 예제 강의에서 알려준대로 spring 홈페이지에서 받은 파일인데 저는 assertj 나 springframework 가 Build.gradle에 안들어가 있더라고요 그래서 Build.gradle 코드를 받고싶습니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스프링 컨테이너 한 클래스 내에서 두개의 @Repository 사용하기
BookController 내에서 서로 다른 Repository를 사용하려고 한다면 어떻게 사용해야 하나요?1번인 saveBook에서는 BookMemoryRepository의 saveBook()을 사용하고 2번인 saveBook1 에서는 BookMySqlRepository의 saveBook()을 사용하고 싶다고 하면 사용할 수 있는지? 사용할 수 있다면 어떻게 사용해야 하나요??
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
stockservice 함수의 saveandflush 질문이 있습니다
stockservice 클래스의 decrease의 saveandflush를 synchronized를 위해 사용한 것은 이해가 갔습니다.근데 jpa를 사용할 때 값을 update할 때 더티체킹에 의해서 update가 확인이 되어 repository를 통해 save를 하지 않아도 되는걸로 알고 있는데 실무에선 save나 saveandflush를 사용하지 않고 decrease 메서드만 사용해도 될까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
requestParamV1 실행 과정
RequestParamController의 requestParamV1는/request-param-v1 에 요청이 들어오면 실행이 되는데 파라미터 보면 request랑 response가 있습니다.여기서 궁금한 게 mvc 동작과정이 핸들러 매핑으로 핸들러를 찾아서 그 핸들러에 맞는 어댑터를 찾은 후 그 어댑터가 핸들러(컨트롤러)의 메소드(requestParamV1)를 호출하는거잖아요?1. 어댑터는 requestParamV1이라는 메소드명은 어떻게 알고 호출할 수 있는건가요?2. requestParamV1의 파라미터가 지금은 request, response인데 이것 말고도 사용자가 다양한 파라미터를 적을 수 있는데 이처럼 메소드가 요구하는 파라미터들을 어떻게 알고 다 넘겨줘서 호출할 수 있는건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@RestControllAdvice를 Async에서 활용
@RestControllAdvice를 Async 환경에서도 사용을 하려고 했는데 Async에는 적용이 되지 않는 것 같습니다. 관련해서 혹시 어떻게 처리를 하는게 좋은 방법일까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api/v1/simple-orders로 api호출을 하면 자꾸 InvalidDefinitionException이 발생합니다.
안녕하세요 강의 잘 보고 있습니다.다름이 아니라 강의를 보면서 따라서 하고 있는 도중에 api/v1/simple-orders로 접근을 하면 invalidDefinitionException이 발생합니다.혹시 오타가 있나해서 몇번이고 다시 확인하고 orderRepository클래스도 붙여넣고 initDB클래스도 붙여넣었는데도 안되네요...찾아보니까 jackson 라이브러리가 객체를 JSON타입으로 바꾸면서 생기는 오류라고 하는데 도움을 받을 수 있을까요?아래는 압축한 파일일 있는 링크입니다.https://drive.google.com/file/d/1FGTNqcXxTkw2l-UeVN50kW6v12b4oGQj/view?usp=sharing
-
해결됨토비의 스프링 부트 - 이해와 원리
스프링의 미래 질문
좋은강의 너무 감사드립니다.혹시 스프링 관련해서 여쭤보고 싶은게 있습니다.점점 더 Cloud 환경으로 가면서 SpringBoot 이외에 더 빨리 개발, 배포 할 수 있는Spring Quakers 라던가 micronaut 같은 프레임 워크들이 등장했는데업력, Spring 경력이 높으신 선배님으로서 위와 같은 프레임워크들이 추후에 더 성장해서Boot 만큼 많이 쓰이게 될 수 있을거라고 생각하시나요? 아니면 조금 반짝 하다가 Spring 진영이 더욱 발전해서 더 빠른 개발, 성능을 커버 할거라고 보시나요? 궁금합니다.앗 그리고 + GraalVm 의 미래도 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
스프링빈을 만드는 방법
수업중에 스프링 빈을 만드는방법에 대하여 설명해 주셨는데 스프링빈을 만드는 방법직접 등록하는 방법 (Xml) factoryBean을 통해서 등록하는 방법 (일반적으로 자바 config를 사용하는 것)이렇게 이해하면 될까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CSR부분이 잘 이해가 안가요
제가 프론트랑 백엔드를 둘다 작업한적이있었는데 그떄는url: 프론트서버/orders을 호출하면프론트가 백으로 orders에 대한 정보를 달라고 해요그리고 백엔드가 프론트로 정보를 넘겨줘요그리고 프론트는 그 정보를 가지고 화면을 그리죠근데 이사진을 보면 자바스크립트 링크를준다는얘기도 무슨 얘기인지모르겠고자바스크립트를 요청한다는데 그말도 뭔말인지 모르겠어요 저는 저런 작업을 안했던것같은데 말이죠 다시 생각해보니까 저서버가 프론트서버(웹서버)+ 백서버(was)를 모두 포함한것같네요.. 맞나요?근데 그래도 다음 세가지 말이 무슨말인지 모르겠어요자바스크립트 링크를 내려준다 (링크가 뭘말하는것인지)웹브라우저가 서버에 자바스크립트를 요청한다(링크를 받았는데 왜또요청하는지)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]바로 이전 강의의 메모리 기반 실행까진 막힘없이 잘 수행됐고cmd로 h2 실행(윈도우 입니다.)해서 회원가입, 조회 하는것도 문제없이 잘 되었었는데이번 강의의 메모리가 아닌 데이터베이스에 저장하는? 부분 들어가고나서오류가 발생했습니다. 강의교재의 소스코드 그대로 복붙하여 실행하였고홈화면과 가입화면까진 잘 가지는데폼에 입력하고 등록할때랑 조회 누르면 안뜨던 오류가 발생하는데 뭐가 문제일까요? 항상 감사하게 잘 보고 있습니다. 추운 날씨에 건강 유의하시고 늦었지만 새해 복 많이 받으세요 !