묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
자바 버젼이 안맞는거같은데 어떻게 해야할지 모르겠네요 ㅜㅜ
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' but:위와같은 오류가 나오면서 오류가 나서 그레이들이 멈추는데 해결을 못해서 강의 시작을 못하고 있어요 ㅠㅠ 어떻게 해야하나요
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberRepository에 final을 붙이는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. MemberService의 memberRepository에 final 키워드가 붙어야 하는 이유를 알고 싶습니다. store에는 final이 붙지 않았어서 그 둘의 어떤 차이 때문에 final이 붙을지 말지가 결정되는 것인지 궁금합니다.
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
스프링 시큐리티 6.2 버전 이후로 apply() 메서드를 이용한 JwtAuthenticationFilter 가 등록이 안됩니다.
직접 만든 JwtAuthenticationFilter 를 스프링 시큐리티 필터로 등록하는 과정에서 HttpSecurity.apply() 메서드를 활용하셨는데현 시점 스프링 시큐리티 6.2 버전 이후로는 apply() 메서드가 deprecated 되어 더 이상 지원되지 않는 상황입니다. 이걸 6.2 버전에 맞게 대체할 방법을 찾다보니 with() 메서드를 사용하면 되는것까지는 확인했는데 이 메서드는 또 어떻게 써야할지 모르겠습니다.public <C extends SecurityConfigurerAdapter<O,B>> B with(C configurer, Customizer<C> customizer) throws Exception 어떻게 하면 강의에서처럼 JwtAuthenticationFilter 를 스프링 시큐리티 필터로 등록해줄 수 있을까요위의 캡처본을 보시면 알 수 있듯이 apply() 메서드는 현재 제가 사용중인 스프링 시큐리티 6.2 버전 부터는 deprecated 되어 지원이 되고 있지 않은 상황이라 필터 등록이 되지 않고있습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어떤 메서드를 테스트하는게 바람직한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. findById는 테스트를 하지 않았지만, findByName은 테스트를 하고 있습니다. 레포지토리의 메서드 중 테스트해야하는 것과 테스트를 하지 않아야 하는 것을 구분하는 기준이 있을까요? 또 테스트 케이스를 만들어내는 방법이나 원칙이 있는지도 궁금합니다.
-
미해결스프링 시큐리티
안녕하세요. 익명 객체와 세션 관련 궁금증입니다.
실습환경스프링부트 3.2.2 기준 security 6.2.1질문안녕하세요.빠르게 두 번째 듣고 있습니다ㅋㅋㅋ첫 번째에는 강의 환경과 맞춰서 들었는데 아무래도 관련 지식이 부족한 채로 듣다 보니까, oauth2 한참 듣고 와서 인증인가 쪽 코드를 슥 보니 전혀 모르겠어서 다시 듣고 있어요ㅋㅋ질문은 다름이 아니라 지금은 최신 버전으로 듣고 있는데요. 처음에는 버전 차이인 줄 알았더니 아닌 것 같아서요. 익명사용자 인증필터 강의 PPT에서 "세션에 저장하지 않는다"라고 하셨는데 코드 따라가보니까 익명 객체도 세션 저장을 하더라고요. 생각해보면 로그인을 안 해도 브라우저에 session id를 내려주니까 서버에서 session을 유지하고 있어야 할 것 같긴 한데요..ExceptionTranslationFilter에서 sendStartAuthentication에서 엔트리포인트의 commence 함수를 바로 위에, this.requestCache.saveRequest(request, response)를 쭉 타고 가보면 Request.doGetSession()에서 session을 만들고 반환하는 부분이 있습니다.로그인 인증 이후에는 session id만 변경하는 로직이 있는 것도 익명 인증 때 이미 session이 존재한다는 걸 뒷받침하는 것 같습니다. 제가 틀린 부분이 있으면 가르침 부탁드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
공통 부분 모으기 질문
강의 마지막 부분에서요,token.secret 같은 공통 사용 되는 부분은 application.yml에 모으는게 좋다고 하셨는데요,,, user-service Application 의 bootstrap에서 config-service 의 user-serivce.yml 을 보게 하고 api-service Applicaton 의 boostap 에서 config-service의 commerce.yml을 보게 했는데, 기본으로 application.yml을 보면서 추가로 보는 건가요,,?이해가 안되네욤..... 설정파일을 두개씩 보는 걸까요,,,
-
미해결스프링 부트 - 핵심 원리와 활용
pinpoint 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의와 직접적인지는 고민되지만 몇일 해보고 안되서 도움을 요청드립니다. pinpoint 에서 servermap 으로 모니터링하면 agent 포함된 각각의 마이크로 서비스의 흐름도가 보여야만 하는데 application만 보입니다... api 가 호출되는건 보이는데 db 나 mq 쪽은 보이지 않더라고요... java11을 사용중이고 pinpoint config 에서는 db나 mq설정은 true로 되어 있습니다. 강의 후에 연습해보려고 시도했는데(docker network로 구성) 구글링도 많이 해봤지만 생각보다 잘되지 않아 커뮤니티에 글을 남깁니다. 감사합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
프록시 관련 질문입니다...
안녕하세요 질문드리고 싶은 것이 있어 글을 남기게 되었습니다. v1에서 Order 와 Member 가 지연로딩으로 되어 있기 때문에 실제 엔티티 대신 프록시가 존재하고, jackson 라이브러리는 프록시 객체를 json 으로 어떻게 생성하는지 모르기 때문에 Hibernate5JakartaModule 을 스프링 빈으로 등록한다고 이해했습니다. 그리고 v2 를 실행할 때 Hibernate5JakartaModule 을 제거하고 실행했을 때 정상적으로 응답되는 것을 확인했습니다. 그래서 제가 이해한 바로는 Entity 를 직접 반환하는 v1 의 경우에는 지연로딩 때문에 프록시 객체가 존재하고, 이를 jackson 라이브러리가 읽을 수 없어 Hibernate5JakartaModule 을 추가했지만, v2 의 경우에는 Entity 를 직접 반환하는 것이 아닌 DTO 를 반환하기 때문에 지연로딩으로 인한 프록시 객체가 있어도 DTO는 jackson 라이브러리가 읽을 수 있는 객체이기 때문에 제거해도 정상적으로 동작한다고 이해했습니다. 혹시 제가 이해한 것이 맞는지 궁금합니다....ㅠㅠ 항상 잘 듣고 있습니다. 감사합니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
id의 중복 사용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서는 Member의 필드에 id와 name이 있고, 이를 다시 Map으로 묶어서 사용하고 있습니다. save()가 정상적으로 처리되면 Map에는 key의 id값과 Member필드의 id값이 서로 같은 값으로 중복 저장되게 되는데요, 이렇게 설계하신 이유를 알고 싶습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
클래스 필드의 접근 제어자 설정 기준
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]클래스, 클래스의 필드나 메서드의 접근 제어자를 설정해줄 때, 어떤 것들을 private로 하고 어떤 것들을 public으로 설정하는 것이 바람직한지를 알고 싶습니다. 일관적인 기준이 있나요?예를 들어, MemoryMemberRepository는 public이고 store는 private으로 설정해주셨는데, 그 이유를 알고 싶습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
getOrders, setOrder가 안되네요ㅠ
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 코드랑 똑같이 적었는데이 세 코드에서 오류가 떠요Cannot access japabook.jpashop.domain.Order이라고 오류가 납니다.오류 코드 링크 첨부하겠습니다https://drive.google.com/file/d/12M-uypQ20bE0SY4jNOyJii3ZBDtSpgT6/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥북에서 ./gradelw build 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]오류 내용은 아래와 같습니다. FAILURE: Build failed with an exception. * What went wrong:A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.2. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.2 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.2 was found. The consumer was configured to find a library for use during runtime, compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but: 제 생각에는 프로젝트에의 자바와 맥북에서 기본으로 잡혀있는? 자바 버젼이 맞지 않아서 발생하는 문제 같습니다. inteliJ에서 설정되어 있는 자바openjdk-21 Oracle Open JDK 21맥북 터미널에서 확인한 자바 (java -version)openjdk version "11.0.19" 2023-04-18 LTSOpenJDK Runtime Environment Corretto-11.0.19.7.1 (build 11.0.19+7-LTS)OpenJDK 64-Bit Server VM Corretto-11.0.19.7.1 (build 11.0.19+7-LTS, mixed mode) 인터넷 검색으로 어찌 어찌 환경변수? 를 아래와 같이 수정을 하고 적용을 해봤지만 같은 오류가 발생합니다.
-
해결됨백엔드 개발자 성능 개선 초석 다지기
안녕하세요. 아직 강의를 듣지 않았지만 질문이 있습니다.
백엔드 개발자로서성능 개선과 부하 테스트 등은 어느 시점에 하는 것이 좋나요?제가 사이드 프로젝트를 하면서 필요할 때 듣고 바로 적용해보며 정리를 하려고 하는데 프로젝트 시작 전에 먼저 들어 놓고 신경 쓰며 개발을 해야 할 지, 개발 중에 적용 해야 할 지 개발 완료 후에 해야 할 지 감이 안 잡히네요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
성능 측정 관련 강의가 있나요?
안녕하세요. 성능 최적화 관련 학습을 하고 있습니다.혹시 성능 측정, 모니터링 방법에 관련한 설명 부분이나 강의가 있을까요? 강의 작업들을 수행함으로 인해 얼마나 처리시간이 단축되는지 확인을 해보고싶은데 그런 부분은 개인적으로 따로 학습을 해야하는지, 아니면 잘 정리된 수업이 있는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB 설정, 동작확인 질문있습니다.
강의 10분 39초에 custom이 없어요.알파벳 순으로 나오는것 같은데 a뒤에 c로 시작하는게 없어요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
다대다 관계를 중간테이블을 생성하였을 때 중간 테이블을 사용하는 방법이 궁금합니다.
만약에 주문이라는 내용이 실제로 많이 필요하지 않고 서로 구매 여부만 판단하고 싶을 때 제가 생각했을 때 Member과 Item 사이의 중간 테이블만 만들어서 외래키로만 조회를 하면서 구매 여부를 판단해도 되지 않을 까 싶은데 그러면 문제점이 무엇인지도 알고 싶습니다.마지막으로는 중간 테이블에는 @ManyToOne을 수업에서 제공하신대로 작성해였는데, Member입장에서 중간 테이블을 조회하게 되면 DB가 뻥튀기 되기도 하고, member 테이블에서 굳이 item 어떤 것을 샀는지나 주문이 어떤것인지를 더하면 뭔가 멤버라는 엔티티의 기본 속성들을 회손하는것 같아서 @OneToMany를 제거하려고 하는데 2개의 일대다 에서 모두 제거해도 괜찮은지 여쭙고 싶습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1GmEDrs703xOvPzwZo3G7XQ8PomDtwyqn/view?usp=drive_link jpa로 회원가입 테스트를 하려고하는데 실패합니다..properties의 ddl-auto를 create로 수정하는것으로 해결할수있지만 설정을 변경하는것은 아닌것같아서 질문드립니다.@Transactional이 원인인가 의심스럽습니다.
-
미해결실전! 스프링 데이터 JPA
강의 수강 중 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의 내용을 듣고 제가 따로 프로젝트를 만들어서 비교를 해 보았는데@Entity @DynamicInsert @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User { @Id private String id; // 이메일 형식 @Column(nullable = false) private String password; @Column(nullable = false) private String name; @Column(nullable = false, unique = true) private String nickname; @Column(nullable = false, unique = true) private String phone; @CreationTimestamp @Column(nullable = false) private LocalDateTime createAt; @Enumerated(EnumType.STRING) @ColumnDefault("'NORMAL'") private UserStatus status; // 이미지 변수 (프로필 사진) public User(String id, String password, String name, String nickname, String phone) { this.id = id; this.password = password; this.name = name; this.nickname = nickname; this.phone = phone; } }@Test public void basicCRUD() { User user1 = new User("user1","123","kk","sssss","123213213"); User user2 = new User("user2","1321","dd","dddd","21312412412421"); userRepository.save(user1); userRepository.save(user2); //단건 조회 검증 User findUser1 = userRepository.findById(user1.getId()).get(); User findUser2 = userRepository.findById(user2.getId()).get(); assertThat(findUser1).isEqualTo(user1); assertThat(findUser2).isEqualTo(user2);테스트를 실행 시켜보니Expected :com.clickpick.domain.User@51577fc8Actual :com.clickpick.domain.User@4dbeae45 오류가 발생하였습니다.강사님의 강의를 따라했을 땐 동일하다고 하였는데 저의 예시로 해보니 동일하지 않다고 나오는데 어느부분에서 차이점이 생긴지 알고싶습니다 참고로 repository는public interface UserRepository extends JpaRepository<User, String> { } 입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 테스트 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1p8Pzk72m4puS8geRyfhQr4N1LEmijVeI/view?usp=drive_link멤버서비스인티그레이션테스트에서 오류가 발생합니다.오류메시지는org.springframework.transaction.TransactionSystemException: JDBC rollback failedCaused by: java.sql.SQLException: Connection is closedjava.lang.IllegalStateException: java.sql.SQLException: Connection is closed와 같이 발생합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
application.yml 포트번호
spring: datasource: url: "jdbc:mysql://localhost:3307/library" username: "root" password: "kimdh991234@" driver-class-name: com.mysql.cj.jdbc.Drivermysql을 설치할때 3306포트가 사용중이어서 설치가안되어서 3307로 포트를 설정하고 설치했더니 기존코드에서는 에러가 발생했습니다 그래서 포트번호를 달아줬더니 에러없이 동작하는데 3306포트로 동작하게 되면 생략이 가능한건가요?mysql 기본 포트세팅이 3306이어서 그런걸까요?