inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

gradle 파일을 github에 push해도 상관없나요?

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 좋은 강의 감사합니다! 공부한 내용을 비공개 레포지토리에 업로드 하려고 합니다. 아래 파일들이 .gitignore 파일에 추가안되있는데 이 파일들은 그대로 레포지토리에 업로드해도 괜찮은 건가요?

  • git
  • gradle
  • spring
  • java
  • MVC
  • spring-boot
심야 댓글 1 좋아요 1 조회수 683

[13:00] MemberServiceTest 의 memberRepository 와 memberService 의 memberRepository

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] memberService 안의 memberRepository 와, MemberServiceTest.java 안에서 선언된 memberRepository 는 다를 것 같은데, 어떻게 memberRepository.clearStore 로 지웠을 때 memberService 의 memberRepository 도 삭제가 되나요? 둘이 다른 객체이지 않을까 싶어 주솟값으로도 비교해보려고 하였으나 Java 에는 Object 의 주솟값을 비교하는 함수가 없다고 하네요... MemberService.java public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /** * 회원 가입 */ public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } // control + t => 메서드 추출 private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** * 전체 회원 조회 */ public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } } MemberServiceTest.java class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memberRepository = new MemoryMemberRepository(); // for clearStore() @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test void 회원가입() { // given Member member = new Member(); member.setName("spring"); // when Long saveId = memberService.join(member); // then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); // then IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThrows(IllegalStateException.class, () -> memberService.join(member2)); // '오른쪽을 수행했을 때 왼쪽 예외가 발생해야 함' 을 의미 } }

  • java
  • java
  • MVC
  • spring
  • spring-boot
niobbam 댓글 1 좋아요 0 조회수 566

6분 45초쯤 양방향 연관관계에 대해서 간단한 질문이 있습니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

6분 45초쯤에 말씀을 하시는게 지금 이 강의는 예제로 보여주기 위해 Member와 Order가 일대다, 다대일로 양방향 연관관계를 이루고 있지만 실무에서는 이렇게 양방향으로 짜기보단 Order가 Member를 참조하게 되는 다대일만 써주는 것이 좋다. 이 말이 혹시 맞을까요...? 그리고 추가로 Order와 OrderItem의 관계에서는 양방향 연관관계를 안쓰려고 하면 OrderItem이 Order를 참조하는 것으로만 설계를 하면 되는건가요...?

  • 웹앱
  • spring
  • spring-boot
  • JPA
  • java
지호 댓글 1 좋아요 1 조회수 512

주 테이블 외래키 장,단점에 관해 질문이 있습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

"주 테이블만 조회해도 대상 테이블에 데이터가 있는지 확인 가능" 이 부분을 저는 주 테이블만 봐도 일단 외래키가 있다는 것은 대상 테이블에 뭔가가 있다는 것이니까 대상 테이블의 데이터 존재 유무 확인이 가능하다 라고 이해를 하였고 "값이 없으면 외래 키에 null 허용" 이 부분을 저는 OneToOne 관계이므로 한 사람은 라커 하나를 사용할 수 있고 라커도 한 사람에게 할당될 수 있으므로 주 테이블의 외래키인 LOCKER_ID가 null 이라는 것은 이 사람에게 할당될 라커가 없고 고로 대상 테이블에도 데이터가 없다 라고 이해를 했습니다. 이런 상황에서 두 가지 질문이 있습니다. 제가 이해한 것이 맞을까요? 테이블 칼럼의 값이 null인 것이 왜 단점일까요?

  • JPA
  • java
비가싫어요 댓글 1 좋아요 1 조회수 1519

53강 mariadb나 mysql로 쓰신느 분들을 위한 sql문

미해결

JSP 웹 쇼핑몰 프로그래밍 기본 과정(JSP WEB Programming)

select * from board order by ref desc, re_step asc limit ?, ? 쿼리문 이거 쓰시고 ? 매핑할 때 pstmt.setInt(1, start-1); pstmt.setInt(2, pageSize); 이런식으로 써주고 getAllBoard(startRow, pageSize) 메소드도 이런식으로 endRow대신 pagesSize를 매개변수로 넣어주면 됩니다. endRow는 사용하지 않습니다.

  • jsp
  • java
백엔드 주니어 개발자 댓글 0 좋아요 0 조회수 501

count 쿼리 최적화 질문 드립니다.

해결됨

실전! Querydsl

안녕하세요! 영한님^^ 개발자들을 위해여 양질의 강의를 제공해주셔서 정말로 감사의 말씀을 드립니다.🙏 질문드리겠습니다. 먼저 제가 이해한 내용을 말씀드리겠습니다. PageableExecutionUtils 를 사용하면 count 쿼리 최적화하 가능 하다고 말씀하셨습니다. 그 이유는 람다를 사용하여 게으른 호출로 인하여 실제 사용되기 전까지는 함수가 실행되지 않는다고 이해했습니다. 다음 2가지 경우에 count 쿼리가 실행되지 않다고 말씀하셨습니다. 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈 보다 작을때 페이지 시작(0) 이면서 컨텐츠 사이즈(3) 가 페이지 사이즈(10) 보다 작다면 컨텐츠 사이즈(3)가 카운트 갯수 마지막 페이지 일때( offset + 컨텐츠 사이즈 = 카운트 ) 예를 들어 전체 데이터는 103개이고, 페이지 사이즈는 10이라고 한다면 마지막 페이지 일때는 offset(100) , 컨텐츠 사이즈(3) 이라서 카운트는 103 으로 이해 하고 있는데 맞는 내용 인가요? 감사합니다.^^

  • java
  • JPA
개발하는쿼카 댓글 1 좋아요 2 조회수 747

로컬 페이지 아이콘

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

로컬 페이지 켰을때 스프링 아이콘이 아니라 일반 아이콘이 뜹니다. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • MVC
  • spring-boot
  • java
  • spring
정다운 댓글 1 좋아요 1 조회수 309

JWT 이용한 로그인 구현

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 백엔드는 스프링, 프론트엔드는 리액트를 이용해서 리프레쉬 토큰과 엑세스 토큰으로 로그인을 구현할 때 한번 로그인을 하면 같은 브라우저 안에 있는 탭끼리는 로그인 상태를 유지시키고 싶은데 리프레쉬 토큰과 엑세스 토큰을 어디에 저장하고 어떻게 관리해야 되는지 궁급합니다.

  • JPA
  • spring
  • java
  • 웹앱
  • spring-boot
박정훈 댓글 1 좋아요 0 조회수 1779

컬렉션 둘 이상에 페치 조인

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요. 강의 마지막에 컬렉션 페치 조인을 둘 이상 사용하지 말라고 하셨는데, 관련하여 질문드립니다. 말씀하신 상황이 제가 생각한 항목 중 어떤것이 맞을까요? 1 : N : N Team(1) : Member(N) : Order(N) 1 : N / 1 : N Post(1) : Comment(N) Post(1) : Attachment(N) 감사합니다.

  • spring
  • JPA
  • java
  • spring-boot
김동준 댓글 1 좋아요 2 조회수 494

생성 메서드와 연관관계 주인 질문드립니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] public static OrderItem createOrderItem(Item item,int orderPrice, int count) 강의 중 생성메서드를 구현하는 부분 중 OrderItem 생성메서드를 생성할때 파라미터로 Order order를 추가하지 않은 것에 대한 이유가 궁금하여 질문드립니다. OrderItem 엔티티에서 order필드가 연관관계의 주인이기에 null이 되면 안된다 생각하였고 그렇기에 생성메서드 파라미터에도 Order order를 꼭 넣어줘야 하는게 아닌지 궁금점이 들어 질문드립니다!! 감사드립니다!

  • spring
  • spring-boot
  • 웹앱
  • JPA
  • java
인프런 댓글 1 좋아요 1 조회수 413

Spring Authorization Server 1.0 관련

해결됨

스프링 시큐리티 OAuth2

https://spring.io/projects/spring-authorization-server Spring Authorization Server 1.0이 정식으로 출시되었고 강의는 만들어진 시간으로 보아 0.31 기반인거 같은데 1.0(0.4)에 대한 보강 계획은 있으신지요?

  • spring-boot
  • java
  • oauth
  • spring
신석균 댓글 1 좋아요 1 조회수 365

@BatchSize의 조회 대상 우선순위(?)

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 내용] 안녕하세요 강의 너무 잘 듣고 있습니다. @BatchSize에 관해서 의문점이 생겨서 질문을 드리게 되었습니다. @BatchSize를 사용하면 특정 Entity에서 조회 쿼리가 필요한 필드를 초기화 할 때, 1차 캐시로부터 같은 종류의 Entity id값을 @BatchSize에 지정한 size값만큼 가져와 IN에 넣어서 필요한 데이터를 함께 조회하고 초기화하는 것으로 이해했습니다. 근데, 이 때 단순히 1차 캐시에서 랜덤으로 id값을 가져와서 IN에 넣으면 원하지 않는 Entity에 초기화가 잘못 이뤄질 수 있지 않을까 하는 의문이 있었지만, 당연하게도 이런 부분에 대해서는 알아서 최적화를 해 둔 것 같았습니다. 예를 들면 JPQL의 결과로 조회된 Entity컬렉션 내부에서 하나를 집어 Entity 필드를 지연 로딩 초기화할 경우 같은 컬렉션 내부의 Entity들이 우선순위를 갖고 함께 초기화되는 것 같았습니다. 하지만 이것이 정확히 어떤 원리로 동작하는 지는 알 수가 없었습니다..ㅠㅠ JPQL로 조회한 컬렉션에 대해서 따로 영속성 컨텍스트가 참조하고 있다거나 하는 식으로 동작하는 것일까요? 이런 원리를 모르다 보니 @BatchSize가 IN에 넣을 Entity를 결정하는 우선순위를 알 수가 없었습니다. @BatchSize의 size값이 JPQL로 조회한 컬렉션의 size보다 클 때에는 1차 캐시에서 부족한 만큼의 Entity id를 더 끌어와서 IN에 추가하는데, 이 때 함께 초기화될 Entity가 어떤 Entity일 지 예측이 안 됩니다. 이런 것들도 우선순위가 따로 존재하나요? 크게 중요한 내용은 아닌 것 같은데, 그냥 같은 컬렉션에 있는 Entity들이 IN의 우선순위가 된다고 이해하고 사용하는 정도면 문제가 없을 지 궁금합니다..!

  • spring-boot
  • JPA
  • java
  • spring
공부용 댓글 1 좋아요 0 조회수 371

OAuth2 로그인 구현 - Authorization Code 요청하기 - OAuth2AuthorizationRequest 객체 세션 저장 문제

미해결

스프링 시큐리티 OAuth2

안녕하세요! 좋은 강의 너무 감사드립니다! 한가지 질문 드릴께 있습니다. OAuth2 로그인 구현 - Authorization Code 요청하기 26:25분 내용을 보면 첫번째 인증 단계! (response type = code) OAuth2AuthorizationRequest 객체 담아서 인가 서버 (keyclack 서버) 에 전달 하게 되는데요 이것과 동시에 OAuth2AuthorizationRequest 객체를 sesstion 에 저장을 하게 됩니다. 그러면 사용자는 인가 서버 (keyclack 서버) 로그인을 성공적으로 해결된다면 미리 지정된 redirect url 통해 Authorization Code 값을 전달해주는데요! 그런 후 미리 OAuth2AuthorizationRequest 객체를 sesstion 저장된것을 가져오는데 만약 해당 서버가 1개 라서 다행이지만 scale out 경우 그러니깐 서버가 2대 이상이라면 맨처음 OAuth2AuthorizationRequest 객체 저장할때가 1번 서버라면 OAuth2AuthorizationRequest 객체를 가져올때가 2번 서버라면 이때 각각 다른 서버이기 때문에 가져오지 못하는 문제가 발생되지 않나요? 이때는 어떻게 해결해야 할까요??.. OAuth2AuthorizationRequest 객체를 외부 세션 서버로 저장 할수 있도록 다시 로직을 재구현 해야 하는걸까요?

  • spring
  • oauth
  • spring-boot
  • java
리나 댓글 1 좋아요 1 조회수 912

포폴 데이터모델링, jpa설계하다가 질문 !!

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요?? 김영한님 JPA강의 덕에 포폴 순항하고 있습니다. 항상 좋은 강의 감사한 마음을 가지고 있습니다. 파이팅하세요 !! 궁금한점을.... 간단하게 설명하려고 노력하겠습니다 !! 예를들어서 블로그 포스팅 domain을 아래와 같이 만들었습니다... id: ~~~~ content: ~~~~ tags: ~~~ (일대다 관계) comments: ~~~(일대다 관계) 그런데 !!! 여기서 궁금한점 !! 제 생각으로는... 아 그냥 편하게 포스팅한번에 끌고와서(tags, comments) 응답해주고 싶은뎅... 그런데 영한님께서는 이 강의에서 일대다 관계를 두번이상하면 안된다고 하셔서...ㄷㄷ;;;; 그래서, 오랜 고민끝에 포스팅 (id,content,tags)를 응답해주고 comments는 다대일 방법으로 응답을 해줬거든요??.... (이게 옳은방법일까...ㄷㄷ;;) 그러니까 요청을 두번 보내는거에요.. 포스팅 한번... 포스팅에 연관관계있는 comments 한번.. 저의 이러한 판단과 설계과 괜찮은 걸까요?? 질문드리고 싶습니다 !! (잘 이해하셨을라나...ㄷㄷ;ㅠㅠ)

  • jpa
  • spring-boot
  • 데이터모델링
  • spring
  • 일대다
  • JPA
  • java
댓글 1 좋아요 1 조회수 377

userinfo 요청 시 403에러

미해결

스프링 시큐리티 OAuth2

http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo 포스트맨 요청 시 403 에러가 납니다 버전은 20.0.1입니다

  • spring-boot
  • oauth
  • spring
  • java
kim미소 파파 댓글 3 좋아요 1 조회수 1113

아이템 32. 핵심 정리 12:00 이 부분에서 질문이 있습니다.

미해결

이펙티브 자바 완벽 공략 2부

String[] attributes = pickTwo("좋은", "빠른", "저렴한"); 제가 자바 기초가 약해서 이해를 못하는걸까요? .. bytecode로 확인하면 pickTwo 메소드를 반환하게 된다면 Object(추상적) 형식으로 반환 해서 String(구체적) 형식으로 변환(타입 케스트) 해서 문제(ClasscastException)가 발생된다고 해주셨는데요 그러니깐 구체적 -> 추상적 으로 변환 문제없음 추상적 -> 구체적 으로 변환 문제 있음 결론은 이것인데 Object obj = new Object(); obj = "test"; // 추상적인 Object 에 담음 String string = (String) obj; // 구체적인 String 에 담음 해당 원인이라면 해당 소스는 에러가 발생해야 되는것이 아닌가요?.... 자바 기초가 약해서 그런지 조금 이해가 안되는 부분이 있어서 질문 드립니다.

  • java
리나 댓글 1 좋아요 1 조회수 510

jpql flush 자동 호출

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

jpql flush 자동 호출되는 것이 커밋까지 된다는 말씀이실까요? jpql 로 db 에서 데이터를 조회하려면 db 에 반영이 되어야할 것 같아서입니다.

  • JPA
  • java
Jerry 댓글 1 좋아요 0 조회수 506

profile email 권한페이지가 나오지 않습니다.

미해결

스프링 시큐리티 OAuth2

authorization_code 를 얻어오는 요청 보냄 login 페이지가 떠서 로그인함 email ,profile 등 이걸 허락하겠는가? (저는 이게 안뜹니다.) 8081이 안떠있으니 에러페이지 code를 복붙해서 access token 요청 -> accestoken 잘받아옴 해당 access token 으로 userinfo 요청시 403 forbidden 놓친 설정이 있나 확인을 여러번 하였는데 첫번째 강의에서는 Clients 설정에서 Authentication flow 에 implicit flow를 체크하셨는데 2번째 강의에는 해제 되어있길레 해제 해봤지만 결과는 동일합니다. 무엇이 문제인지 알 수 있을까요..? jwt.io에서 토큰 정보를 확인했을떄 다음과 같습니다. 제가 안되길레 여러 RoleMapping을 추가해본것입니다. { "exp": 1668576888, "iat": 1668576588, "auth_time": 1668576573, "jti": "6775c84b-9f26-4d8c-ab58-a09c136eb782", "iss": "http://localhost:8080/realms/oauth2", "aud": [ "realm-management", "account" ], "sub": "f35e128a-f3a9-48df-a784-5675ade34468", "typ": "Bearer", "azp": "oauth2-client-app", "session_state": "4b46d62b-0dbe-41ba-9901-a2465eed5f41", "acr": "1", "realm_access": { "roles": [ "offline_access", "uma_authorization", "default-roles-oauth2" ] }, "resource_access": { "realm-management": { "roles": [ "manage-users", "view-users", "query-groups", "query-users" ] }, "account": { "roles": [ "manage-account", "manage-account-links", "view-profile" ] } }, "scope": "profile email", "sid": "4b46d62b-0dbe-41ba-9901-a2465eed5f41", "email_verified": false, "name": "kakarot lim", "preferred_username": "user", "given_name": "kakarot", "family_name": "lim", "email": "user@keycloak.com" } 구글링 해서 알아본 결과 authorization_code를 요청할때 헤더에 scope=openid 로 하니 잘되었습니다. 이건 버전 차이라고 보면 될까요? 저는 도커로 20 버전을 사용하였습니다.

  • java
  • spring
  • spring-boot
  • oauth
dohyun_lim 댓글 1 좋아요 1 조회수 867

WebSecurityConfigurerAdapter 클래스 사용 불가

미해결

스프링 시큐리티

2~3강의중 WebSecurityConfigurerAdapter 클래스를가 사용하는 버전이 업데이트 되면서 더이상 사용할 수 없는데 혹시 다른 클래스를 상속받아 설정하여 사용하는 방법 알려주실 수 있나요?

  • java
  • spring-boot
  • Spring Security
bomifja 댓글 1 좋아요 0 조회수 935

V4 에서 DTO로 조회시 즉시 로딩이 되는 건가요?

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] V4 에서는 fetch join을 사용하지 않으셨는데 조회 쿼리는 한번만 나가는 것을 확인했습니다. dto로 조회를 하면 Lazy로딩으로 세팅해도 즉시 로딩으로 나간다고 이해하면 될까요?

  • spring-boot
  • JPA
  • java
  • spring
김가가가 댓글 1 좋아요 2 조회수 604

인기 태그

인프런 TOP Writers

주간 인기글