inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

영속성 전이 + 고아 객체, 생명주기에 대해 질문 있습니다.

미해결

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

"CascadeType.ALL + orphanRemoval=true 두 옵션을 모두 활성화하면 부모 엔티티를 통해서 자식의 생명 주기를 관리할 수 있음" 위 내용에 대해 질문 있습니다. CascadeType.ALL 옵션만 사용하고 부모를 삭제 해봤는데 자식은 삭제 되지 않았습니다. CascadeType.ALL 옵션에는 CascadeType.REMOVE 옵션이 포함되어 있지 않는건가요? CascadeType.ALL 옵션을 사용하여 부모를 저장 혹은 수정시 자식도 같이 저장과 수정을 할 수 있고 orphanRemoval=true 옵션을 추가해 부모 삭제 시 자식도 다 삭제하게 만들어 자식의 생명주기를 부모의 생명주기에 맞출 수 있어 "부모 엔티티를 통해서 자식의 생명 주기를 관리할 수 있음" 라는 말이 허용이 되는건지 궁금합니다.

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 178

중첩 클래스(내부) 질문?

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 중첩 클래스(내부 클래스)를 공부하면서 뭔가? 상속관계랑 비슷한것 같아서 질문을 남깁니다. 김예린 님의 이글 <- 을 보면서 어떻게 설명할까 코드를 만들면서 이거 저것 시도해 보다가, super.name = name; 도 가능 하다는 것을 보고 답변을 포기 했었는데, 중첩 클래스 관련 강의를 들으면서 좀 비슷한것 같은데 라는 생각을 하게 되었습니다. 이유는 자식 클래스에서 name이라는 인스턴스 변수가 없지만 부모클래스의 name이라는 인스턴스 변수를 쓸수 있음 이름이 같을때 super라는 키워드를 통하여서 구분가능. 이것을 통하여서 비슷하다고 생각하였는데. 저의 생각이 잘못 된 건가요? 아니면 좀 비슷하다고 생각해도 되는건가요? 이것에 대해서 잘못 이해를 하고 있다면 교정해 주시면 감사하겠습니다. (내용이 이상해서 수정함 죄송합니다. 이유도 안쓰고 말도 뭔가 안맞았엇네요.) 수정2. 복습하다 보니까. 상속이랑 중첩이랑 틀린게 구분이 가네요. 상속은 private의 정보를 못가져오고 중첩은 private에 있는 정보를 가져올수 있네요.. 어제 어떤 분에게 거북이 마음을 이야기 햇는데, 저가 거북이 마음이 안된것 같네요. 죄송합니다.

  • java
  • 객체지향
생각하는자 댓글 0 좋아요 0 조회수 146

컬렉션 패치 조인은 페이징이 불가능하지만 이 방법은 페이징이 가능하다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 컬렉션 패치 조인은 페이징이 불가능하지만 이 방법은 페이징이 가능하다. 이 말이 이해가 안되는게 batch size 설정 -> orderItemDto에서 컬렉션을 조회할때 in절을 통해서 하나의 쿼리로 가져오기위함 인것이지, 이 orderItemDto에서 페이징처럼 offset을 정해서 가져오고 이런게 불가능한거 아닌가요?

  • java
  • spring
  • spring-boot
  • jpa
동현 댓글 2 좋아요 0 조회수 245

spring 공부

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 김영한 선생님 이번에 자바를 시작하고, 스프링을 공부하고자 하는 학생입니다. 결론부터 말씀드리자면 spring 입문강의가 도저히 이해가 되지 않아서 공부방향에 대해 여쭙고 싶습니다. 자바는 충분히 학습하여 어느정도 개념이 숙지되어있는 상태입니다. 그래서 spring을 공부하려고 입문편부터 보니, spring의 개념이 무엇인지, 구조가 어떻게 되는지, 모두 이해가 되지 않습니다. 제가 cs가 부족한 탓일까요? 혹은 기본편에서 모든 궁금증이 해결되는 것일까요? 일단 아직 이해는 가지 않은 채, 코드만 따라 적고있습니다. 어떻게 공부하면 좋을지 말씀 주시면 감사하겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
bill5500 댓글 2 좋아요 0 조회수 312

강의 자료 링크가 어딨는지 모르겠습니다

해결됨

한 입 크기로 잘라먹는 Next.js

예제 코드 및 강의 자료 안내 탭에서 강의 자료 확인하기에서 강의 자료가 어딨는지 모르겠네요 파비콘 및 썸네일 파일 링크만 보이고 pdf는 링크가 따로 안보입니다

  • react
  • typescript
  • next.js
eko09 댓글 2 좋아요 0 조회수 459

프록시 객체 조회에 대해 질문 있습니다.

해결됨

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

Member findMember = em.getReference(Member.class, member.getId()); System.out.println(findMember.getClass()); System.out.println(findMember.getId()); System.out.println(findMember.getName()); Member findMember2 = em.find(Member.class, member.getId()); System.out.println(findMember2.getClass()); System.out.println(findMember2.getId()); System.out.println(findMember2.getName()); 강의 내용 중 "정리하면 영속성 컨텍스트에 찾는 엔티티가 이미 있으면 em.getReference()를 호출해도 실제 엔티티를 반환한다. 그리고 반대로 프록시를 이미 조회했으면 em.find()를 해도 프록시가 반환된다." 라는 부분이 있었는데요 em.getReference()를 초기에 사용해서 프록시를 이미 조회하면 영속성 컨텍스트의 1차 캐시에 프록시 객체가 값으로 저장이 되는건지 궁금합니다. 프록시 객체가 값으로 저장이 된다면 위 내용처럼 find()를 해도 이미 영속성 컨텍스트에 프록시 객체가 저장되어 있기에 프록시 객체가 조회가 되는건지 궁금합니다. 1번 내용이 맞다면 처음 em.find() 사용 시 DB에서 조회 후에 실제 객체를 1차 캐시에 저장하는 반면 em.getReference()는 바로 1차 캐시에 프록시 객체를 저장하는건가요?

  • java
  • jpa
감바스 댓글 2 좋아요 0 조회수 170

final

미해결

김영한의 실전 자바 - 기본편

public class Data{ public int value; }로 만들고 public class FinalRefMain { public static void main(String[] args) { final Data data = new Data(); } } 이렇게 final을 붙여서 선언하는 이유가 무엇인지 이해되지 않습니다.. 참조 대상인 final data를 변경하지 못하는 것이지, 참조하는 대상의 값인 Data 인스턴스의 값은 변경할 수 있다는게 무슨 말인지 강의를 들어도 이해되지 않습니다...

  • java
  • 객체지향
ㅇㄱㅇㄱ 댓글 2 좋아요 0 조회수 165

자바, 스프링 버전 달라도 괜찮아요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 스프링 부트 버전이 3.3.2 로 하고 인텔리제이 얼티메이트 쓰고 있고 jdk 17버전으로 하는데 상관없나요?

  • java
  • spring
  • mvc
  • spring-boot
mins199600 댓글 1 좋아요 0 조회수 607

패레럴 라우트와 인터셉터 라우트를 공부하다 생긴 의문점입니다.

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님 강의를 듣다 의문점이 하나 생겨 질문드립니다. 패레럴 라우트와 인터셉터 라우트를 사용해서 모달을 띄우는 방법을 알려주셨는데 기존의 react에서 사용하던 방식으로 모달의 띄우는게 더 코드도 단순하고 간단하게 구현할 수 있을것 같은데 nextjs에서는 페레럴 라우트와 인터셉터 라우트를 사용해서 모달을 구현하는게 어떤 이점이 있는지 궁금합니다. 기존의 모달을 띄우는 방법은 여러가지가 있지만 state를 통해서 구현하거나 queryString을 사용해서 구현할 수 있을것 같습니다. queryString을 사용하면 뒤로가기 버튼클릭시 모달을 띄우기전 url로도 이동할 수 있고 새로고침을 해도 모달과 뒤의 배경을 같이 보여줄 수 있을 것 같습니다. 혼자서 생각도 해보고 인터넷에서 자료도 찾아봤지만 정확한 이유를 잘 모르겠어서 질문드립니다. 오늘도 좋은 하루 되셨으면 좋겠습니다. 감사합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
tsg 댓글 2 좋아요 0 조회수 403

인터셉팅 라우트

미해결

Next + React Query로 SNS 서비스 만들기

인터셉팅 라우트의 본 목적은 아닌 것 같으나 제 생각으론 가능하지 않을까 하는 생각이 드는데 진짜 가능한 건지 궁금해서 여쭤봅니다,,ㅠㅠ 인터셉팅 시에 모달이 뜨면서 children이 변경되도록 하고 싶은데,,, 가능한 건가요,,? 그러면 폴더 경로를 어떻게 설정 해야 할까요,,?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
댓글 1 좋아요 0 조회수 209

배열 링크드리스트

미해결

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 자바 HashSet 구현을 할때 이렇게 링크드 리스트를 이용하여 배열을 만들었는데, 질문이 있습니다. ArrayList 와 LinkedList 중 LikedList 를 사용한 이유는 O(x) 가 더 빠르기 때문인가요 ? 어떠한 장점이 있길래 LinkedList 를 결정한건지 모르겠습니다. 제가 추측하기로는 buckets 내의 각각의 인덱스에 링크드 리스트가 필요하기 때문에 배열 타입을 링크드 리스트로 결정한 것인가요 ?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
ghuhan18 댓글 3 좋아요 0 조회수 293

HashSet 최적화

미해결

김영한의 실전 자바 - 중급 2편

우리가 ArrayList 에서 LinkedList로 넘어온 이유가 배열 메모리 확보로 인한 낭비로 인해 경우에 따라서 LinkedList 를 사용해야한다고 알고 있는데, set 에서도 ArrayList 처럼 배열 메모리를 확보해두고 배열의 크기를 2배씩 늘리는 식으로 작동하나요 ?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
ghuhan18 댓글 1 좋아요 0 조회수 114

서버 컴포넌트 렌더링 질문

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 선생님. "Suspense로 Streaming하여 최적화하기(feat. loading.tsx, error.tsx)" 강의 내용중에 궁금한점이 있어 질문드립니다. 강의에서 5:42 ~ 6:35 시간 구간에서의 내용에 관해서 이해가 잘 안되는 부분이 있는데요. 홈 화면에 처음 들어올 때에는 로딩스피너가 안보이고 탐색하기 등 다른 페이지에서 홈 화면으로 들어오면 로딩스피너가 보이는 이유를 설명해주시는 부분입니다. 홈 화면에 처음 들어왔을 때에는 홈 화면에 해당하는 page.tsx를 서버에서 다 그려주기 때문에 로딩 상태가 없어서 로딩스피너가 안보이고, explore에 있다가 클라이언트에서 홈으로 넘어갈 때에는 explore에서 홈 페이지를 새로 로딩을 하기 때문에 로딩 스피너가 뜨는거라고 설명해주셨는데요. "explore에서 홈 페이지를 새로 로딩을 한다" 라는게 무슨 말인지 잘 모르겠습니다 ㅠ page.tsx가 CSR이 된다는 것인가요? 저는 어떤 페이지에 들어오면 그 페이지에 해당하는 page.tsx가 실행되는걸로 알고 있었는데 아닌가요? 홈의 page.tsx는 서버 컴포넌트인데 왜 홈에 처음 들어왔을 때만 page.tsx가 서버에서 실행되고 그 이후에는 마치 클라이언트에서 데이터 패칭하고 그에 따라 렌더링이 되는것처럼 "로딩"이라는 상태가 존재하는것인지가 궁금합니다.

  • next.js
  • react
jojeon4515 댓글 1 좋아요 0 조회수 103

상속으로 부모클래스에 접근

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 상속 단원에 문제와 풀이 관련해서 질문이 있습니다. 영한님께서는 상위 클래스의 필드에 접근하기 위해서 자식 클래스의 생성자 부분에서, super(name, price)을 사용하고 계십니다. 그 이유는 부모 클래스의 생성자가 기본 생성자가 아니기에, super을 생략하지 않고, 적은 것이지요. 여기서. 부모 클래스의 생성자를 기본 생성자로 하고, 자식 클래스의 생성자 부분에서 name과 price를 불러들어와 값을 저장하고 싶을 때 this.name = name; this.price=price; 로 접근해도 괜찮은가요? (부모 클래스의 필드가 public이였을 때)

  • java
  • 객체지향
  • super
김예린 댓글 1 좋아요 0 조회수 218

38강 .yml

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

spring: config: activate: on-profile: local datasource: url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" username: "sa" password: "" driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.H2Dialect h2: console: enabled: true path: /h2-console --- spring: datasource: url : "jdbc:mysql://localhost/library" username : "root" password : "비번" driver-class-name : com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.MySQL8Dialect 2024-08-18 22:03:44.064 INFO 4232 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 11.0.23 on SeungWon with PID 4232 (C:\Users\Administrator\Desktop\library-app\library-app\build\classes\java\main started by Administrator in C:\Users\Administrator\Desktop\library-app) 2024-08-18 22:03:44.064 INFO 4232 --- [ main] c.g.libraryapp.LibraryAppApplication : The following 1 profile is active: "local" 제대로 다 작성을 한거같ㅌ은데 로그에 local이라고 나오는데 도서관리 웹으로 가면 이전에 넣어둔 데이터도 그대로 있고, H2WebConsol은 화이트레벨이 뜹니다ㅜ 현재 인텔리제이 무료버전이라 프로파일 바꾸는건 구글랑해서 햤는데 뭐가 문제인가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 2 좋아요 0 조회수 114

안녕하세요. Hello JPA - 애플리케이션 개발 강의 중 오류가 나서 질문 드립니다.

미해결

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

실행 단계에서 아래와 같은 오류가 발생했습니다. 어떻게 처리해야 할까요..? ERROR: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-199] Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hellojpa.JpaMain.main(JpaMain.java:9) Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:48) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:118) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:100) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 14 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-199] at org.h2.message.DbException.getJdbcSQLException(DbException.java:617) at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) at org.h2.message.DbException.get(DbException.java:194) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:435) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:317) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:169) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:148) at org.h2.Driver.connect(Driver.java:69) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:554) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at org.h2.util.NetUtils.createSocket(NetUtils.java:103) at org.h2.util.NetUtils.createSocket(NetUtils.java:83) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:115) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:431) ... 34 more

  • java
  • jpa
Nissi Jeong 댓글 1 좋아요 0 조회수 182

client-credentials 방식 accessToken null 이슈

미해결

스프링 시큐리티 OAuth2

Cannot invoke " org.springframework.security .oauth2.client.OAuth2AuthorizedClient.getAccessToken()" because "oAuth2AuthorizedClient" is null] with root cause keycloak 버전은 : 21.1.2 @GetMapping("/oauth2Login") public String oauth2Login(Model model, HttpServletRequest request, HttpServletResponse response) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); OAuth2AuthorizeRequest oAuth2AuthorizeRequest = OAuth2AuthorizeRequest .withClientRegistrationId("keycloak") .principal(authentication) .attribute(HttpServletRequest.class.getName(), request) .attribute(HttpServletResponse.class.getName(), response) .build(); OAuth2AuthorizationSuccessHandler successHandler = (authorizedClient, principal, attributes) -> { oAuth2AuthorizedClientRepository .saveAuthorizedClient(authorizedClient, principal, (HttpServletRequest) attributes.get(HttpServletRequest.class.getName()), (HttpServletResponse) attributes.get(HttpServletResponse.class.getName())); System.out.println("authorizedClient : " + authorizedClient); System.out.println("principal : " + principal); System.out.println("attributes : " + attributes); }; auth2AuthorizedClientManager.setAuthorizationSuccessHandler(successHandler); OAuth2AuthorizedClient oAuth2AuthorizedClient = auth2AuthorizedClientManager.authorize(oAuth2AuthorizeRequest); model.addAttribute("oAuth2AuthorizedClient", oAuth2AuthorizedClient.getAccessToken().getTokenValue()); return "home"; } keycloak: clientId: oauath2-client-app clientSecret: HPWAsKr9dEy9DPU1babedRmpstowiXOs clientName: oauath2-client-app authorizationGrantType: client-credentials clientAuthenticationMethod: client_secret_basic provider: keycloak <form sec:authorize="isAnonymous()" action="#"> <p><input type="button" onclick="authorizationCode()" value="AuthorizationCode Grant"/></p> <p><div sec:authorize="isAnonymous()"><a th:href="@{/oauth2Login(username='user',password='1234')}">Password flow</a></div></p> <div sec:authorize="isAnonymous()"><a th:href="@{/oauth2Login}">Client Credentials Flow Login</a></div> </form> @Configuration public class AppConfig { @Bean public DefaultOAuth2AuthorizedClientManager auth2AuthorizedClientManager(ClientRegistrationRepository clientRegistrationRepository, OAuth2AuthorizedClientRepository oAuth2AuthorizedClientRepository) { OAuth2AuthorizedClientProvider oAuth2AuthorizedClientProvider = OAuth2AuthorizedClientProviderBuilder.builder() .authorizationCode() .password() .clientCredentials() .refreshToken() .build(); DefaultOAuth2AuthorizedClientManager defaultOAuth2AuthorizedClientManager = new DefaultOAuth2AuthorizedClientManager(clientRegistrationRepository, oAuth2AuthorizedClientRepository); defaultOAuth2AuthorizedClientManager.setAuthorizedClientProvider(oAuth2AuthorizedClientProvider); defaultOAuth2AuthorizedClientManager.setContextAttributesMapper(contextAttributeManager()); return defaultOAuth2AuthorizedClientManager; } private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributeManager() { return oAuth2AuthorizeRequest -> { Map<String, Object> contextAttributes = new HashMap<>(); HttpServletRequest httpServletRequest = oAuth2AuthorizeRequest.getAttribute(HttpServletRequest.class.getName()); String userName = httpServletRequest.getParameter(OAuth2ParameterNames.USERNAME); String userPassword = httpServletRequest.getParameter(OAuth2ParameterNames.PASSWORD); if(StringUtils.hasText(userName) && StringUtils.hasText(userPassword)) { contextAttributes.put(OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME, userName); contextAttributes.put(OAuth2AuthorizationContext.PASSWORD_ATTRIBUTE_NAME, userPassword); } return contextAttributes; }; } } 이렇게 됩니다. 현재 상황으로 문제가 되어 있는 부분이 없는 것 같습니다. 어디부터 다시 확인해야 될지 조언 부탁드립니다.

  • java
  • spring
  • spring-boot
  • oauth
댓글 1 좋아요 0 조회수 228

h2연결이 되지 않습니다.

미해결

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

<property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> chmod 755 h2.sh ./h2 swh 다 해봤는데 안되네요.. 어떻게 해결하나요? 이전 hello-jpa에서 따라하던 test의 경우는 데이터베이스 정상적으로 연결이 되었는데 실습때 jpabook에서 사용할 jpashop은 연결이 안되는데 어떻게 해결하나요? 경로는 맞고 바탕화면에 h2에 bin에 파일들은 정상적으로 있습니다 구글링을 하여 따라해봐도 위 사진처럼 됩니다.

  • java
  • jpa
tkdtls4966 댓글 2 좋아요 0 조회수 155

객체지향관련 질문입니다

미해결

김영한의 실전 자바 - 기본편

안녕하세요 선생님 , 자바에 대해 깊이 학습하고자 다시 기초부터 배우고있는 주니어 개발자입니다. 다름이 아니라 현재 목차에서 데이터와 기능들이 분리되어 있는것은 유지보수 관점에서 힘들기때문에 그 둘을 묶기위한 설계가 객체지향이라고 이해를 했는데요. 스프링 관점에서 보면 데이터의 무결성을 지키기위해 데이터(dto) 와 서비스는 분리하는 설계를 하는것으로 알고있습니다. 일반 자바와 스프링은 조금 다른 시각으로 바라봐야 할까요?

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 170

section04

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

어제는 잘됬는데 오늘 다시 해보니까 계속 오류가 생겨서 무슨 문제일까요? 서버에서도 에러가 뜨고 어제는 잘됬는데요 어제는 오류 안떳는데 오늘은 뜨고요 이거 다운받아야 할까요? 네트워크는 잘 작동을 하는데요. 페이로드랑 응답에는 에러가 뜨네요. 어제는 분명이 됬는데 오늘 이러니까 이유를 모르겠어요 ㅠ 다른 섹션도요

  • react
  • node.js
  • seo
  • graphql
  • next.js
imhj11777 댓글 3 좋아요 0 조회수 228

인기 태그

인프런 TOP Writers

주간 인기글