inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

서버 시작 시 자동으로 브라우저 실행하기

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서버 시작 시 자동으로 브라우저 실행하는 설정이 따로 있나요?

  • spring
  • mvc
wjswotmd2 댓글 1 좋아요 0 조회수 1099

orphanRemoval에서 발생하는 쿼리 관련하여 질문드립니다.

해결됨

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

안녕하세요. OneToMany 관계에서 orphanRemoval = true 옵션으로 데이터 제거 관련하여 질문드립니다. MemberService.removeAddress() 로직에서 address를 제거하면 select address -> select member -> select address -> delete 순으로 쿼리가 발생합니다. select address 쿼리가 2번 발생하는데, 일반적으로 쿼리 2번을 발생시키면서 고아 객체 제거를 진행하는 걸까요? 아니면 다른 방식의 remove 과정이나 또는 select address 쿼리를 1번으로 줄일 수 있는 방법이 있다면 알려주실 수 있을까요? 감사합니다. @RequiredArgsConstructor @Slf4j @Service public class MemberService { private final AddressRepository addressRepository; @Transaction public void removeAddress(Long addressId) { Address address = addressRepository.findById(addressId) .orElseThrow(() -> new Exception()); Member member = address.getMember(); member.getAddresses().remove(address); } } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") private Long id; @OneToMany(mappedBy = "member", cascade = CascadeType.PERSIST, orphanRemoval = true) private final List<Address> addresses = new ArrayList<>(); // .. 중략 } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "address_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; // .. 중략 }

  • java
  • spring
  • spring-boot
  • jpa
Anonymous 댓글 2 좋아요 0 조회수 259

디버그 메세지가 나오지 않습니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

application properties에 추가 했는데 디버그메세지가 나오지 않네요?

  • spring
  • mvc
jfk6725 댓글 1 좋아요 0 조회수 256

하나의 앤티티에 일대다 매핑을 2개 이상 일 때 한꺼번에 조회하면 데이터가 뻥튀기 됩니다.

미해결

실전! Querydsl

안녕하세요. 제가 겪고 있는 문제에 관해서 질문드리고 싶습니다. A 라는 앤티티가 B 와 C 를 패치 조인 전략을 사용해서 일대다 양방향을 하고 있는 상황입니다. query .selectFrom(A) .leftJoin(A.B, B).fetchJoin() .leftJoin(A.C, C).fetchJoin() .where(A.id.eq(AId)) .fetchOne() 위와 같이 B 와 C 를 모두 패치 조인해서 한꺼번에 조회하게 되면 B 의 데이터가 C 의 개수 만큼 뻥튀기 되는 상황이 발생합니다. 이를 어떻게 해결할 수 있는지 궁금합니다. 저는 각각의 앤티티를 따로 따로 조회해서 A 에 할당해준다는 방법을 떠올렸는데 이렇게 하면 A 에 setter method 를 만들어야 해서 좋은 패턴이 아니라는 생각이 들었습니다.

  • java
  • jpa
댓글 1 좋아요 0 조회수 179

이번 강의에서는 SONG이라는 sqlite3 데이터베이스를 import 하지 않았는데 데이터가 혹시 어디서 불러진 건가요???

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

model.py 를 보면 Song클래스가 정의되었는데 데이터가 어디서 불러와 졌는지를 잘 모르겠습니다ㅠ 도움 부탁드립니다. from __future__ import annotations from datetime import date from typing import Dict from urllib.parse import quote from django.db import models from django.utils.html import format_html # 파이썬 3.7부터 지원 # @dataclass class Song(models.Model): # 장고 모델 아니고 일반 파이썬 클래스! melon_uid = models.CharField(max_length=20, unique=True) rank = models.PositiveSmallIntegerField() album_name = models.CharField(max_length=100) name = models.CharField(max_length=100) artist_name = models.CharField(max_length=100) cover_url = models.URLField() lyrics = models.TextField() genre = models.CharField(max_length=100) release_date = models.DateField() like_count = models.PositiveIntegerField() @property def cover_image_tag(self): return format_html('<img src="{}" style="width: 50px;">', self.cover_url) @property def melon_detail_url(self) -> str: melon_uid = quote(self.melon_uid) return f"https://www.melon.com/song/detail.htm?songId={melon_uid}" @property def youtube_search_url(self) -> str: search_query = quote(f"{self.name}, {self.artist_name}") return f"https://www.youtube.com/results?search_query={search_query}" @classmethod def from_dict(cls, data: Dict) -> Song: return cls( melon_uid=data.get("곡일련번호"), rank=int(data.get("순위")), album_name=data.get("앨범"), name=data.get("곡명"), artist_name=data.get("가수"), cover_url=data.get("커버이미지_주소"), lyrics=data.get("가사"), genre=data.get("장르"), release_date=date.fromisoformat(data.get("발매일")), like_count=int(data.get("좋아요")), )

  • react
  • python
  • django
  • web-api
  • htmx
meyou1218 댓글 1 좋아요 0 조회수 214

섹션4 문제풀이2

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 사소할 수도 있는데 궁금해서요. 로또 제너레이터 클래스 만드실때 Private final Random random = new Random(); 에서 왜 final로 만드나요?

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

우분투 설치 버전 변경 사항

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

================= 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ================== 저번 강의에서는 우분투 버전이 20이었는데, 이번 강의에서는 18입니다. 새로 wsl을 깔아야 하나요?

  • verilog-hdl
  • fpga
  • 임베디드
puggy K 댓글 2 좋아요 1 조회수 459

VSC에 이미 깃허브 로그인 되어 있는 경우 커밋 push 해도 Actions 실행 안되는 케이스

해결됨

개발자를 위한 쉬운 도커

제가 이미 VSC에 깃허브 로그인이 되어있었고 커밋 푸시를 했는데도 액션이 실행이 안되었는데, 아래 글을 보고 해결했습니다. 08-cicd 브랜치 터미널에서 다음 <내용> 칸에 본인에 맞는 값을 채운뒤 실행하면 됩니다. git remote set-url origin https://<personal_access_token>@github.com/<your_username>/leafy.git https://stackoverflow.com/questions/66231282/how-to-add-a-github-personal-access-token-to-visual-studio-code

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • container
희희 댓글 1 좋아요 1 조회수 490

몬스터 포탈 생성 오류

미해결

MSW(메이플스토리월드) 게임만들기

몬스터포탈생성 후 new component 생성하고 promperty 적용하는부분에서 +표시가 안눌려지는데 왜그런건가요? 포탈삭제,재성성후 재시행해봐도 똑같은데... 이거때문에 다음으로 못넘어가고 있어요 ㅠㅠ

  • Lua
  • UCC
닝디효 댓글 1 좋아요 0 조회수 307

jpa find(.class, primaryKey: ) 부분 궁금합니다.

미해결

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

안녕하세요! 세팅 그대로 따라했는데 find인자값안에 파란색으로 동그라미 친것처럼 primaryKey가 자동완성이 안됩니다.. 아무리 찾아도 문제를 못 찾겠는데 혹시 짚이시는 부분이 있으실까요!?ㅠㅠ

  • java
  • jpa
파랑 댓글 2 좋아요 0 조회수 181

통합 자료 요청

미해결

[핵집] 2025 빅데이터 분석기사(필기)_과목 1~2

안녕하세요 [2024 빅데이터 분석기사(필기)_과목 1~2] 과목 신청해서 수강 중 입니다 해당 강의 피피티 통합 자료 부탁드립니다 이메일: dnfl531@naver.com 감사합니다

  • 빅데이터
댓글 2 좋아요 0 조회수 260

kube-prometheus 란 무엇인가요?

미해결

실습으로 배우는 프로메테우스 (Prometheus Stack)

강의를 들으며 구글링을 하던 중에 kube-prometheus 라는 것이 있다는걸 알게되었습니다. 아래와 같이 prometheus-operator 의 Repository로 있던데 https://github.com/prometheus-operator/kube-prometheus 아래 prometheus-operator와는 어떻게 다른건가요? https://github.com/prometheus-operator/prometheus-operator 아직 개념이 잘 잡히지 않아서 위 2개 중 어떤걸로 설치해야 하는건지도 혼란스럽네요. 답변 부탁드립니다. 감사합니다.

  • kubernetes
  • prometheus
mc1.shin 댓글 1 좋아요 0 조회수 342

fetch_size 크기만큼 null을 다 채워서 보내는데 이유를 모르겠습니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. default_batch_fetch_size: 100 옵션을 주었을 때 in 절에 2개의 값만 넣어도 되는 경우에도 size의 크기를 굳이 맞춰서 보내는 문제가 있습니다. 예를들어 2개의 id 값만 보내도 된다면 아래와 같이 (1,2,null...) 으로 꼭 100개를 모두 맞춰서 보내게 됩니다. select oi1_0.order_id,oi1_0.order_item_id,oi1_0.count,oi1_0.item_id,oi1_0.order_price from order_item oi1_0 where oi1_0.order_id in (1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 구글에 검색해도 왜 이런 증상이 발생하는지 찾아지지가 않아 문의 드립니다. bulid.gradle 설정은 다음과 같습니다. plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }

  • java
  • spring
  • spring-boot
  • jpa
it-cous 댓글 1 좋아요 1 조회수 690

member에서 orders 검색 자주 하지 않나요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 보통 쇼핑몰 사이트에서 각 member(사용자)들이 자기가 무엇을 주문 했었는지 확인하기 위해 orders를 자주 보지 않나요? 그런데 왜 여기서는 member가 orders를 가지는 것이 의미가 없다고 하는지 이해가 잘 안돼요!

  • java
  • jpa
박동규 댓글 2 좋아요 1 조회수 473

교안 공유 부탁 드립니다

미해결

실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(26년 Update)

오프라인으로 강의하셨던 내용 같은데, 없는 교안 내용을 따라가려니 어렵네요,, 교육 공유 부탁 드립니다

  • Google-Analytics
  • Google-Tag-Manager
  • 데이터-리터러시
  • GA4
신재원 댓글 2 좋아요 0 조회수 290

실습 파일 문의

미해결

파일 업로드 취약점 고급 공격 기법 PART2 [통합편]

다양한 실무 환경에서의 공격 방법 세번째 [압축 해제 환경에서 웹쉘 업로드] 실습해 보려고 하는데, 실습환경을 제공해주실 수 있나요?

  • java
  • 모의해킹
  • 웹셸
  • 오펜시브-시큐리티
maidemoi 댓글 1 좋아요 0 조회수 296

typeOrm 1:N N:1 관련 질문입니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

너무 단순한 것 같은데, 몇시간 확인해봐도 해결이 되지 않아서 이렇게 질문드립니다. post 로 1:N을 생성해서 확인해 보면, 아래 이미지 처럼 post에 빈배열이 나옵니다. get 요청, relations 은 아래와 같습니다. 강의를 보면서 작성한 코드입니다. 이전 내용인 profile 은 잘 되는데... post 1:N 은 무엇이 문제일까요...?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
지식쟁이 댓글 1 좋아요 0 조회수 295

Axios Mocking에 관한 질문입니다.

미해결

습관부터 바꿔주는 Node.js & Express 기초

// Axios.test.ts import axios from 'axios'; import ManagerService from "./ManagerService"; jest.mock('axios'); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Axios Test", () => { let managerService = new ManagerService(); it("should mock axios get call", async () => { mockedAxios.get.mockResolvedValue({ data: [ { corporation: "inflearn" } ], }); const test = await managerService.axiosTest("inflearn"); expect(test).toEqual([ { corporation: "inflearn" } ]); expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: "inflearn" }, }); }); }); 위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다. 하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다. 1번 코드 ( 테스트가 잘 동작하는 코드 ) axiosTest = async (corporation: string) => { const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: corporation, }, }); if (!response) { throw new Error("값이 없음"); } return response.data; }; 2번 코드 ( 값이 없음으로 에러가 발생하는 코드 ) axiosTest = async (corporation : string) => { const site = await axios({ method: 'get', url: `${process.env.SERVER_URL}/corporation/info`, params: { corporation : corporation }, }) if(!site) { throw new Error("값이 없음"); } return site.data } 둘의 차이점에 대해서 알 수 있을까요?

  • node.js
  • express
  • jest
  • test
  • axios
  • mock
감사합니두~ 댓글 1 좋아요 0 조회수 381

Express 사용하면서 Jest 테스트 관련해서 질문 드립니다.

미해결

습관부터 바꿔주는 Node.js & Express 기초

// Axios.test.ts import axios from 'axios'; import ManagerService from "./ManagerService"; jest.mock('axios'); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Axios Test", () => { let managerService = new ManagerService(); it("should mock axios get call", async () => { mockedAxios.get.mockResolvedValue({ data: [ { corporation: "inflearn" } ], }); const test = await managerService.axiosTest("inflearn"); expect(test).toEqual([ { corporation: "inflearn" } ]); expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: "inflearn" }, }); }); }); 위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다. 하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다. 1번 코드 ( 테스트가 잘 동작하는 코드 ) axiosTest = async (corporation: string) => { const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: corporation, }, }); if (!response) { throw new Error("값이 없음"); } return response.data; }; 2번 코드 ( 값이 없음으로 에러가 발생하는 코드 ) axiosTest = async (corporation : string) => { const site = await axios({ method: 'get', url: `${process.env.SERVER_URL}/corporation/info`, params: { corporation : corporation }, }) if(!site) { throw new Error("값이 없음"); } return site.data } 둘의 차이점에 대해서 알 수 있을까요?

  • node.js
  • express
  • jest
  • test
  • axios
  • mocking
감사합니두~ 댓글 1 좋아요 0 조회수 350

동영상 배속조절 안됨

미해결

기존에 들었던 동영상간의 다시 들어가니 동영상 배속조절이 안되요 예전에 되어서 빨리강의 들었거든요 왜 안되죠??

비타민걸 댓글 1 좋아요 0 조회수 132

인기 태그

인프런 TOP Writers

주간 인기글