inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Category 엔티티 계층 질문드립니다.

미해결

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

@Entity @Getter @Setter public class Category { @Id @GeneratedValue @Column(name = "catagory_id") private Long id; private String name; @ManyToMany @JoinTable(name = "category_item",joinColumns = @JoinColumn(name = "category_id"),inverseJoinColumns = @JoinColumn(name = "item_id")) private List<Item> items = new ArrayList<>(); @ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); } 이 부분에서, 카테고리의 계층? 을 표현하기위해 카테고리 엔티티를 위와 같이 하셨는데요. 여기에서 @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 이 부분이 무슨 의미로 사용되는지 이해가 잘 되지않습니다.. 연관관계의 주인이 아닌쪽이기 떄문에 mappedBy를 적어준거같은데, 해당 코드가 필요한 이유와 사용되는 목적이 무엇인지 질문드립니다. 그리고 private Category parent와 private List<Category> child = new ArrayList<>();가 어떤 연관관계가 있길래 연관관계를 맺는것인지 이해가 잘 되지않아서 질문드립니다. 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
오리쉐리 댓글 2 좋아요 0 조회수 149

타입 매개변수 제한

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 타입 매개변수를 Animal로 상한을 지정함으로써 제네릭 타입 안에서 Animal 클래스의 기능을 사용할 수 있다는 건 이해했는데, Animal의 자식인 Dog, Cat의 기능도 사용을 못하나요? 코드를 짜서 실행해본 결과 사용이 안되는걸로 확인 했습니다.. 만약 안되는거면 왜 그런지, 만약 Dog, Cat의 기능을 사용하고 싶다면 어떻게 해야하는지 궁금합니다.(다운 캐스팅을 해야하는건지..?)

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

페이지 라우터의 단점을 보완할 방법

해결됨

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

안녕하세요. 강의에서 설명해주신 페이지 라우터의 단점 중 "불필요한 컴포넌트들도 JS 번들에 포함된다"는 내용에 대해 질문드리고 싶습니다. 제가 이해한 바로는, 초기 HTML은 사전 렌더링 시 모든 컴포넌트를 포함하여 만들어지되, 실제로 브라우저에서 하이드레이션(클라이언트 측 React 활성화)이 일어나는 컴포넌트는 상호작용이 필요한 컴포넌트나 CSR 방식으로 처리된 컴포넌트에 한정 되어 이들만 JS 번들에 포함되는 것으로 생각했습니다. 즉, 단순히 정적인 컴포넌트는 HTML로만 렌더링되고, JS 번들에는 포함되지 않거나 최소화된다고 이해했는데, 혹시 이 부분에서 제가 잘못 이해하고 있는 걸까요? 초기 렌더링 시 어떤 요소들이 HTML로 렌더링되고, 어떤 컴포넌트들이 JS 번들에 포함되는지 기준을 설명해주시면 감사하겠습니다.

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

fetchUser 요청시 userPoint.amount

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

충전 금액이 balance에 누적되는 것 같은데, userPoint에는 따로 저장되는 것이 아닌가요? 아니라면 충전 된 유저의 포인트는 어떻게 가져와야 될까요? 그리고, 사진처럼 fetchUser 하면 userPoint.amount 가 non-nullable field 라며 userPoint의 amount를 못가져오는데 혹시 오류일까요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
mh 댓글 2 좋아요 0 조회수 90

인증 관련 질문

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 좋은 강의 잘 보고있습니다. 이와 같이 마이크로 서비스로 프로젝트가 구성되면, 유저 인증과 관련된 부분은 어떻게 처리되는지 궁금합니다. 일단 스스로 생각해본 바로는, 게시글/댓글 쓰기, 좋아요 API는 로그인 한 유저만 가능하다고 하면, 각각의 서비스에서 클라이언트의 요청을 받았을 때 해당 요청을 유저 API를 호출하여 인증을 하는 방식이 있을 것 같은데 이 방법은 각 서비스들이 유저 서비스를 알고 있어야 한다는 단점이 있을 것 같습니다.. 위와 같은 상황에서의 실무에서 모범 사례나 정형화된 방법이 있을까요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
leesh5000 댓글 2 좋아요 0 조회수 72

[id].tsx페이지 SEO 관련 질문드립니다.

해결됨

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

안녕하세요. 배포 후 SEO 확인 과정에서 이해되지 않는 부분이 있어 질문드립니다. [id].tsx 에서 동적 라우팅을 처리할 때, getStaticPaths 를 통해 id=1,2,3 에 해당하는 페이지는 빌드 시점에 SSG로 사전 렌더링되도록 설정하였고, 나머지 ID에 대해서는 fallback: true 를 사용해 첫 요청 시 SSR처럼 처리되는 것으로 이해했습니다. 또한 강의에서 router.isFallback 이 true 일 경우, SEO를 고려하여 <Head> 에 별도의 메타 정보를 넣어주는 분기 처리를 하신 것으로 알고 있습니다. 저는 이 분기 처리가 필요한 이유가, 해당 시점에는 실제 데이터가 포함된 HTML이 아직 완성되지 않았기 때문에 SEO 검사 도구나 크롤러에 최소한의 메타 정보를 제공하려는 의도라고 이해했습니다. 하지만 실제 배포된 결과를 확인해보니, id=1,2,3 외의 fallback으로 생성된 페이지들조차도 og:image 등 메타 정보가 정상적으로 노출되고 SNS 공유 시에도 커버 이미지가 잘 보이고 있습니다. 이런 경우, fallback으로 생성된 SSR 페이지임에도 불구하고 og 태그가 잘 노출되는 이유는 무엇인지 궁금합니다. SEO 관점에서 이런 동작이 가능한 이유가 있다면 설명 부탁드립니다.

  • react
  • typescript
  • next.js
kos7662 댓글 1 좋아요 0 조회수 53

BufferedInputStream이 1바이트씩 조회해도 성능이 좋은 이유

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

BufferedInputStream에서 read() 를 호출하면 buf 라는 버퍼에 있는 것을 1바이트씩 꺼내어 조회한다고 하는데, 그렇다면 처음에 FileInputStream에서 하나씩 read() 하는 것이랑 결국 호출 횟수는 같으니 똑같은 것 아닌가? 하는 생각이 들었습니다. 그러니까 버퍼에 데이터 100바이트를 FileInputStream에서 한번에 들고와도 결국 바깥에서는 1바이트씩 꺼낸다고하니 뭐가 다른건가 궁금해졌습니다. 강의에서 버퍼에 데이터가 채워져있으면 FileInputStream의 read()를 호출하지 않고 바로 버퍼에서 꺼내준다고 하셨는데요, 여기서 버퍼에 한번에 많이 가져옴으로서 FileInputStream의 read() 를 적게 호출하게 되기 때문에 이에 따라 시스템콜도 적게 호출되므로 성능이 증가하는건가요? 앞의 강의에서 FileInputStream과 FileOutputStream의 read(),write()의 횟수를 줄여야 성능이 증가한다고 하셨으니까요. 그래서 BufferedInputStream의 read()로 1바이트씩 꺼내는건 성능에 큰 지장이 없는 것인가요?

  • java
  • 네트워크
  • 객체지향
yoon6669 댓글 1 좋아요 0 조회수 95

eslint 설정

해결됨

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

실제 코드에 나와 있는 설정과 아래의 설명이 반대로 바뀐 거 같은데 어디에 맞춰서 설정해주면 될까요?

  • react
  • typescript
  • next.js
라연 댓글 2 좋아요 0 조회수 98

오타제보

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

강의명 : 파일 입출력과 성능 최적화4 - Buffered 스트림 읽기 강의 위치: 1분 22초 오타 위치: 2. IO 기본1.pdf 26페이지 최하단 오타 내용 : Buffered Output Stream 분석 -> Buffered Input Stream 분석 해당 부분의 강의는 BufferedInputStream 에 대한 내용이므로 BufferedInputStream 분석 이 되어야하지 않나 싶습니다. 감사합니다

  • java
  • 네트워크
  • 객체지향
yoon6669 댓글 2 좋아요 0 조회수 79

MemberRepository의 JPA 종속성에 관하여

해결됨

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

쉽게 이해할 수 있게 설명해주셔서 강의 잘 봤습니다. 👍 강의 후반부(39. 문서와 코드 다듬기)에 MemberRepository에 @Query를 사용하면서 JPA 종속성이 추가되었는데 이 부분에 대해서 언급 없이 2가지 조인 방식과 관련하여 설명하고 넘어갔습니다. 강의 중반부(23. 회원 애플리케이션의 포트 정의)의 MemberRepository 설명과 같이 spring-data-commons의 Repository라는 마커 인터페이스를 사용하는 것은 동의하나 application layer에 기술 종속성이 추가된 내용 관련하여 부가 설명 요청 드려도 될까요? 물론 다음 강의에 해당 설명이 있을것으로 생각되지만.. MemberQueryRepository로 분리하고 adapter layer에서 구현하는 방향이 더 좋아보이는데 개선 방향도 같이 부탁드립니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
hklee.study 댓글 1 좋아요 0 조회수 437

sql 연결 오류

미해결

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

Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 이러한 오류가 뜨는데 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ application.yml 코드는 다음과 같습니다 spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
ksangyun04 댓글 2 좋아요 1 조회수 68

문자 집합 호환성 여부를 판단할 때

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

어떤 두 문자 집합이 호환되는지의 기준은 해당 언어를 표현하는 바이트가 일치해야함 그리고 해당 문자 집합들의 문자의 바이트(비트) 값이 일치해야함. 위 두가지를 모두 만족한다면 두 집합은 서로 호환된다고 이해하면 될까요?

  • java
  • 네트워크
  • 객체지향
yoon6669 댓글 1 좋아요 0 조회수 68

processorNonTransactional 멱등성 질문

해결됨

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

강의 잘 보고 있다. 잘 정리된 자료 덕분에 배치 작업을 이해하고 있는 중이다. 다만 설명 중 이해 안되는 부분이 존재한다. 바로 이 부분 멱등하지 않은 ItemProcessor 를 내결함성(FaultTolerance) 기능 과 함께 사용해야 하는 상황이라면, 반드시 processorNonTransactional 를 설정하도록 하자. 오히려 멱등하지 않은 ItemProecessor의 경우에는 이 설정을 비활성화 해야 하는 거 아닌가? 나의 부족한 영어실력과 GPT를 통해 스프링 배치는 ItemProcessor가 트랜잭션이나 멱등성을 가져야 한다고 되어 있는 것으로 이해하였다. It must be either transactional or idempotent. 출처: https://docs.spring.io/spring-batch/reference/transaction-appendix.html 떠라서 멱등하지 않은 ItemProcessor는 processorNonTransactional()을 지양해야 하는 것으로 나는 이해된다... 답변 부탁한다. (존대로 질문하면 rm -rf 하신다길래 이렇게 남겨요 ㅎㅎ..)

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
검토 댓글 1 좋아요 1 조회수 140

compareTo

미해결

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

[질문 내용] 처음 문제를 풀떄 Card 클래스에 compareTo 오버라이딩을 @Override public int compareTo(Card o) { if(number != o.getNumber()){ return this.number - o.number; } return shape.compareTo(o.getShape()); } 위 코드처럼 작성했는데 숫자가 낮은 카드 먼저 안 나올때가 있는데 잘못 작성한걸까요?

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

세션 6의 퀴즈 5번 정답 옵셔널 캐치올 아닌가요?

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

문제에서도 /docs 가 있고, 해설에도 옵셔널 캐치올에는 /docs 가 포함 될때도 사용된다고 되어 있는데, 막상 답은 캐치올을 선택해야 답으로 나오네요.

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
Jmob 댓글 2 좋아요 1 조회수 110

자바 버전에 관하여

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

자바 21버전이 아닌 17버전을 사용해도 괜찮나요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
커디널스 댓글 1 좋아요 0 조회수 70

질문

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요 문제1번 관련 문의 사항이 있어 글 남깁니다. 1번에 getCount는 synchroinized 하는 이유가 뭔가요? 중간에 호출되는 부분이 없는 것 같고, t1.join() t2.join() 으로 마지막 출력할때도,,, synchroinized이게 안필요하다는 생각이 들어서요 제가 이해를 잘못한건지 문의드립니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
hi_man159 댓글 1 좋아요 0 조회수 73

db 연결 url 오류

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] h2데이터베이스를 사용해보고 난 후 직접 mysql을 연결하여 해보고 싶어져 연동을 시도하였습니다. <오류화면> <application.properties> 그런데 이때 사진과 같은 오류가 발생합니다. application.properties에 mysql에 대한 정보를 정확히 적었으나 해당 오류가 발생합니다. application.properties의 위치는 src/main/resources에 위치하고 있습니다. 사진과 같이 build.gradle에 의존성도 추가해 두었습니다. 이 때, 영상에서 말씀해주신대로 빌드를 intelliJ로 설정해두면 해당 오류가 발생하나 gradle로 변경하면 정상적으로 db와 연결되어 작동합니다,, intelliJ가 속도가 빠르다고 하셔서 사용하고 있었으나 intelliJ로 빌드하면 오류가 발생하는지 모르겠습니다...ㅜ 코드가 정확히 작성되어도 해당 오류가 발생할 수 있는 것일까요? 이대로 gradle로 빌드하면서 나아가도 나중에 문제가 없을지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
전유민 댓글 2 좋아요 0 조회수 64

인기 태그

인프런 TOP Writers

주간 인기글