묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 데이터베이스 완전정복 [설계편]
인덱스 설계 시 컬럼 선택 기준
안녕하세요. 강사님의 좋은 자료 덕분에 장고 강의에 이어 데이터베이스 설계 강의까지 함께하고 있는 수강생 입니다. 강의를 듣던 중, "22.선택도 / 3:51" 내용을 보고 의문점이 생겨 질문 남깁니다. 배경선택도 값이 낮으면, 조건에 맞는 행이 적다 → 인덱스 효율이 증가한다.선택도 값이 높으면, 조건에 맞는 행이 많다 → 인덱스 효율이 떨어진다.라는 설명을 듣고, "중복이 적을수록 인덱스를 생성하면 더 효율적이겠구나" 라는 정보를 얻었습니다. 그 후, "어떤 컬럼을 선택해야 할까?" 장표에는 그중에서 선택성이 높은 컬럼 위주로 인덱스 생성이 효율적이라고 설명과 더불어 자료를 보여주셔서 의문이 생겼습니다. 질문Q. 선택성이 높으면 조건에 맞는 행이 많아 중복되는 행을 다시 스캔하여 필터링 하기 때문에 인덱스 사용에 비효율적이지 않을까요? 그럼 나머지 강의를 일단 수강하며 배움에 즐거움을 만끽하러 가보겠습니다. 감사합니다.
-
미해결
동적 외부 API 의존 구조에서 CircuitBreaker 적용 기준에 대한 질문
현재 외부 API를 호출해서 데이터를 서빙하는 BE를 개발중 입니다.(MSA는 아니고, 단일 BE에서 외부 클러스터 API에 의존하는 구조 입니다.) 공급자(외부 클러스터)를 클라이언트(FE)에서 동적으로 추가/삭제할 수 있고, 공급자마다 endpoint(URL)이 서로 다른 구조 입니다. 현재 아키텍처는BE -> HAProxy -> 외부 Cluster 형태로 구성되어 있고, HAProxy 앞단에서 기본적인 네트워크 장애 처리는 되고 있습니다. 또한 공급자 데이터는 별도의 RDB 테이블로 관리하고, 이를 Redis에 동기화하여 런타임에 조회해서 사용하는 구조입니다.이런 상황에서 고민되는 부분은 다음과 같습니다.공급자 단위로 장애 격리를 하기 위해 CircuitBreaker를 적용하는 것이 적절한 선택인지만약 적용한다면, 공급자가 런타임에 추가/삭제 되는 구조라서 @CircuitBreaker 같은 정적 방식보다는 Resilience4j의 Registry 방식으로 리소스를 동적으로 관리하는 게 맞는지, 인스턴스 별 서킷의 상태를 공유를 해야하는지..비슷한 구조를 운영해보신 경험이 있다면, CircuitBreaker를 실제로 두는지 / 두지 않는다면 어떤 기준으로 판단하셨는지 의견을 듣고 싶습니다.
-
미해결2시간 만에 AI로 애드센스 수익형 웹사이트 만들기
CloudFlare(p.40)부분에서 진행이 안되고 있습니다.
강사님, 안녕하세요. 전자책 40page와 같이 이렇게 지정 후 생성 및 배포 버튼을 클릭하면 아래와 같이 오류 메시지가 발생합니다.2026-01-03T13:49:04.695Z Initializing build environment... 2026-01-03T13:49:05.869Z Success: Finished initializing build environment 2026-01-03T13:49:06.165Z Cloning repository... 2026-01-03T13:49:07.333Z No build output detected to cache. Skipping. 2026-01-03T13:49:07.334Z No dependencies detected to cache. Skipping. 2026-01-03T13:49:07.335Z Detected the following tools from environment: 2026-01-03T13:49:07.435Z Executing user build command: npx opennextjs-cloudflare build 2026-01-03T13:49:08.435Z npm error code E404 2026-01-03T13:49:08.435Z npm error 404 Not Found - GET https://registry.npmjs.org/opennextjs-cloudflare - Not found 2026-01-03T13:49:08.435Z npm error 404 2026-01-03T13:49:08.435Z npm error 404 'opennextjs-cloudflare@*' is not in this registry. 2026-01-03T13:49:08.435Z npm error 404 2026-01-03T13:49:08.435Z npm error 404 Note that you can also install from a 2026-01-03T13:49:08.435Z npm error 404 tarball, folder, http url, or git url. 2026-01-03T13:49:08.436Z npm error A complete log of this run can be found in: /opt/buildhome/.npm/_logs/2026-01-03T13_49_07_756Z-debug-0.log 2026-01-03T13:49:08.483Z Failed: error occurred while running build command혹시 저 상황에서 진행하려면 어떻게 해야하는지 궁금합니다. 감사합니다. 참고 - node, npm 버전은 아래와 같습니다. 혹시 몰라서 첨부합니다.
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
Tailwind 버전 확인
Tailwind 버전 확인 tailwnd 버전차이 인지요 ? (AI 질문 발췌: text-5xl은 Tailwind v4에서도 정상적으로 지원되는 클래스입니다.)스타일이 적용 될 수 있는 설정 방법이 있을까요? 강의내용에 tailwindcss 는 v3.x 이면v3 버전으로 재 설치를 해야 빠를까요?
-
미해결홍정모의 따라하며 배우는 C언어
소스파일안에 여러 파일
솔루션 파일안에 여러 프로젝트 파일을 만들듯이 프로젝트 파일안에 여러 소스파일을 만들어서 코딩을 진행해도 문제가 없는지 궁금합니다
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
ListView 초기 실행 안됩니다.
강의대로 실행하면 검은 앱 화면만 나옵니다.몇번을 반복해서 타이핑해도 같은 증상이 나옵니다. 현재 저는 아래 버전 입니다.Android Studio Otter 2 Feature Drop | 2025.2.2 Patch 1Build #AI-252.27397.103.2522.14617522, built on December 19, 2025Runtime version: 21.0.8+-14196175-b1038.72 amd64VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.Toolkit: sun.awt.windows.WToolkitWindows 11.0GC: G1 Young Generation, G1 Concurrent GC, G1 Old GenerationMemory: 2048MCores: 8Registry: ide.experimental.ui=trueNon-Bundled Plugins: com.levinzonr.arch.jetpackcompose.plugin (1.6.0) Dart (500.0.0) io.flutter (88.2.0) 동영상이 너무 낮고, 등록된 소스하고도 차이가 나서 비교하면서 하기가 참 어렵네요 ㅜ..ㅜ미묘하게 다른게 있는것 같은데 기초를 따라하기가 어려워요. --activity_main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ListViewandroid:id="@+id/mainListview"android:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout>--ListViewAdapter.ktpackage com.chpang.listview_expimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.BaseAdapterclass ListViewAdapter(val List: MutableList<String>) : BaseAdapter(){override fun getCount(): Int {return List.size}override fun getItem(position: Int): Any {return List[position]}override fun getItemId(position: Int): Long {return position.toLong()}override fun getView(position: Int, convertView: View?, parent: ViewGroup? ): View {var converView =convertViewif (converView==null) {converView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item, parent, false)}return converView!!}}--listveiw_item.xml<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="80dp"><TextViewandroid:id="@+id/listviewItem"android:textSize="30sp"android:layout_margin="5dp"android:text="리스트뷰 아이템"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>--MainActivity.ktpackage com.chpang.listview_expimport android.os.Bundleimport android.widget.ListViewimport androidx.activity.enableEdgeToEdgeimport androidx.appcompat.app.AppCompatActivityimport androidx.core.view.ViewCompatimport androidx.core.view.WindowInsetsCompatclass MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val list_item = mutableListOf<String>()list_item.add("A")list_item.add("B")list_item.add("C")val listview =findViewById<ListView>(R.id.mainListview)val listAdapter = ListViewAdapter(list_item)listview.adapter = listAdapter}}
-
해결됨한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
onError 콜백에 파라미터 없음에도 추가하신 이유가 무엇인가요?
인증에러처리하기1 의 10:29 에서 if (callbacks?.onError) callbacks.onError(errror);sign-in-page.tsx 에서 넘겨준 onError에는 파라미터가 없는데도 넘겨준 이유가 어떤건지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
영상이 안 나옵니다 ㅠㅠ
영상은 안 보이고 소리만 재생됩니다
-
미해결홍정모의 따라하며 배우는 C언어
F5와 F7의 차이
C언어에서 코드를 빌드하는 단축키가 F5, 컴파일하여 결과물을 볼 수 있는 단축키가 F7이정도로 이해하였습니다. 그렇다면 항상 F5를 먼저해야하는 이유가 있나요?F7으로도 결과물을 가져올 수 잇는데 F5를 필수로 사용해야하는건지 궁금합니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
ReentrantLock 동작 원리에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ReentrantLock에 대한 순서 보장에 대해 궁금증이 생겨 질문을 남깁니다.producerCond에서 대기하고 있던 스레드가 producerCond.signal() 호출로 깨어났을 때 ReentrantLock의 lock을 얻기 위한 대기 큐로 들어가는 것으로 알고 있습니다.근데 이때 signal() 호출로 깨어난 A 스레드가 lock 대기 큐로 들어갔는데 앞에 이미 스레드 B가 있어서 B가 ReentrantLock의 lock을 얻어버렸다고 가정했을 때 A는 다시 producerCond.await() 호출로 producerCond 스레드 대기 큐에 들어가면 맨 뒤로 이동할 것 같습니다. 근데 저는 B는 await()에 넣고 A를 실행하는 순서로 순서를 보장하고 싶은데 이것도 더 세밀하게 구현을 할 수 있는 것일까요?? 제가 질문에 대한 설명을 잘 못해서.. 혹시 이해가 되신다면.. 답변해주신다면 감사하겠습니다!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 이미 다른 분이 비슷한 질문을 하신 것 같지만, 해당 답변에서 궁금증이 잘 해결되지 않아 다시 질문 드립니다. 강의에서 [14:04] 즈음에 return super.onError(err, handler); 코드를 지우고 나서,[17:44] 즈음에서 그 자리에 다시 return handler.reject(e); 코드를 추가하셨는데, 이렇게 하신 이유가 궁금합니다.저는 그냥 super.onError 함수를 그대로 두어도 될 것 같은 느낌이 듭니다. super.onError 함수랑 handler.reject 함수가 어떤 차이를 가지는 걸까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의자료는 어디에서?
강의자료 pdf는 어디에서 볼 수 있을까요???
-
해결됨죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
@StepScope 또는 @JobScope와 JobOperator
킬구형아래는 step에서 ItemWriter의 jobParameter자리에 null을 넣는 방식으로 처리한거야. @Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(),jobParameters) } @Bean fun sampleJob(): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep()) .build() @Bean fun sampleStep(): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader()) .writer(sampleWriter(null, null)) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite }위 코드를 빈 주입방식으로 변경하는 방법을 모르겠어.빈 주입 방식으로 변경하면 아래처럼 되잖아?이때 jobOpterator로 잡을 호출하는 부분까지 파라미터가 올라와버리는데 이걸 어떻게 해야할지 모르겠단 말이야~~!@Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(**여기를 어떻게 처리하지?**),jobParameters) } @Bean fun sampleJob( sampleStep: Step ): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep) .build() @Bean fun sampleStep( sampleReader: ItemReader<String>, sampleWriter: ItemWriter<String> ): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader) .writer(sampleWriter) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite }새해 복 많이 받아 형~
-
해결됨원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)
Recraft에게 AI 이미지 생성 요청 구글 시트 업데이트 실패
-Recraft에게 AI 이미지 생성 요청하기에서 마지막 sheet에서 Update 수행하는 구간에서, Automatically로 동일하게 하고 OUTPUT도 동일하게 나오는데, 실제 구글 시트에는 데이터 udpate가 안되어 무한 루프를 돌고 있네요. 왜그럴까요?
-
해결됨스프링 핵심 원리 - 기본편
프로토타입 빈, 직접 destroy 호출 안 할 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 스콥이 프로토타입이면, 초기화 까지만 스프링 빈에서 관리를 하고 이후에는 관리를 하지 않아 후반부에서도 보면 직접 instance.destroy()를 호출하지 않으면 관리 대상이 아니라 종료를 해주지 않고 있습니다. 물론 스콥 주기의 빈을 많이 사용하진 않겠지만, 정말 많은 스콥 생명주기의 빈을 생성하고 직접 종료를 해주지 않으면 메모리를 계속 잡아먹고 있는걸까요?
-
미해결얄코의 가장 쉬운 리액트(React)
화면표시 잘못된것같아요! 화면오류?
🛑 질문은 이곳이 아닌, 노션 페이지에 해주세요!!질문 방법 보기: https://youtu.be/2OQoqcQMxhA노션 페이지 링크: https://yalco.notion.site/157ff6b3a35780918b5af38738e7758c?pvs=4 5:50 부분 화면 표시가 잘못된것같습니다.Color count: {colors.length} 인데 위에 const numbers = [1, 2, 3, 4, 5]; 로 표시되어져있어요.
-
미해결한번에 똑바로 배우는 AI 쇼츠 크리에이터 with 프리미어 프로
타임라인에 영상 넣어서 재생하면 소리는 나오고 화면이 녹색으로만 보입니다
영상파일을 옮길때 뜨는 메세지 입니다그래픽4080 cpu7800c3d 메인보드 650토마호크램16x2 그래픽카드 업그레이드 했습니다 원인 좀 알려주세요
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서 AI)
/context 에서 Autocompact Buffer
수업 정말 유익하게 보고 있습니다. 감사드립니다. Mcp 설정들이 많아지다 보니 컨텍스트에서 기본적으로 작업 영역이 많이 줄어든 채로 새로운 세션이 시작하게 되네요. 제 claude code cli 의 /context 슬래쉬 명령에서는 아래 이미지에서처럼 항상 Autocompact Buffer가 45k를 차지하고 있는데 강의 화면에서는 이것이 보이지 않고 있어요. 어떤 차이 때문에 그런 걸까요? 저는 프로플랜을 사용하고 있습니다. 강의화면
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서 AI)
섹션 23 퀴즈가 활성화 되지 않습니다.
영상을 모두 봤는데, 퀴즈가 실행되지 않습니다.
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
align-items 정렬
매번 강의를 보면서 따라 하는데매번 같은 강의를 복습을 해도..흐음..css 파일 아무리 드려다 봐도... 정렬이 conter로 가질 않고 있습니다교안을 보고 학습을 하는데... 채크 사항 답변 부탁드립니다.