묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
STOMP 동작 과정 질문
강의에서 STOMP 동작 간 /app, /topic 요청을 동시에 보낸다고 하셨는데 그럼 app 경로 발행된 메세지는 broker를 통해서 topic 경로로 전달이 되고 맨 처음에 동시에 보낸 topic 요청도 broker를 통해서 전달이 되어서 broker에서 구독하고 있는 사용자들에게 메세지를 보내준다고 이해하면 되는 것일까요? /topic으로 2번 가는 것 처럼 느껴져서 약간의 혼동이 있었습니다!
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
무료 Apple ID로 실기기 테스트 가능한가요?
React Native 프로젝트를 실제 아이폰 기기에서 빌드하려고 하는데,아래와 같은 오류가 발생했습니다.error Signing for "AwesomeProject" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'AwesomeProject' from project 'AwesomeProject') error Failed to build ios project. "xcodebuild" exited with error code '65'. To debug build logs further, consider building your app with Xcode.app, by opening 'AwesomeProject.xcworkspace'. 이 경우, Apple Developer Program(유료 계정) 에 가입해야만실제 기기에서 앱을 빌드하고 테스트할 수 있는 건가요? 무료 Apple ID 계정으로는 실기기 테스트가 불가능한지 궁금합니다. ❗질문 작성시 꼭 참고해주세요에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. (에러 일부만 자르거나 일부만 복사하지말아주세요)
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
OutBox 패턴에 대한 질문입니다.
안녕하세요 ! 강의 잘 듣고 있습니다.최근 OutBox 패턴을 사용해보려고 시도중입니다 !CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다.ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다.여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다.어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리액트 개발자 도구 현업 사용 빈도
안녕하세요, 현재 Vue 2.0을 사용하고 있으며, React로 이직을 하고자 해당 강사님의 강의를 수강하고있습니다.혹시 현업에서도 해당 도구를 많이 사용하는지 빈도가 궁금합니다. Vue를 사용하면서는 그러지아니하다보니 이것을 알고있는게 좋은지 파악이 안된다보니 쌩뚱한 질문을 드려 죄송합니다.
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
kafka 컨슘은 실시간 인가요?
실시간 이라면 stream하고 어떻게 차이가 나는걸까요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
백엔드 MVC에서 View의 역할은 무엇인가요?
프론트엔드와 백엔드는 따로 나눠서 개발하는 경우가 많다고 알고 있습니다.이럴 때, NestJS는 직접 화면을 만들어서 보여주지 않고 프론트엔드에 데이터를 주기만 하면 되는 것으로 이해하고 있는데 그렇다면 백엔드 안에서 MVC 패턴을 적용할 때 화면의 역할을 하는 View 부분이 모호해지는 것 같습니다.해당 경우에 MVC를 백엔드에서 어떻게 주로 활용하게 되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
학습 질문
안녕하세요 선생님이번에 코딩 테스트 역량을 강화하고자 선생님 강의를 듣게되었습니다.강의를 듣으면서 궁금한점이 있어서 질문하게 되었습니다. 저는 삼성,카카오 보다 게임 업계쪽으로 취업하고자 하는데 이 강의 하나면 될까요? 아님 또 따로 공부해야하는 게 있나요? 기초도 어느정도 있다고 생각하고, 백준 플레, 프로그래머스 고득점 킷을 다수 문제를 풀었습니다.하지만 정작 코딩 테스트나 심화문제 등 여러 개념들이 섞인 문제만 보면 풀지를 못하겠습니다... 제가 모르는 개념이 있는걸까요? 아님 기초가 부족할걸까요? 무작정 문제를 풀어라고 하는데 제자리 걸음을 하는것 같아 답답합니다. 선생님이 제공하는 문제 말고도 다른 문제를 풀고자한다면 어디로 가면 풀면 좋을까요? 알고리즘 힌트 없이 랜덤으로 공부하고 싶습니다. (실전 처럼) 선생님 강의를 완강하면 바로 코딩테스트 응시하는데 무리가 없을까요?
-
미해결머신러닝 엔지니어 실무
ML 파이프라인과 배포 프로세스
실무에서 쿠베플로우 파이프라인을 구성할 때 모델 학습부터 프로덕션 배포까지 하나의 파이프라인으로 완전히 자동화하는 것이 일반적인가요? 아니면 학습 파이프라인과 배포는 별도로 관리하는 경우가 많은가요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
upstage 사용
4강 부터 upstage 관련해서 업데이트가 안된것 같네요 openai -> upstage로 바꾸는 방법이나 샘플 코드가 있으면 좋을것 같습니다. docs나 지피티 참고해가면서 바꾸고 있는데 굉장히 힘드네요
-
미해결김영한의 실전 자바 - 기본편
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의를 듣다가 궁금한 부분이 있어 질문 드립니다. this 와 super의 호출 순서는 왜 중요한가요?개념으로 이해하기에는 부모에 해당하는 super가 있어야 자식에 해당하는 this 를 호출할 수 있다고 생각하고 있습니다. top -down으로 이해하고 있는데 이것외에도 중요한 이유가 있을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
8강 도메인 모델과 DDD 내용에 대해 질문있습니다.
8강 도메인 모델과 DDD 에서코드의 내용이 도메인에도 반영이 되어야 할 때도 있다고 하셨는데 예시를 들어 주실 수 있을까요?
-
미해결눈떠보니 코딩테스트 전날
parseInt() vs Number()
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 듣다가 parseInt() 메서드를 종종 사용하시는데 Number() 생성자보다 parseInt() 메서드를 사용하는 특별한 이유가 있을까요? 가독성 때문에 사용하시는 것인지 성능이 더 좋아서 사용하시는 것인지 궁금합니다. 또한, 문자열을 숫자로 바꾸는 방법 중에 +연산자를 사용하는 방법도 종종 봤는데 해당 방법은 어떻게 생각하시는지 궁금합니다.const numberString = '05'; const stringToNumber = +numberString;
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
그룹별 개수 세기 질문
groupby()로 단순히 “그룹마다 몇 개씩 있는지”만 보고 싶을 때는 count() 말고 size()도 있던데, 두 함수의 차이가 뭔가요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
표준 예외와 커스텀 예외 사용 전략 질문
안녕하세요. 수업 내용과는 크게 관계가 없지만... 예외처리 관련 내용에 대한 질문을 드립니다. 스프링이 제공하는 표준 예외(IllegalArgumentException, IllegalStateException)와 비즈니스 로직을 표현하는 커스텀 예외(NotFoundUserException) 사이에서 표준 예외를 사용하는 경우와 커스텀 예외를 사용하는 경우에 대한 기준을 알 수 있을까요? 감사합니다.
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 웹해킹
제가 이해한게 맞는지 궁금합니다
1. 메타데이터 관련강사님께서MSSQL- sys MYSQL, Maria db, oracle - information_schema Sqlite - sqlite_master메타데이터를 보관하는 시스템 데이터베이스? 같은게 이렇게 있다고 알려주셨는데 그럼 sql injection을 시도해볼 때는 sys가 있는지 information_schema이 있는지 sqlite_master가 있는지 확인하고 어떤 데이터베이스를 사용하는지 알아봐야 하나요?2. sleep() SELECT FROM user WHERE username = 'admin' AND length(password)= 10 AND sleep(5)처럼 사용하는 게 다른 언어 논리식처럼 a and b에서 a가 거짓이면 b는 평가 자체도 하지않는 단락 평가를 이용한 것 맞나요? 강의 잘 보고있습니다. 감사합니다
-
미해결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 }
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
실전 2편에서는 어떤 것들을 준비 중인지 궁금합니다
안녕하세요 강사님 강의 너무 잘 듣고 있습니다! 아직 많은 DB설계를 해보진 않아서 알려주시는 개념들이 차곡차곡 잘 정립되는 것 같아 도움이 많이 되고 있습니다.실제 조금 더 복잡한 프로젝트들에서의 DB 설계, 성능이나 쿼리들도 궁금한데 혹시 앞으로 이에 관한 내용들도 강의하실 예정에 있으신지 궁금합니다. 또 실전 2편이 기다려지는데 어떤 것들을 준비 중에 있는지 궁금합니다!
-
미해결김영한의 실전 데이터베이스 - 기본편
이해하기 쉬운 SQL 코드 작성 배울 수 있는 자료 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]> ALL()이나 > ANY() 대신 MAX, MIN 집계 함수를 사용하는 방식이 더 이해가 잘 된다고 말씀해주셨는데요, 저도 그게 직관적으로 느껴졌습니다. 😊혹시 이런 best practice를 배울 수 있는 자료가 있을까요?
-
미해결개발자를 위한 쉬운 도커
컨테이너를 활용한 개발환경 통일에 관하여
인텔리제이 Ultimate 라이센스가 있어서, 프론트엔드 작업(React)과 백엔드 작업(Spring)모두 인텔리제이에서 작업하는데요. 노드 버전을 이것저것 설치하면서 들었던 생각이 '개발환경도 컨테이너로 띄워서 하면 안되나?' 였습니다. 이 섹션을 통해 그 갈증을 해소한 것 같아요.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
도메인의 응집도와 모델 복잡도간 밸런스 고민
강의 너무 재미있게 듣고 있습니다.도메인이라는 개념에 대해서 고민하다가 궁금한 사항이 생겨서 질문드립니다. "도메인 모델이 비즈니스 규칙을 모두 내포하면 응집도는 높아지지만, 복잡도도 함께 커집니다. 이때 어디까지를 도메인 모델에 포함시키는 게 적절할까요?"