묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Around() 문법에 대한 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Around("execution(* hello.hellospring..*(..))") 문법의 의미를 "hello.hellospring 패키지 포함 그 하위에 있는 모든 패키지의 모든 메서드에 대하여 해당 Advice를 적용하라"는 뜻인 거 같은데요. 예를 들어, 만약 아래와 같은 조건이라면 해당 @Around 문법이 어떻게 수정되는 지 궁금합니다."hello / hellospring / service 패키지 하위에 있는 MemberService 클래스의 findMember() 메서드에 대하여 해당 Advice를 적용하라. findMember() 메서드의 return type은 List<Member>이다."
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
강사님 Swagger에 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. springfox 버전의 스웨거는 2020년 이후로 업데이트가 종료된 후로 springdoc의 스웨거를 사용하는데 (업데이트 지속) 어떤걸 의존성 추가해야하는게 맞는것일지 고민이 됩니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
4:40초에 하시는 말씀(findMember 호출한 곳)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한쌤께서 4분40초쯤에 하시는 말씀 중 findMember 호출한 데가 없다고 말씀하시는데, 그게 무슨 말인가요..? join은 예제에서 잘 호출됐는데... 하신 말씀이 잘 이해가 안 가서 질문드립니다!
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
Next Lv 강의에 대해서 계획중이신게 있을까요?
LDAP나 OAuth2는 다른거하고 연동하는거니까 패스하고.. Method Security(PreAuthorize, PostFilter, etc...)Role HierarchyLow Level Security(privileges) - Read, Write, Update, Delete등등 이런 고급 시큐리티쪽이요!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
result를 Optional<Member>로 선언하지 않는 이유
[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. MemoryMemberRepositoryTest 파일에 대한 질문이 있습니다.public void findAll() {} 에서 보시면 result를 List<Member>로 선언해줬는데,public void findByName(){} 에서는 result를 Optional<Member>로 선언하지 않는 이유가 궁금합니다...MemoryMemberRepository 파일의 메소드와 동일하게 가려면 맞춰줘야 하는 줄 알았는데 Member result로만 선언이 되길래 여쭤봅니다!
-
미해결스프링 시큐리티 OAuth2
addFilterBefore 관련한 질문입니다!
안녕하세요.필터 삽입 위치 관련해 작년에 남겨주신 답변에서, 인증 필터 전후로 넣는 게 적절하다 판단되어 UsernamePasswordAuthenticationFilter 앞에 넣으셨다고 설명해주셨는데요.그럼 편의에 따라 인증 필터인 AnonymousAuthenticationFilter 뒤에 넣어서 CustomOAuth2AuthenticationFilter에서 authentication 객체의 null 처리를 하지 않는 방법은 괜찮을까요? 실제로 해보니까 NullException이 발생하지 않더라구요.추가적으로 다음 처리를 해줄 때, key("anonymous"), principal("anonymousUser")은 정해진 값을 넣어주신 걸까요? ROLE_ANONYMOUS는 정해진 권한인 것 같은데..if (null == authentication) { authentication = new AnonymousAuthenticationToken("anonymous", "anonymousUser", AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS")); } 감사합니다.
-
해결됨스프링 시큐리티 OAuth2
authorization server 1.0.2 Oidc Configurer없음
현업 환경 상 1.0.2 버전에서 개발하고 있는데 OAuth2AuthorizationServerConfigurer 에 OIDC 관련 configurer 가 빠진 것으로 보입니다. 공식문서를 봐도 customizing 하는 부분은 있는데 default 설정은 어떻게 가져다 쓸 수 있는지 안내되어있는 곳을 못찾았는데요. get /userinfo 요청을 보내도 OidcUserInfoEndpointFilter 에 디버깅이 걸리지 않고 FilterChainProxy 에서도 Filter 리스트에서 빠져 있습니다. 어디를 찾아봐야할까요? private Map<Class<? extends AbstractOAuth2Configurer>, AbstractOAuth2Configurer> createConfigurers() { Map<Class<? extends AbstractOAuth2Configurer>, AbstractOAuth2Configurer> configurers = new LinkedHashMap<>(); configurers.put(OAuth2ClientAuthenticationConfigurer.class, new OAuth2ClientAuthenticationConfigurer(this::postProcess)); configurers.put(OAuth2AuthorizationServerMetadataEndpointConfigurer.class, new OAuth2AuthorizationServerMetadataEndpointConfigurer(this::postProcess)); configurers.put(OAuth2AuthorizationEndpointConfigurer.class, new OAuth2AuthorizationEndpointConfigurer(this::postProcess)); configurers.put(OAuth2TokenEndpointConfigurer.class, new OAuth2TokenEndpointConfigurer(this::postProcess)); configurers.put(OAuth2TokenIntrospectionEndpointConfigurer.class, new OAuth2TokenIntrospectionEndpointConfigurer(this::postProcess)); configurers.put(OAuth2TokenRevocationEndpointConfigurer.class, new OAuth2TokenRevocationEndpointConfigurer(this::postProcess)); return configurers; }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080 실행 코드 process running
localhost:8080 실행하려고 하는데 실행코드를 보면 아래와 같이 process가 안 끝나고 process running for 10.302로 멈춰있는 상태에서 움직이질 않습니다. 그리고 localhost:8080을 실행해보면 초록색 로고가 안 뜨고 인터넷 표시만 뜹니다. 무엇이 문제일까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
부하테스트 비용이 궁금합니다
강의에서 부하테스트를 하셨을 때 비용이 어느 정도 나왔는지 궁금합니다.부하테스트 시 비용 절약하는 방법이 궁금합니다. elb, ec2, rds 등등 설정하고, ngrinder를 통해 부하테스트를 진행한 뒤에 결과 확인 후 바로 끄면 비용을 절약할 수 있을까요?
-
미해결스프링 시큐리티 OAuth2
Client Credentials 방식에서 로그아웃 처리
안녕하세요.Client Credentials 방식에서 사용자가 곧 클라이언트고 서버 간 통신에 사용되며 로그인 방식이 인가까지만 이뤄진다고 이해했습니다. 인증된 사용자가 아니기 때문에 /logout에 접근하지 못하는데요. 익명 유저로 처리되니까요.permitAll()에 /logout을 추가해서 로그아웃 과정을 살펴 보니까 session과 context도 정리가 다 되더라고요. 혹시session이나 context가 null 나오는 건가 싶었거든요. 그렇다면 Client Credentials 방식의 로그인의 경우 logout을 permitAll에 추가하여 로그아웃 로직이 실행될 수 있도록 해야 하는 것 같은데 맞을까요? 아님 굳이 안 거쳐도 되는 과정인가요?감사합니다.
-
미해결스프링 배치
chunk에서 exception 처리 로직..
skipListener를 등록하여 테스트 중입니다.writer 에서 exception이 발생했는데 바로 skipListener로 넘어가지 않고 동일한 item에 대해 processor, writer를 한번 더 실행하고 skipListener로 넘어가는 현상을 발견했습니다.찾아보니 spring batch의 기본 동작 로직인 걸로 나오네요.보다 안정적인 수행을 위해 있는 기능 같은데 이렇게 재실행하지 않고 오류가 발생하면 바로(!!!) skipListener로 넘어가도록 할 수 있는 방법이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@ManyToOne 매핑 질문입니다.
게시글과 댓글을 매핑 하려고 하는데 게시글에 어떤 댓글이 달렸는지 조회 하기 위해 게시글 -> 댓글 OneToMany 단방향 매핑을 하려고 했더니, @OneToMany는 지양하라고 해서 댓글에 @ManyToOne 매핑을 하려고 했는데요. 이러면 댓글->게시글 단방향이 되는 것 아닌가요? 게시글에 어떤 댓글이 있는지 확인을 하고 싶을 뿐인데 ManyToOne을 지양하는 이럴 땐 어떻게 해야하는지 궁금합니다 .. 매핑이 아니라 차라리 int communitySeq 를 멤버 변수로 갖도록 하고 jpql에서 join문을 통해 데이터를 가져오는 것이 맞을까요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberController 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]3분40초부터 말씀하시기를, 컨트롤러는 어쩔 수 없다고 하시면서 MemberService나 MemberRepository 같이 SpringConfig에 따로 빼주지를 않는데, 그냥 MemberController에서 @Controller와 @Autowired를 뺀 뒤, 아래와 같이 설정해주지 않는 이유가 궁금합니다. 이렇게 설정하면 어떤 점에서 문제가 발생하나요??public MemberController memberController() { return new MemberController(memberService());}
-
미해결스프링 배치
AsyncItemProcessor 트랜잭션 단위
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하세요!질문이 있습니다. 코드를 봐보니 AsyncItemProcessor를 사용할 때도 트랜잭션은 개별 아이템 단위가 아니라 Chunk 단위인 것 같은데 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
query dsl 간헐적으로 작동 안 하는경우
안녕하세요 강사님 강의 덕분에 잘 배우고 졸업을 앞두고 있는 학생입니다.jpa domain을 nexus에 올려 실제 프로젝트에 dependency를 추가하여 사용하고 있었는데도메인이 수정될 때마다 nexus에 배포하고 dependency 버전을 변경해야하는 번거로움 때문에 하나로 합치는 작업을 했습니다.실제 프로젝트로 합쳐진 entity들이 잘 import 될 수 있도록 경로도 다 수정해주고 qclass도 정상적으로 생성되었으나 프로젝트 재구동시 간헐적으로 querydsl이 작동하지 않는 오류가 있습니다...qclass도 잘 import 됐고 정상 작동될 때는 잘 되다가 재구동 2~3번에 한번꼴로 qclass를 참조하는 api는 작동하지 않습니다...qclass 사용하지 않는 api들은 정상 작동합니다.. 간헐적으로 오류가 나니 컴파일시점에 메모리가 부족하여 qclass 생성을 제대로 못 해주나 싶어서 heap 사이즈도 늘려보았으나 똑같은 상황입니다. 디버그 모드로 확인하니 QMember a = new QMember(); 이 코드 까지는 오는데 다음 프로세스로 넘어가지도 않고 에러 로그또한 찍히지 않으며 그냥 끝나버리는 것 같습니다. 혹시 왜 이런 현상이 나는지 알려주실 수 있나요 ㅠㅠ spring boot 2.1.62java 1.8querydsl 4.4.0 사용중입니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
1대 다 fetch join 에 대해서 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]요새 너무 질문을 많이 하는 것 같네욤 ㅠㅠ1대다 fetch join 에서 @OneToMany 밑에다가 @BatchSize를 설정해서 성능을 최적화하는 강의 를 이해했습니다. 그런데 궁금한게 생겼습니다. 예를 들어 A, B , C 가 1대 다 , 다대 1 이라고 치면 (C는 중간 테이블 ) A에서 C의 데이터를 가지고 오는데 이 경우에는 @BatchSize를 이용해서 성능을 최적화하는게 좋은 방식인가요?예를 들면 A 에서 A.getBList().getC.Name() 이렇게 할 때 A에서 B에 대한 쿼리는 Batch Size 를 통해서 줄일 수 있어도 getC 를 통해서 또 쿼리가 나가는데 ....어떻게 보면 걍 B 의 리포지토리에서 @Query("select b from B join fetch C where b.a,id=:id) 이런 식으로 하는게 더 나아보이기도 하고요.. 어떤 식으로 하는 것이 더 효율적이라고 생각하시는게 궁금합니다!!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd 창에 gradlew.bat를 입력하면 실행할 수 있는 프로그램, 또는 배치 파일이 아니라고 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다음과 같은 말이 나와요. 환경변수 설정하는 방법도 해봤는데 뭐가 문제일까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended경고가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)A. 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)A. 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)A. 네[질문 내용]테스트 코드 실행을 하면OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended이 경고가 계속 뜹니다.https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning찾아보면서 이 답변을 따라해도 로그가 뜨지 않고 경고가 뜨는데 어떻게 해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jdbc properties에 유저와 패스워드가 없어서 그런지 에러가 뜹니다
[질문 내용]이렇게 뜨고있고, 유저랑 패스워드가 틀렸다는 에러가 뜹니다.ip 주소때문이라 생각이 들어서 localhost로 변경 후 톰캣을 재실행 했음에도 여전히 유저와 비밀번호가 틀렸다는 에러가 나옵니다. properties에 유저와 패스워드를따로 설정해줘야할까요?
-
미해결스프링 시큐리티 OAuth2
Resource Owner Password 권한 부여 방식 문의
안녕하세요. Resource Owner Password 권한 부여 방식에 대해 문의 드립니다.AppConfig에 사용자 이름과 패스워드를 map 저장하게 되는데요.사용자가 수많은 사용자의 이름과 패스워드를 was vm 메모리에 들고 있는 건가요?was가 이중화 또는 클라우드 일때 매번 다른 was를 붙으면 그때마다 권한을 다시 부여 받는 것인지요?감사합니다.