inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

무한 뎁스 댓글 테스트 데이터 삽입 질문

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 2뎁스 댓글 목록의 테스트 데이터 삽입 시에는 계층 구조까지 파악할 수 있게끔 작성이 되었는데 무한 뎁스 댓글의 테스트 데이터 삽입은 계층 구조로 생성하지 않으신 이유가 궁금합니다!

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

Kotlin data class 엔티티에서 copy로 수정 후 save하는 이유가 있을까요?

해결됨

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

data class로 엔티티를 정의해서 copy로 변경 후 save하는 방식을 사용하셨는데, 일반적으로는 JPA의 더티 체킹을 이용해 변경 감지를 활용하는 경우가 많습니다. 혹시 copy 방식을 사용하신 게 의도하신 설계 방향일까요?

  • kotlin
  • mysql
  • mongodb
  • kafka
  • redis
심재경 댓글 2 좋아요 0 조회수 129

scoring 함수 음수값

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

5분 30초부터 나오는 내용인데 선생님, 그럼 scoring 함수로 회귀 평가를 하면 반환하는 값은 -1이 곱해져서 음수로 반환되는 건가요? 그래서 이 값을 scoring 함수가 자동 평가한다고 되어 있는데 그럼 어떤 평가 결과가 좋은지를 나타내는 함수가 또 있나요?

  • python
  • 머신러닝
  • 통계
무드링 댓글 2 좋아요 0 조회수 100

for 문에 sort 함수 를 사용하면

미해결

코딩테스트 [ ALL IN ONE ]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 수업 잘 듣고 있습니다. sort 함수 관련해서요. sort 함수가 nlog(n)의 시간 복잡도를 가지면 n번 반복하는 for문 아래에 sort 함수가 들어가면 n^2log(n)이 되는게 맞을까요?

  • python
  • 코딩-테스트
  • 알고리즘
sch629 댓글 2 좋아요 1 조회수 132

개념 이해와 진도 빼기

해결됨

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

문제를 풀기 위한 간단한 개념 이해로 빠르게 다음 강의로 넘어가야 할지, 복습을 마치고 진도를 나갈지 고민하고 있습니다. 자료구조(스택)를 직접 만들면서 자꾸 링크드 리스트 개념이 헷갈리고 있습니다. 문제 풀이는 파이썬의 메소드를 통해서나, 반복문을 통해서 해주시고 계셔서 궁극적으로 코딩 테스트 통과를 위해서 빠르게 진도를 넘기는게 중요할까요?

  • python
  • 코딩-테스트
  • 알고리즘
  • data-structure
rinaeshin 댓글 2 좋아요 0 조회수 114

수업 외 개발 환경 질문

해결됨

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 5-4 어떤 알고리즘을 학습하고 계신가요? 카카오 코테 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 안녕하세요 스타트업에서 인턴으로 근무하고 있는데요 실제 인공지능 개발자들의 개발 환경 중에 mac os를 많이 사용하나요? window os를 많이 사용하나요? 곧 회사 컴퓨터가 바뀔수도 있을 것 같아서 여쭤봅니다

  • python
  • 코딩-테스트
  • 알고리즘
  • data-structure
darknight 댓글 2 좋아요 0 조회수 66

OpenCV 관련 질문드립니다.

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

안녕하세요. OpenCV관련 질문이 있습니다. 로컬 컴퓨터에서 OpenCV를 사용해서 학습을 하려고 합니다. CoLab이나 kaggle과 같은 GPU환경이 아니어도 학습을 할 수 있을까요? 파이썬이 아닌 C# 또는 Java로도 진행할 수 있을까요? 대부분의 OpenCV 관련 강의는 파이썬으로 진행되어서 다른 언어로 진행하면 문제가 발생하진 않을까 고민 중입니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • tensorflow
  • 컴퓨터-비전
경진아빠 댓글 2 좋아요 0 조회수 108

Expo 강의 질문 (preview build?)

미해결

React Native with Expo: 제로초에게 제대로 배우기

혹시 ios나 android 네이티브 빌드해서 연동하는 방법도 해당 강의에서 진행하나요? 현재 25강을 듣고 있긴 한데... 들으면 들을수록 네이티브쪽도 건들어야하는 것 같아서 질문드립니다! 혹시나 해당 강의가 포함되어있으면 몇 강인지 말씀주실 수 있으신가요? 또... 스위프트, 코틀린 말고 자바나 오브젝티브씨도 같이 알아야하나요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
0S 댓글 2 좋아요 0 조회수 80

게시글 정보와 게시글 조회수 동시에 필요한 API 조회 질문

해결됨

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

현재처럼 서비스 구조가 거의 테이블 단위로 DB와 API 서비스가 분리될 때, 이런 구조에서 화면에서 리스트 형태로 두 도메인 데이터를 함께 조회해야 하는 경우가 있을 것 같습니다. 예를 들자면 게시글과 게시글 조회 수를 함께 보여주는 리스트 API가 필요한 상황에서, 단건 조회라면 프론트에서 별도로 API를 호출해도 괜찮을 것 같은데, 페이징 처리나 리스트 형태로 여러 데이터를 묶어서 조회해야 할 때, 실무에서는 보통 한 서비스에서 다른 서비스를 RestClient(Feign 등) 로 호출해서 데이터를 합치는 방식으로 처리하는지, 아니면, 같은 도메인 서비스로 묶어버린다던지 아니면 프론트엔드에서 각각의 API를 호출한 뒤 병합하는 방식으로 처리하는지 궁금합니다. 실제 현업에서는 이런 경우 어떤 접근 방식을 주로 사용하나요?

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

데이터 검증 방법 질문입니다

미해결

김영한의 실전 데이터베이스 - 기본편

1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) CHECK 제약조건을 최후의 방어선으로 활용한다고 말씀해주셨는데 제약 조건 이외에도 DBMS 에서 별도로 제공해주는 데이터 검증 방법이 존재하나요?그리고 실무에서는 이런 기능들을 제약조건과 어떻게 활용하는지 궁금합니다.

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
승장 댓글 1 좋아요 0 조회수 73

정말 별 거 아니긴 한데요

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

6. SQL - 데이터 가공, 8페이지 LENGTH() 예시 부분 오탈자도 아니고 정상적으로 실행되는 거 알지만 다른 쿼리문들은 알리아스가 대문자인데 여기만 소문자라서 제보합니다. 잘 보고 있습니다 ㅎㅎ 좋은 강의 감사합니다.

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
헝헹행 댓글 2 좋아요 0 조회수 174

실제 실무에서도 이런식으로 쿼리를 작성하는지 궁금합니다!

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 향로님의 추석 챌리지에서 우연히 제목을 보고 바로 구매했는데 아직 완강하지는 못했지만 정말 좋은 강의 같습니다! 선배 개발자님이 개발하시는 느낌으로 보고있습니다! ㅎㅎ 궁금한 점은 혹시 실무에서도 이런식으로 서브쿼리를 이용해서 대규모 데이터에 대해서 처리를 하는지가 궁금해져서 질문 남겨봅니다!

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

Path Enumeration 방식 적용 후 redis 적용 방법 관련 질문

해결됨

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

안녕하세요 강사님. 강의에서 Path Enumeration 방식을 활용해 데이터베이스 조회 성능을 최적화하는 방법을 매우 유익하게 배웠습니다. 실제 대규모 서비스 환경에서 이 조회 결과를 Redis로 캐싱하려고 할 때, 캐시를 저장하는 자료구조 선택에 대해 강사님의 의견을 듣고 싶습니다. 현재는 Path를 기반으로 DB에서 계층 구조를 유지하며 정렬된 댓글 목록을 조회하고 있습니다. 이 결과를 Redis에 저장하는 방법으로 아래 두 가지를 고려하고 있습니다. 1. List 구조 (LRANGE) 장점: DB에서 조회한 정렬 순서를 그대로 Redis에 저장할 수 있어, 조회 시 한 번에 가져올 수 있습니다. 고민: CUD(특히 중간 삽입) 발생 시 전체 List를 삭제하고 DB에서 다시 조회해 재저장해야 하므로 비효율적일 수 있습니다. 2. Sorted Set 구조 (ZADD) 장점: 각 댓글을 멤버로 저장하고 Path 값이나 정렬 기준을 score로 부여하면, CUD 발생 시 해당 멤버만 ADD/REMOVE로 처리할 수 있어 갱신이 효율적입니다. 고민: Path 기반의 정렬 값을 Redis의 score로 매핑하는 과정이 다소 복잡합니다. 이처럼 캐싱 로직의 구현 복잡도(Sorted Set)와 갱신 효율성(List의 TTL 전략) 사이의 균형을 고려할 때, 강사님께서는 무한 depth 댓글 구조를 캐싱할 때 어떤 Redis 자료구조가 더 적합하다고 생각하시는지 궁금합니다. 감사합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Minyoung Park 댓글 1 좋아요 0 조회수 83

리액트 개발자 도구 현업 사용 빈도

미해결

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요, 현재 Vue 2.0을 사용하고 있으며, React로 이직을 하고자 해당 강사님의 강의를 수강하고있습니다. 혹시 현업에서도 해당 도구를 많이 사용하는지 빈도가 궁금합니다. Vue를 사용하면서는 그러지아니하다보니 이것을 알고있는게 좋은지 파악이 안된다보니 쌩뚱한 질문을 드려 죄송합니다.

  • javascript
  • react
  • node.js
  • 카카오공채-개발
임스헝 댓글 2 좋아요 0 조회수 86

그룹별 개수 세기 질문

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

groupby() 로 단순히 “그룹마다 몇 개씩 있는지”만 보고 싶을 때는 count() 말고 size() 도 있던데, 두 함수의 차이가 뭔가요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
민재 댓글 2 좋아요 0 조회수 75

사진 촬영 후 갤러리 저장 시 권한 문제

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요, 제로초님! 강의 잘 듣고 있습니다. 다름이 아니라 ImagePicker 로 카메라 사진 촬영 후 MediaLibrary 를 사용해서 갤러리에 저장할 때, 다음과 같은 에러가 발생합니다. 확인해보니 AUDIO 권한이 선언되지 않았다고 하는데, 아래와 같이 app.json 의 plugin 에 권한을 추가해도 동일한 에러가 발생합니다. { "expo": { // ... "plugins": [ // ... [ "expo-media-library", { "photosPermission": "Allow $(PRODUCT_NAME) to access your photos.", "savePhotosPermission": "Allow $(PRODUCT_NAME) to save photos.", "isAccessMediaLocationEnabled": true, "granularPermissions": ["audio", "photo"] } ] ], // ... } } 제로초님이 올려주신 코드를 그대로 복사 & 붙여넣기 해봐도 같은 문제가 발생하는데, 혹시 제가 놓친 부분이 있을까요...? 강의에서 다룬 부분의 코드와 package.json 첨부하겠습니다. import { FontAwesome, Ionicons } from '@expo/vector-icons'; import * as ImagePicker from 'expo-image-picker'; import * as Location from 'expo-location'; import * as MediaLibrary from 'expo-media-library'; import { useRouter } from 'expo-router'; import React, { useState } from 'react'; import { Alert, FlatList, Image, Linking, Pressable, StyleSheet, Text, TextInput, TouchableOpacity, View, } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; // ... export default function Modal() { // ... const canAddThread = (threads.at(-1)?.text.trim().length ?? 0) > 0 || (threads.at(-1)?.imageUris.length ?? 0) > 0; const canPost = threads.every( thread => thread.text.trim().length > 0 || thread.imageUris.length > 0, ); const removeThread = (id: string) => { setThreads(prevThreads => prevThreads.filter(thread => thread.id !== id), ); }; const pickImage = async (id: string) => { let { status } = await ImagePicker.requestMediaLibraryPermissionsAsync(); if (status !== 'granted') { Alert.alert( 'Permission not granted', 'Please grant camera roll permission to use this feature', [ { text: 'Open settings', onPress: () => { Linking.openSettings(); }, }, { text: 'Cancel', }, ], ); return; } let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ['images', 'livePhotos', 'videos'], allowsMultipleSelection: true, selectionLimit: 5, }); console.log('image result:', result); if (result.canceled) return; setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.concat( result.assets?.map(asset => asset.uri) ?? [], ), } : thread, ), ); }; const takePhoto = async (id: string) => { let { status } = await ImagePicker.requestCameraPermissionsAsync(); if (status !== 'granted') { Alert.alert( 'Permission not granted', 'Please grant camera permission to use this feature', [ { text: 'Open settings', onPress: () => { Linking.openSettings(); }, }, { text: 'Cancel', }, ], ); return; } let result = await ImagePicker.launchCameraAsync({ mediaTypes: ['images', 'livePhotos', 'videos'], allowsMultipleSelection: true, selectionLimit: 5, }); console.log('camera result:', result); // MediaLibrary 권한 요청 및 사진 저장 status = (await MediaLibrary.requestPermissionsAsync()).status; if (status === 'granted' && result.assets?.[0].uri) { await MediaLibrary.saveToLibraryAsync(result.assets[0].uri); } if (result.canceled) return; setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.concat( result.assets?.map(asset => asset.uri) ?? [], ), } : thread, ), ); }; const removeImageFromThread = (id: string, uriToRemove: string) => { setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.filter( uri => uri !== uriToRemove, ), } : thread, ), ); }; // ... } { "name": "expo-threads-clone", "main": "expo-router/entry", "version": "1.0.0", "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "lint": "expo lint" }, "dependencies": { "@expo/vector-icons": "^15.0.2", "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/elements": "^2.6.3", "@react-navigation/native": "^7.1.8", "expo": "~54.0.12", "expo-blur": "~15.0.7", "expo-constants": "~18.0.9", "expo-dev-client": "~6.0.13", "expo-font": "~14.0.8", "expo-haptics": "~15.0.7", "expo-image": "~3.0.8", "expo-image-picker": "~17.0.8", "expo-linking": "~8.0.8", "expo-location": "~19.0.7", "expo-media-library": "~18.2.0", "expo-router": "~6.0.10", "expo-splash-screen": "~31.0.10", "expo-status-bar": "~3.0.8", "expo-symbols": "~1.0.7", "expo-system-ui": "~6.0.7", "expo-web-browser": "~15.0.8", "react": "19.1.0", "react-dom": "19.1.0", "react-native": "0.81.4", "react-native-gesture-handler": "~2.28.0", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", "react-native-web": "~0.21.0", "react-native-worklets": "0.5.1" }, "devDependencies": { "@types/react": "~19.1.0", "typescript": "~5.9.2", "eslint": "^9.25.0", "eslint-config-expo": "~10.0.0" }, "private": true }

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
Sckroll 댓글 1 좋아요 0 조회수 124

실전 2편에서는 어떤 것들을 준비 중인지 궁금합니다

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요 강사님 강의 너무 잘 듣고 있습니다! 아직 많은 DB설계를 해보진 않아서 알려주시는 개념들이 차곡차곡 잘 정립되는 것 같아 도움이 많이 되고 있습니다. 실제 조금 더 복잡한 프로젝트들에서의 DB 설계, 성능이나 쿼리들도 궁금한데 혹시 앞으로 이에 관한 내용들도 강의하실 예정에 있으신지 궁금합니다. 또 실전 2편이 기다려지는데 어떤 것들을 준비 중에 있는지 궁금합니다!

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
jsg998877 댓글 2 좋아요 0 조회수 79

이해하기 쉬운 SQL 코드 작성 배울 수 있는 자료 문의

미해결

김영한의 실전 데이터베이스 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] > ALL()이나 > ANY() 대신 MAX, MIN 집계 함수를 사용하는 방식이 더 이해가 잘 된다고 말씀해주셨는데요, 저도 그게 직관적으로 느껴졌습니다. 😊 혹시 이런 best practice를 배울 수 있는 자료가 있을까요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
Seoin 댓글 1 좋아요 0 조회수 84

PK 타입에 관한 문의

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

강의를 너무 잘 듣고 있습니다. PK 타입과 관련되어 문득 궁금한 점이 생겨 문의 드립니다. 혹시 대규모 시스템에서 UUID를 PK를 사용할때 실무에서 고민하셨던 팁이 있으신지 궁금합니다. 보안성이나 마이그레이션 가능성이 있는 테이블들에 부분적으로 UUID를 적용해 보았으나, 대규모 환경에서는 어떤 설계 팁이 있을지 궁금하네요. 감사합니다^^ * 이건 질문은 아니나 사소한 오타 제보입니다. 수업 자료중 1-A. 윈도우 - MySQL 설치 안내 파일의 4P 맨 아래 ' mysql-installer-community-8.0.x.dmg` 로 되어 있습니다. 참고하시면 좋을 것 같습니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
Ju-Ho Yoon 댓글 1 좋아요 1 조회수 79

락 오래 점유 시 장애 발생 가능성 질문

해결됨

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

9:55 쯤에 락을 오래 점유하면 발생하는 문제는 치명적이고 다양하다. 리소스 고갈 등으로 인해 장애가 발생할 수 있는 것이다. 지식공유자님께서는 오래 점유하는 상황에서 겪으셨던 문제가 있었나요? 좋아요라는 게, 네트워크 문제가 아닌 이상 빠르게 끝날 처리인데, 혹시 좋아요 말고도 (다른) 쓰기 상태에서 락을 오래 점유하고 있을 때 어떤 문제를 겪으셨는지, 어떻게 해결하셨는지 러프하게라도 말씀해 주시면 감사드리겠습니다!! 감이 잘 안 와서 궁금해서 질문드립니다.

  • mysql
  • 동시성
Bruce Han 댓글 2 좋아요 0 조회수 59

인기 태그

인프런 TOP Writers

주간 인기글