55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 프레임워크 핵심 기술
스프링 공부방법
안녕하세요. 스프링 공부방법 문의드립니다. 새로운 기술을 접할때 공식 문서를 선호하는 편입니다. 스프링 공부를 위해 공식문서를 처음부터 끝까지 보려했으나 너무 어려워 백기선님의 강의를 수강하고 있습니다. 현재 회사에서 Spring을 이용한 웹서비스를 유지보수하고 있는데 부트도 아니고 JPA도 아니라서 스프링 핵심강의 > MVC > RestAPI 순으로 들으려고 하고 있습니다. 그런데 강의만으로는 깊이가 없는것 같아 핵심강의 강좌가 끝나면 스프링을 자세히 공부하고 싶은데요, 스프링 공식문서(Core파트)를 봐야할지 토비스프링을 봐야할지 모르겠습니다. 어떤방법이 좋을까요? 스프링 레퍼런스(core)를 본다. 토비 스프링 책을 본다. 공부를 따로 하지말고 MVC, RestAPI강의를 듣고 실전에서 코딩하며 필요할때 찾아본다.
- 미해결스프링 프레임워크 핵심 기술
PropertyEditorSupport 관련 질문드립니다.
안녕하세요. 2년차 개발자 임진욱입니다. 강의 감사하게 잘 듣고 있습니다. 강의를 듣고 실습 중 propertyEditor Binding을 따로 하지 않아도 정상적으로 동작하여, 검색 결과 Standard JavaBeans infrastructure will automatically discover PropertyEditor classes if they are in the same package as the class they handle. Also, these need to have the same name as that class plus the Editor suffix. https://www.baeldung.com/spring-mvc-custom-property-editor 같은 패키지 내부에 클래스명 + Editor suppix가 붙으면 자동으로 property Editor 바인딩이 되는 것을 찾았습니다. 강의 자료에는 클래스 명이 EventPropertyEditor로 되어 있는데, 영상에는 EventEditor로 하여서, 저와 비슷한 혼란을 갖는 분이 없기를 생각해서 질문 등록하였습니다! 추가적으로 저는 소스코드가 어떻게 동작하는지 명확하게 알고 싶은데, 장벽에 막혀 흐지부지하게 되는 경우가 많은 것같습니다. 이번에도 따로 바이딩을 해주지 않는데 정상적으로 동작하지 않아서 디버깅도 해봤는데, url 호출시 propertyEditor클래스 즉,영상내 예시인 EventEditor의 setAsText 메서드로 바로 이동하는 것을 보았습니다. 스프링 내부에서 이런것을 처리해주구나.. 하면 되는데 그런 코드가 어딨는지 궁금할 경우, 어떻게 공부를 해야할지 아님 Auto property Editor binding을 해준다니, 해주겠지.. 하고 받아들여야하는지 궁금합니다. 유투브 영상이나 인프런 강의 잘듣고있습니다. 감사합니다.
- 해결됨스프링 프레임워크 핵심 기술
스프링 AOP 학습 후 고찰입니다.
안녕하세요. 관점지향프로그래밍에서 스프링 AOP를 사용한다면 Aspect, Target, Advice, Join point, Pointcut에 대한 이해가 필요함에 따라 각각의 의미를 강의를 통해 이해한데로 적어봅니다. 'EventService'를 구현한 클래스 'SimpleEventService'가 있고 create(), publish(), delete() 총 3개의 메소드를 재정의 한 상황에서 각각의 메소드 실행시 '성능에 대한 로그(공통관심사)'를 출력해야 할 때 이를 AOP 주요 개념으로 해석해 보면 , Aspect(모듈) - 공통관심사'들'을 정의해 놓은 Class, 강의에서는 'PrefAspect' Bean. Target - 공통관심사가 적용이 될 대상(* 프로젝트에 존재하는 모든 Class는 타겟이 될 수 있는 것인지 궁금합니다.) Advice - 모듈(Aspect) 안에서 정의된 공통관심사(로그), 강의에서는 'PrefAspect' bean의 'logPref'() 또는 'hello()' Pointcut - 공통관심사가 적용이 될 위치, Target(Class)에 대한 특정 행위(Method)의 실행 시점을 의미 Joinpoint - 합류점, 가령 'SimpleEventService'의 특정 메소드 실행 전, 실행 후 등..(@Before, @Around와 같은 어노테이션을 의미) 제가 생각한 개념이 맞는지 조언 부탁드립니다. (AOP는 반복학습을 해야겠습니다.) 미리 답변 감사드립니다.
- 해결됨스프링 프레임워크 핵심 기술
DataBinding 학습 중 @PathVariable 어노테이션에 대한 고찰
안녕하세요. DataBinding 학습 중 궁금한 사항이 생겨 질문을 남깁니다. WebMVC 기반으로 테스트 코드를 작성하면서 @PathVariable 어노테이션을 사용했었는데요. 해당 어노테이션이 실제 어떤 역할을 하는지 구글 서칭해보니, GET 방식 요청의 템플릿 변수({템플릿 변수})의 값을 읽어들일 때 주로 사용하는 어노테이션이라고 합니다. (수업중 /event/{event}에서 {event}값이 되겠네요.) 여기서 한가지 의문이 들었습니다. 수업에서 URL 요청에 따른 '문자열 타입'의 파라미터(event) 값이 EventController getEvent(Event event) 메소드의 'Event 타입' 매개변수로 전달됨에도 예외가 발생하지 않고 정상적으로 실행이 될 수 있었던 이유는 Bean으로 등록되어 있는'Converter' 또는 'Formatter'가 동작함으로써 내부에서 구현된 특정 코드를 거쳐 '문자열 타입'의 파라미터를 형변환 시키고 'Event 클래스'의 생성자를 통해 프로퍼티에 값을 넣어 줌과 동시에 객체를 생성 및 반환하여 getEvent() 메소드의 매개변수로 Data Binding이 일어났기 때문에 예외가 발생하지 않았던 것인가요? 추가로 이를 응용하여 URL 매핑을 '/event/{id}' 처럼 명시적으로 설정한 경우 @PathVariable 어노테이션의 네임스페이스(?)를 사용하여 @PathVariable("id")처럼 설정해도 동일한 결과를 얻을 수 있는 이유도 위 문맥과 같은 의미일까요? 미리 답변 감사드립니다.
- 해결됨스프링 프레임워크 핵심 기술
Resource 추상화 강의 파트에 대한 이해
안녕하세요. Resource 추상화 파트를 학습한 후 이해한 내용이 맞는지 확인을 하고 싶어 질문을 남깁니다. 결국 Spring Boot 기반의 웹 애플리케이션 프로젝트를 생성하하고 'ApplicationContext'를 직접 주입받아 사용하는 클래스(가령 AppRunner와 같은...)를 사용한다면, 해당 클래스 내에서 프로젝트 내 존재하는 resource를 읽어들이는 코드를 실행했을 때 기본적으로는 'WebApplicationContext'가 동작해서 resource를 읽어들이는 것이고(이때 resource는 ServletContextResource 입니다.) 만약, 접두어(classpath 혹은 file)가 붙는 경우에는 그에 맞는는 'Context'가 resource를 읽어들이는 것으로 이해했습니다. 제가 정확히 이해를 하고 있는건지 궁금합니다. 미리 답변 감사드립니다.
- 해결됨스프링 프레임워크 핵심 기술
JDK 11 version 설정시 질문이 있습니다.
안녕하세요. 스프링 프레임워크 핵심 기술을 수강하면서 JDK 1.8을 사용하였고, 프로젝트 생성 및 학습을 진행하는 중에 'IoC ResourceLoader'파트에서 JDK 11 버전에서 제공되는 "Files.readString()" 메소드를 사용하기 위하여 IntelliJ > Project Structure에서 SDK 설정을 JDK 11 로 변경하였고, MacOSX 환경에서 jenv로 관리되고 있는 자바 환경변수(PATH)를 OpenJDK11로 설정을 바꾸었습니다. 마지막으로 pom.xml에서 <properties> 태그에 있는 <java.versoin> 값을 1.8에서 11로 변경하고 빌드를 하였는데요? 과연 제가 한 설정 방식이 맞을까요!? (이번 학습을 통하여 Maven과 같은 빌드툴에 대한 학습도 필요하다고 느꼈네요. 참고할만한 레퍼런스가 있다면 조언 부탁드립니다.) 좋은 강좌 컨텐츠에 감사드리며, 미리 답변 또한 감사드립니다.
- 미해결스프링 프레임워크 핵심 기술
messageSource cache 질문드립니다.
- 죄송합니다. 질문이 잘 못 된 것 같아 다시 드립니다. (원래 적었던 질문은 지웠습니다...) setCacheSeconds 설명을 보면, 설정된 interval 로 properties를 refresh 하는 것으로 이해 했습니다. public void setCacheSeconds(int cacheSeconds) Set the number of seconds to cache loaded properties files. Default is "-1", indicating to cache forever (just like java.util.ResourceBundle). A positive number will cache loaded properties files for the given number of seconds. This is essentially the interval between refresh checks. Note that a refresh attempt will first check the last-modified timestamp of the file before actually reloading it; so if files don't change, this interval can be set rather low, as refresh attempts will not actually reload. 그런데, 아래 부분에서 3초로 설정해도 application 실행 중에는 properties 파일을 변경하여도 print 되는 properties 는 변경이 없었습니다. @BeanMessageSource messageSource() { var messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:/messages"); messageSource.setDefaultEncoding("utf-8"); messageSource.setCacheSeconds(3); return messageSource;} 혹시 제가 잘못 이해한 부분이 있는지 알려주시면 감사하겠습니다.
- 미해결스프링 프레임워크 핵심 기술
PerfAspect 클래스에 대한 질문 있습니다.
PerfAspect 클래스가 Aspect, logPerf, hello 메서드가 Advice라고 생각하면 되나요? 그리고 스프링5까지 나왔는데 토비의 스프링 3로 좀더 깊게 공부하는 것도 괜찮은가요?
- 미해결스프링 프레임워크 핵심 기술
강의에서 다룬 동기적 실행과 비동기적 실행에 대해 설명 부탁드립니다
각각의 경우에 다라 쓰레드가 달라지는게 왜 그렇게 되는지도 궁금하네요^^;
- 미해결스프링 프레임워크 핵심 기술
var 오류
강사님 var를 인식 못하는데 어떻게 해야 하나요? 감사합니다
- 미해결스프링 프레임워크 핵심 기술
메시지가 잘 안찍히는데 도와주세요 ㅠ
저는 messages_ko_KR.properties 의 내용만 찍히네요 해당 파일의 내용을 지우고 실행하면 둘 다 messages.properties에 있는 내용인 hello, hoseok만 찍힙니다.
- 미해결스프링 프레임워크 핵심 기술
강의중 사용한 소스는 어디서 받을수 있나요?
강의 소스 좀 받고 싶습니다.
- 미해결스프링 프레임워크 핵심 기술
ConversionService
안녕하세요~ 10:10초 부분쯤에 보면 registry.addFormatter를 통해 등록된 Converter와 Formatter 들은 ConversionService 에 등록이 되고 이를 통해 실제 변화하는 작업을 한다고 하셨습니다. 그리고 이후에 상속관계도 그림을 보면은 DefaultFormattingConversionService 는 FormatterRegistry 와 ConversionService 두개를 상속 받고 있다는게 조금 이상합니다. FormatterRegistry 안에 ConversionService 기능이 있다고 예상이되는데... 왜냐하면 Converter를 FormatterRegistry 안에 등록을 하면 자동으로 ConversionService를 통해서 실제 변환 작업이 일어나잖아요?? 뭔가 조금 헷갈립니당.
- 미해결스프링 프레임워크 핵심 기술
의존성 주입
빈으로 등록할 수 있는 객체들만 빈으로 의존성 주입을 받을수 있는건가요? 08:18초에 그런 부분이 있어서 질문드립니다.
- 미해결스프링 프레임워크 핵심 기술
EventControllerTest
테스트 할때 다음과 같은 함수가 에러가나요. content() 이 함수가 빨간줄이 생기고 에러가 발생합니다. @Testpublic void getTest() throws Exception{ mockMvc.perform(get("/event/1")) .andExpect(status().isOk()) .andExpect(content().string("1"));}그래서 다음과 같이 코드를 수정하면 빨간줄은 없어지는데컴파일 에러가 발생합니다. @Testpublic void getTest() throws Exception{ mockMvc.perform(get("/event/1")) .andExpect(status().isOk()) .andExpect((ResultMatcher) content().string("1"));}ㅠㅠ답변 기다리겠습니다. 감사합니다.
- 미해결스프링 프레임워크 핵심 기술
8:30 에 설명내용 중에
CG 라이브러리?? 인가 어떤 것인가요?
- 미해결스프링 프레임워크 핵심 기술
EventConverter
안녕하세요. 기선님이 강의에서 알려주신거 처럼 Test를 진행할때 EventFomatter는 빈으로 등록 후 @WebMvcTest에 추가 해야 테스트가 통과되는데 EventConverter는 빈으로 등록하고 @WebMvcTest에 추가하지 않아도 테스트가 통과되던데 왜 그런가요??
- 미해결스프링 프레임워크 핵심 기술
Aspect 클래스를 만든다고 한다면 목적에 맞게 여러개의 Aspect 클래스를 만드면 되는건가요..?
예를들면 주문에 대한 Aspect, 사용자에 대한 Aspect 이렇게 만들면 되나요..?
- 미해결스프링 프레임워크 핵심 기술
@Qualifier 어노테이션 적용위치 관련 질문입니다.
예제에서는 필드에 @Qualifier 어노테이션을 적용하셨는데, 생성자에 해당 어노테이션 적용시 "The annotation @Qualifier is disallowed for this location"이라는 에러메세지를 받았습니다. 생성자에 적용이 안되는 이유를 알 수 있을까요?
- 미해결스프링 프레임워크 핵심 기술
classpath
강의중에..클래스패스를 기준으로 messages를 읽는다는게 무슨뜻이에요~? 이해가 잘 가지 않습니당. messageSource.setBasename("classpath:/messages");