묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
모델과 타임리프에 대한 궁금증 ..
home.html 파일에 th:fragment 가 있어요 home.html 컨트롤러에서 모델에 등록합니다. 플래그먼트.html 파일에서 타임리프 ${}로 모델가져와요 인텔리제이에선 Cannot resolve '변수명' 인식하지만 실행해보면 가져오는게 성공해요 왜일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
궁금한게 있습니다
섹션2강의를 들으면서 ㅇㅇ을 주로 사용한다고 자주 말씀하시는데 서블릿 자체로 사용하는경우가 아직도 있나요? 아니면 ㅇㅇ을 주로사용하신다는게 서블릿을 만약 사용할 경우 ㅇㅇ을 주로 사용하신다고 봐야할까요?
-
미해결스프링 부트 - 핵심 원리와 활용
properties파일 혹은 yaml파일을 통해 설정 데이터를 관리하는 방법에 대해 질문이 있습니다.
안녕하세요 강의 잘 보고 있습니다. 강의에서 언급해주신 내부 파일을 통한 설정 데이터 관리에 대해 궁금한 점이 있어 질문 드립니다. 강의에 있는 내용대로 소스코드와 설정데이터를 같이 관리한다고 하였을때 깃헙을 통해 버전관리를 하게 되면(public 레포지토리라 가정) 외부에 설정 정보가 노출되는 보안상 문제가 발생하게 되지 않을까요? 해당 이슈를 막기 위한 방법으로는 깃 이그노어에 설정파일을 추가하고 pull할 때 마다 설정파일을 공유를 하는 방법이 있을것 같습니다. 그러나 이는 설정 파일에 대한 버전을 관리하지 못하는 문제점이 발생하기에 바람직한 방법은 아니라 생각합니다. 이러한 상황에 대해서 버전관리 레포를 private으로 하는것 이외의 해결책은 존재하는지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody가 없는 경우
안녕하세요. 강의를 듣던 중 의문이 생겨 질문드립니다.만약 Controller의 특정 메소드에 @ResponseBody라는 애노테이션이 없다면 ReturnValueHandler가 http컨버터를 사용하지 않고 ModelAndView 객체를 만들어 dispacherServlet에 전달하고 view를 렌더하는 방식으로 진행한다고 이해해도 될까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
학습 내용과 번외로 의존관계 주입 시 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. 의존관계 주입 방법@Configuration public class HelloConfig{ @Autowired private DataSource dataSource; @Bean public PlatformTransactionManager txManager(){ return new DataSourceTransactionManager(dataSource); } } 2. 의존관계 주입 방법@Configuration public class HelloConfig{ @Bean public PlatformTransactionManager txManager(DataSource dataSource){ return new DataSourceTransactionManager(dataSource); } } 안녕하세요 의존관계 주입 연습 도중 궁금한 점이 생겨 올렸습니다 ! 보통 1번방법으로 스프링 부트에서 자동으로 등록해준 히카리 커넥션 풀 DataSource 구현체를 dataSource 변수에 의존관계 주입(@Autowired) 받았었습니다 그런데 2번 방법으로 시도해보니까 자동으로 dataSource 변수에 의존관계 주입이 되어서 DataSourceTransactionManager 객체가 정상적으로 빈으로 등록되는 것을 확인할 수 있었습니다. @Autowired가 있지도 않았는데 이것이 가능한 원리가 무엇인지 궁금합니다 !
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 테스트 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의내용과 동일하게 컨트롤+쉬프트+T 눌러서 JUnit4 선택하고 코드를 동일하게 쳤을때 이런 오류가 발생합니다 https://www.inflearn.com/questions/15495/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8F%84%EC%A4%91-%EC%97%90%EB%9F%AC-%EB%B0%9C%EC%83%9D링크에서 설정에서 run test를 intelliJ IDEA로 바꾸면 아래와 같은 오류입니다intellij IDEA로 변경 + 임포트를 jupiter.api.test 로 하면이런 오류입니다 run test를 default + 임포트를 jupiter.api.test로 하면이런 오류입니다....어떻게 해야 할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
create 시 반환 타입 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]create시에 반환 타입을 Long 을 주는 실무적인 관점에서 이유가 뭘까요?? 어떤 경우에 좋은지 예를 들어 주실 수 있을까요??https://woojin.tistory.com/115#google_vignette에서는 아예 void 를 사용하지 말라고하는데 그 이유가 공감이 전혀 안됩니다.예를 들어 뭐 이런 건가요?? 주문 완료하기 버튼을 딱 누르면 생성된 주문 ID 가 딱 반환이되고 생성된 주문 ID를 바탕으로 조회해서 어떤 주문이 완료되었는지 표시해주게? 그러면 만약에 상품에 대한 평가를 남긴다고 하면 상품 평가 ID 를 반환해봤자 차피 바로 조회할 필요가 없어 보이는데 이러면 void 써도 되는 것 아닌가요??
-
미해결스프링 핵심 원리 - 기본편
request scope과 aop
[질문 내용]안녕하세요. 강의를 매우 잘 듣었습니다. 강의를 듣던중 scope를 request로 설정하고 로그를 기록을 알려주셨던 부분에서 궁금증이 생겼습니다. 요청마다 uuid를 활용하여 로그를 기록하는 것은 aop를 활용한다면 scope 설정 없이도 가능할 것이라 생각이 드는데 scope를 지정하여 활용하는 방식만의 이점이 있을가요?
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
Backpressure 전략
안녕하세요~ 유익한 강의 정말 감사드립니다.Backpressure 기법에 대해 강의를 듣던 중 궁금한 게 생겼습니다.Error, latest, drop, ignore 등의 backpressure 기법은 buffer에 데이터가 다 찼을 때 데이터를 drop 하는 것 같은데 drop되는 data들은 유실 된다고 볼 수 있을까요?그게 아니라면 re-try하는 과정이 backpressure 이후에 진행되는 건지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
ConfigurationSingletonTest 테스트 실행시 오류
에러 문장이고 OrderServiceImpl의 타입의 변수 orderService에서 method getMemberRepository()를 찾을 수 없다는 뜻같은데 OrderServiceImple의 .getMemberRepository()에서 에러가 납니다.OrderServiceImpl을 가니이상이 없는거 같은데 잘모르겠습니다.
-
미해결코틀린 문법부터 실무까지 (실전 자바->코틀린 변환)
실습. dto 변환해보기
변환도중 85line에서 NullPointException 오류메시지가 나와서 *.http테스트가 안됩니다. 85line 코드는 assertEquals(7, response.getExperienceYears().intValue()); 이고 아래와 같이 오류메세지가 나옵니다.Method invocation 'intValue' may produce 'NullPointerException' CreatePrince.kt에서 @NotNull @Min(0) val experienceYears: Int? = null,null 허용을 해줬는데 NPE를 뱉어서 문의드립니다
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
authentication관련 질문...
public void login(Account account) { System.out.println(account); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(account.getNickname(), account.getPassword(), Collections.singleton(new SimpleGrantedAuthority("ROLE_USER"))); SecurityContextHolder.getContext().setAuthentication(token); }우선 AccountService에 있는 login입니다.제가 테스트를 하던 도중 나머지는 다 되는데 authetication부분에서 문제가 있는것을 발견했습니다. 단위테스트로 하다보니 권한이 부여가 되지 않아서 회원가입을 해도 다시 원상태로 복구되더군요 springsecurity6로 바뀌면서 새로 바뀐부분이 있길래 구글링해서 바꿀만큼 바꿔보고 찾을만큼 찾아봤다 생각했는데도자꾸 권한부여 부분에서 문제가 생깁니다(위의 login함수)이럴경우 어떻게 바꾸어야 할까요...? 저 위에 SecurityContextHolder.getContext().setAuthentication(token); 라는 코드전에 토큰을 출력해 보니UsernamePasswordAuthenticationToken [Principal=jungsik, Credentials=[PROTECTED], Authenticated=true, Details=null, Granted Authorities=[ROLE_USER]]이렇듯 AUtheticated는 true로 반환되는데 redirect될때는 권한이 사라지는것 같습니다
-
해결됨스프링 핵심 원리 - 기본편
configurationTest 인스턴스
public class ConfigurationSingletonTest { @Test void configurationTest() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService.getMemberRepository(); MemberRepository memberRepository2 = orderService.getMemberRepository(); System.out.println("memberService -> memberRepository = " + memberRepository1); System.out.println("orderService -> memberRepository = " + memberRepository2); System.out.println("memberRepository = " + memberRepository); Assertions.assertThat(memberService.getMemberRepository()).isSameAs(memberRepository); Assertions.assertThat(orderService.getMemberRepository()).isSameAs(memberRepository); } }public MemberRepository getMemberRepository() { return memberRepository; }public MemberRepository getMemberRepository() { return memberRepository; }MemberServiceImpl, OrderServiceImple 둘 다 위의 코드처럼 getMemberRepository까지 다 만들었는데 인스턴스가 다르게 나오는 이유는 뭘까요?
-
미해결스프링 핵심 원리 - 기본편
DiscountPolicy discount()의 매개변수 관련 질문
public interface DiscountPolicy { /** * * @return 할인 금액 */ int discount(Member member, int price); }discount()의 매개변수 int price는 FixDiscountPolicy에서는 사용되지 않고 RateDiscountPolicy에서만 사용됩니다. 모든 구현 클래스에서 사용되지는 않는 매개변수를 인터페이스에 선언했다는 점이 잘 이해가 되지 않습니다. 모든 구현 클래스에서 사용되지 않는 매개변수를 인터페이스 level에 선언해도 괜찮은 것인지 여쭤보고 싶습니다.
-
해결됨스프링 핵심 원리 - 기본편
모든 빈 출력에서 에러가 떠요
2분 30초에 런 해보는데 에러가 나옵니다. 파일 추가하라는 것도 했고 다 했는데 에러가 떠요깃허브에 코드도 올렸는데 이것도 참고해주세요...!
-
미해결스프링 핵심 원리 - 기본편
Order의 할인 금액, 주문 금액 관련 질문
public class Order { private int discountPrice; // 할인금액 public int calculatePrice() { // return: 주문금액 return itemPrice - discountPrice; } }(1) 주문 금액을 필드가 아닌 메서드로 두신 이유가 정말 궁금합니다.(2) 1개의 주문에 대해서는 여러 상품이 존재할 수 있고, 하나의 상품을 여러 개 주문할 수도 있습니다. 이 예제에서는 주문 1개에 대해서, 상품 1개를 1개만 구매할 수 있다는 상황이 가정된 것인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
리액트를 사용시 인라인 기능이 가능한가요?, 스크립트 영역의 데이터들을 출력하려면 어떻게 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]리액트를 이용하여 프론트를 개발하면 리액트도 자바 스크립트 언어이니 똑같이 인라인 기능을 사용할 수 있나요? 자바 스크립트, 리액트 둘다 모르는 상태이지만 리액트가 자바 스크립트 기반이라고 알고 있어서 질문 드립니다.서버를 실행하였는데 스크립트 코드를 표시하려면 어떤 식으로 코드를 작성해야 하나요? 스크립트 영역 외부에서 <p th:text=“${user.username}></p>을 사용해보았는데 표시가 안되었습니다. 그리고 객체를 json으로 받았는데 json의 값들을 사용하려면 어떻게 해야 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안되다가 한참뒤에 갑자기 되는 경우?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]http://localhost:8080/basic/items/items.html'목록으로' 버튼을 누르면 저기로 이동하길래자료 코드 그대로 복붙해도 안되고, 인텔리제이 껐다 켜도 안되고 30분을 삽질하다가 게시판에 글쓰는 도중에 갑자기 잘 되네요저번에도 한번 그런적이 있어서요 1시간을 시간 낭비하다 코드가 바뀌지 않았음에도 갑자기 되더라구요 이런 경우도 가끔있나요?? 캐시가 문제인건지ㅜ 또 이럴까봐 걱정이에요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ItemRepository
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. Spring을 활용하여 ItemRepository를 짜려면 어떻게 해야 하나요? 제 기억상 기본편에서, private static final store에 new로 할당않해줘도 됬던것 같습니다...그렇게 하면, ItemRepositoryTest에서도 ItemRepository itemRepository = new ItemRepository(); 하지 못했던 것 같은데... 이건 어떻게 해야 Spring을 잘 활용한 건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean Validation
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]Bean Validation는 두 가지 경우가 있다하였습니다. 1. @ModelAttribute 2. HttpMessageConverter를 이용하는경우이 두 경우에 대해서 속성 타입이 일치하지 않아 바인딩이 실패하는 경우1의 경우 해당 필드에 대해서 Bean Validation이 적용되지 않고 나머지 필드들은 정상 적용되어 나머지 필드들은 정상 바인딩 되고, Validator를 사용할 수 있다하였습니다.2의 경우 컨트롤러가 호출되지않고, Validator가 적용되지 않는다하였습니다.그렇다면 1의 경우 해당 필드(즉, 속성이 불일치하여 바인딩 되지 않는 필드)의 경우 Bean Validation 뿐만 아니라 Validator도 적용되지 않는지 궁금합니다. 그리고 typeMismatch의 경우는 어디에 속하는 것인지 궁금합니다. 또한, Bean Validation의 경우 글로벌 Validator가 적용되어 있어, @Valid, @Validated만 적용하면, 검증 오류가 발생하였을 때, FieldError, ObJectError를 생성해서 BindingResult에 담아주는 것으로 알고 있습니다.그렇다면 Bean Validation의 경우 꼭 코드에 명시적으로 BindingResult를 써야하는지 궁금합니다.제 생각은 굳이 쓰지 않더라도 즉, BindingResult를 명시하지 않더라도 Bean Validation에서 @Validated가 적용되었을 때, 검증 오류가 발생한다면 메세지 소스를 만들어 해당 메시지를 클라이언트에 전송하면 되는 것 아닌가 생각이듭니다. (CSR 방식입니다.) 이외에 혹시 추가적으로 알고있으면 좋은 정보들도 부탁드립니다. 감사합니다.