inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

성능 최적화에서 쿼리 횟수 줄이는 것이 가장 중요한 것인가요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 내용에서 계속해서 쿼리 횟수를 줄이는 방향으로 확장시키시는데 일반적으로 db에 sql문 날리는 횟수를 줄이는 것이 가장 중요한 것이 맞을까요? 극적으로, db에 간단한 sql문 2번 날리기 vs 조인 많은 sql문 1번 날리기 하면 후자가 더 성능이 좋은지 여쭙니다. 물론 상황에 따라 다르겠지만 일반적인 상황을 가정하여 답해주시면 감사할 것 같습니다. 일반적으로 db 네트워크 비용때문에 후자가 더 좋은게 맞을까요?

  • java
  • spring
  • spring-boot
  • jpa
조준범 Justin 댓글 1 좋아요 0 조회수 178

리눅스 서버에 대한 질문입니다.

미해결

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

스프링부트를 배포하는것을 검색하다보면 apache2.4를 서버에 설치 하는 것을 많이 본 거 같은데, 지금 도서관리 서비스는 정적인 서비스라 아파치가 필요 없는 걸까요?? 아니면 사용할 필요가 없는거 일까요?? 궁금합니다..

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
지루한 하마 댓글 1 좋아요 1 조회수 89

하나의 바운디드 컨텍스트 안에서는 연관관계 맵핑을 사용하는 게 좋을까요?

미해결

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

안녕하세요, 선생님 좋은 강의 늘 감사합니다. 자바 강의도 고급 3편 나올 날만을 기다리고 있습니다^^(자바는 개인계정이 아니라 비즈니스 계정으로 듣고 있습니다) 제가 이때까지 강의에서 배운 대로 실무에서 연관관계 맵핑을 사용하다가 MSA 프로젝트를 조금씩 하게 되었는데, 바운디드 컨텍스트 간에는 도메인끼리 전역 식별자(Long, String, ...) 을 사용하고 있습니다. 근데 한 바운디드 컨텍스트, 한 마이크로서비스 안에서는 서로 연관관계 맵핑을 하는 게 좋을까 문득 의문이 들었습니다. 서로 연관성이 높긴 하지만 결과적으로 다른 객체를 참고함에 있어서 어떤 건 키값으로, 어떤 건 엔티티 타입으로 참조하니까 동료들이 헷갈리진 않을까? (연관관계 맵핑한 경우)이후에 어떤 필요에 의해서 한 마이크로서비스 안에 있던 테이블들을 여러 개의 서비스로 나누게 된다면, 전역 식별자로 바꾸어야 하니 유지보수를 어렵게 하는 건 아닐까? 이런 고민들이 있는데 인터넷, AI 등으로는 뭔가 납득이 가는 답변을 못 만난 것 같아 고민고민하다가 결국 여기에 조심스레 여쭙고자 합니다. 하나의 바운디드 컨텍스트 안에서 연관관계 맵핑을 사용 -> 하지 않고 모두 전역식별자를 사용하는 게 좋다. 팀의 방향성 등에 따라 달라질 수 있는 부분이고, 어느 쪽을 하든 상관 없다. 저는 이 두 고민 사이에서 아직 명확한 답을 내리진 못 했는데, 선생님께서는 혹시 어떻게 생각하실까요? 약간 강의 범위를 벗어난 것 같기도 해서 죄송합니다ㅠㅠ 짧게나마 도움 주시면 정말 감사하겠습니다.

  • java
  • jpa
psam1017 댓글 1 좋아요 1 조회수 101

리턴값 질문드립니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

몇번째 강의에서 들었는지 기억이 안나는데 갑자기 궁금해서 문의드립니다. void 는 리턴값이 없다 라고 알고 있고 return0은 괄호안 실행문이 종료되는 기능으로 알고 있는데 가끔 return1 도 보이더라구요 요건 어떻게 처리가 되는지 설명 부탁드려요...ㅠㅠ 호출한 곳으로 1이란 값을 돌려주는 건가요?

  • python
  • java
  • c
  • 정보처리기사
dbgud85 댓글 1 좋아요 0 조회수 130

event, study 참조

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

강의 잘 듣고 있습니다! 현재 Event에서 다대일로 study를 단방향으로 참조하고있는데 스터디 모집시에 event쪽이 삭제되지 않아 버그가 생깁니다. 해결법으로는 2가지 생각해봤는데요. 양방향관계로 변경 후 Cascade사용 단방향으로 유지하지만 스터디종료 메서드에서 event를 수동으로 remove처리 1번 방법으로는 엔티티 설계 구조가 깨지니까 2번방법이 나으려나요. 고민이됩니다. 이런 참조 문제가 더 생길것을 방지해 양방향 관계로가는게 더 유연할지가 고민입니다. 아니면 초기설계목표상 모임이 하나라도 존재하면 스터디가 삭제되면안되는것인가요?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
이승혁 댓글 2 좋아요 0 조회수 245

회원가입 테스트 Rollback(false) 설정 했는데 h2 db에 데이터 없음.

미해결

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

===================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원가입 테스트 시 Rollback(false)를 설정하고 실행은 정상적으로 되고 log에서도 insert 된 것을 확인할 수 있는데, h2 db 에서는 데이터가 들어와있지 않습니다. 왜 그런걸까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jamong9669 댓글 2 좋아요 0 조회수 223

assertj 에 해당하는 Assertions 이 import가 상단에 되지 않는이

미해결

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

[질문 내용] ctrl + enter 를 해도 import가 상단에 안되는데 어떻게 해결을 해야할까요? junit 의 Assertions 만 import가 잘됩니다.

  • java
  • spring
  • mvc
  • spring-boot
kabsung lee 댓글 3 좋아요 0 조회수 347

빌드 부분에서 오류가 납니다.

미해결

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

빌드 부분에서 오류가 납니다. JAVA버젼도 21버젼으로 다시설치했고 경로에 한글도 없는데 왜일까요? 답변 부탁드립니다.

  • java
  • spring
  • mvc
  • spring-boot
전우영 댓글 2 좋아요 0 조회수 196

anotherCard.suit이 가능한 이유

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] public int compareTo(Card anotherCard) { // 숫자를 먼저 비교하고, 숫자가 같으면 마크를 비교 if (this.rank != anotherCard.rank) { return Integer.compare (this.rank, anotherCard.rank); } else { return this.suit.compareTo(anotherCard.suit); } } 이 코드에서 priavte으로 선언된 rank와 suit에 anotherCard.getRank() 나 anotherCard.getSuit() 으로 접근하지 않고 anotehrCard.rank 와 anotherCard.suit 로 바로 접근할 수 있는 이유가 뭔가요??

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

새 강의 쿠폰 관련 문의드립니다

해결됨

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

안녕하세요! 비슷한 유형의 질문글을 보고 늦었지만 문의드리게 되었습니다. 공지를 늦게 확인하여 쿠폰을 받지 못했는데 혹시 지금이라도 발급이 가능할까요?

  • react
  • node.js
  • seo
  • graphql
  • next.js
박혜원 댓글 2 좋아요 0 조회수 96

localhost:8080 접속시 로그인

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 localhost:8080 입력했는데 로그인 하라고 떠서요.. 혹시 뭐가 잘못된걸까요....? 오늘 인텔리제이는 처음 설치해서 사용중이고 원래는 sts3을 사용했었습니다..!!

  • java
  • spring
  • mvc
  • spring-boot
닉네임 댓글 2 좋아요 0 조회수 449

EsLint flat config format 으로 만들어질 때 참고

해결됨

Next.js 시작하기

import { dirname } from "path"; import { fileURLToPath } from "url"; import { FlatCompat } from "@eslint/eslintrc"; import prettierPlugin from "eslint-plugin-prettier"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, }); const eslintConfig = [ ...compat.extends("next/core-web-vitals"), ...compat.extends("plugin:prettier/recommended"), { files: ["**/*.js", "**/*.jsx"], plugins: { prettier: prettierPlugin, }, rules: { "no-undef": "error", "prettier/prettier": [ "error", { singleQuote: true, semi: true, tabWidth: 2, trailingComma: "all", printWidth: 80, bracketSpacing: true, arrowParens: "avoid", }, ], }, }, ]; export default eslintConfig;

  • javascript
  • react
  • next.js
  • eslint
  • prettier
Dongmin Kim 댓글 1 좋아요 0 조회수 359

프로젝트 오픈 에러

미해결

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

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

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

변수 숫자 표현 범위_long, double

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네 [질문 내용] [김영한의 자바 입문] 강의 중 [형변환 1-자동형변환] 수강 중 질문이 있습니다. 1:25에 숫자 표현 범위가 long보다는 double이 크다고 하셨습니다. 하지만 이전 변수 타입 강의 때, long과 double 모두 2의 64승 만큼의 메모리 크기를 가진다고 배웠습니다. 메모리 크기가 같은데 왜 long보다 double의 숫자 표현 범위가 더 큰지 궁금합니다. double이 실수형이라 소수점까지 표현이 가능하기 때문인가요?

  • java
  • 형변환
  • 변수
abd 댓글 1 좋아요 0 조회수 222

단일 쓰레드에서 성능 차이가 발생하는 이유

미해결

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

성능 테스트를 할 때 멀티쓰레드를 사용하는 것이 아닌 단일 쓰레드(main 쓰레드) 만 사용하고 있는데, increment()에 synchronized를 붙인 것과 안 붙인 것의 성능 차이는 왜 발생하는 것인가요? BasicInteger와 VolatileInteger의 경우에는 캐시를 사용하는가, 메인 메모리를 사용하는가의 차이로 성능 문제가 발생했다는 것은 알겠는데, BasicInteger와 SyncInteger 간의 성능 차이가 왜 발생하는 것인지 모르겠습니다..

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
도토리 댓글 2 좋아요 0 조회수 242

일 대 일 관계

미해결

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

[질문 내용] 회원 테이블과 주민등록번호 테이블이 있다 가정했을 때 주민등록번호는 회원의 고유번호이고, 유니크 정보이기 때문에 회원과 주민등록번호 는 서로 일대일 관계가 되겠네요? 그렇다면 이 두 테이블에 대한 엔티티도 만들었을 때 서로 외래키를 선택할 수도 있는거고요.

  • java
  • jpa
soojinkimss 댓글 2 좋아요 1 조회수 107

강의의 핵심이 기본 객체 생성 vs 배열 객체 생성 의 차이인건가요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] int[] students = new int[2]; //이건 정수형 배열을 선언하는 것이고 Student student1 = new Student(); // 이건 Student클래스의 인스턴스인 student1객체를 생성하는 것이고 Student[] students = new Student[2]; 그리고 이제 이건 Student클래스 객체를 두 개 생성하는 배열을 선언하는 것인가요?

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

book/[id] 과 같은 동적경로에 대응하는 페이지가 어떻게 풀라우트캐시가 동작할 수 있죠?

해결됨

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

선생님 강의 5-3) 9분 10초를 보다가 궁금한 것이 있습니다~ generateStaticParams으로 지정했던 id값이 아닌 4번페이지에 접속했을 때 해당 페이지가 실시간으로 다이나믹하게 페이지가 생성되고 풀라우트캐시에 저장된다고 하셨는데요 풀라우트캐시는 static페이지에서만 동작한다고 알고 있고, [id]컴포넌트에서 fetch함수에 캐싱 옵션으로 'force-cache'을 설정한 것도 아닌데 어떻게 풀라우트 캐시가 동작할 수 있나요??

  • react
  • typescript
  • next.js
오윤석 댓글 3 좋아요 1 조회수 352

@ManyToOne, @JoinColumn질문드립니다.

미해결

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

@ManyToOne, @JoinColumn에 대해 학습하면서 이해가 잘 되지않아 구글링이나 chatGPT와 같은 AI를 통해 아래와 같이 정리했는데요. 이렇게 이해하면 될까요? 제가 올바르게 이해한것이 맞는지 궁금합니다.. JoinColumn에는 매핑할 외래 키 컬럼 이름을 적는다. 테이블에서 외래키로 사용될 컬럼이름을 적는다. Member 엔티티의 team이랑 MEMBER 테이블의 외래키 컬럼(TEAM_ID)을 서로 매핑해줘야 MEMBER 테이블의 외래키(TEAM_ID)를 통해서 Team을 가지고 올 수 있다. @JoinColumn을 통해 MEMBER테이블의 외래키 컬럼 이름이 TEAM_ID임을 명시하고,@ManyToOne 을 통해 Team엔티티와의 관계를 정의한다. 즉, @JoinColumn과 ManyToOne을 통해 Member엔티티와 Team엔티티의 관계를 정의한다. JPA는 Team엔티티에서 @Id로 설정된 필드를 확인하고, 해당 필드가 Team엔티티의 기본키임을 알게된다. 그리고 JPA는 Member테이블의 외래키와 Team테이블의 기본키를 매핑해서 외래키-기본키 관계를 설정한다. Member엔티티의 필드에는 Team team이 있지만 db에는 객체를 저장할 수 없으므로 Member엔티티를 em.persist()로 저장할떈, db에 team 객체가 아니라 @JoinColumn으로 명시했던 외래키가 저장된다. 이때 Team엔티티에서 @Id로 설정된 필드의 값이 저장된다. member.getTeam()을 할때도 MEMBER 테이블의 TEAM_ID를 사용해 Team엔티티 데이터를 가져올수있다. @JoinColumn으로 명시했던 외래키 값으로 TEAM테이블을 조회해서 TEAM객체를 생성해서 리턴한다.

  • java
  • jpa
오리쉐리 댓글 2 좋아요 1 조회수 150

스냅샷이 없는 상태에서의 변경 감지 방법이 궁금합니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Member member = new Member(1L, "member"); em.persist(member); member.setName("Test"); tx.commit(); 위 코드를 실행하면 아래와 같이 SQL 쿼리문이 로그에 찍히는데요 Hibernate: /* insert for hellojpa.Member */ insert into Member (name, id) values (?, ?) Hibernate: /* update for hellojpa.Member */ update Member set name=? where id=? persist()를 할 때 member 객체를 영속성 컨텍스트에 등록하고, 해당 상태에서는 신규 엔티티이므로 setName()으로 이름을 바꾸더라도 새로운 값이고, DB와 동기화되지 않았기에 스냅샷도 없을 것이라 생각했습니다. 그래서 쿼리문도 INSERT 쿼리문 1개만 발생할 줄 알았는데, 왜 UPDATE 쿼리문도 함께 발생하는지 알려주실 수 있을까요? 정확히는 persist를 수행하고 setName을 수행할 때, 스냅샷이 생성되지 않은 상태, 스냅샷이 없는 상태에서 어떻게 변경을 감지하여 UPDATE 쿼리문을 작성한 것인지 궁금합니다. 처음에는 PK 생성 전략을 @GeneratedValue(strategy = GenerationType.IDENTITY) 로 해서 INSERT문이 먼저 생성되어야만 하는 것이 원인인줄 알았지만, SEQUENCE 전략으로 바꿔도 UPDATE 쿼리문이 발생하는 것을 보고 잘못 짚은 것 같아 질문 남겼습니다. 감사합니다.

  • java
  • jpa
천다인 댓글 2 좋아요 0 조회수 185

인기 태그

인프런 TOP Writers

주간 인기글