묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! GitHub Actions으로 CI/CD 시작하기
자료가 깨진 것 같습니다.
자료를 다운받았는데, 압축 파일 안에 아무것도 뜨지 않습니다.확인해주시고 자료를 새롭게 업로드 해주시면 감사하겠습니다
-
해결됨[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>
책과 github 코드가 다릅니다 p130
책에서는 128pif TYPE_CHECKING: from appserver.apps.calendar.models import Calendar이렇게 appserver 부터 시작하니다 130페이지 하단에 보면https://gilbut.co/c/25069573YP커밋 참조하라고 되어있는데요깃헙에서는 if TYPE_CHECKING: from apps.calendar.models import Calendar여기는 apps부터 시작합니다. 초보에게는 이런거 하나하나가 어렵네요어떤게 맞는 건지 궁금합니다.
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
캐시 데이터 다루기 - 낙관적 업데이트(2)에서 질문
createTodo의 리턴값을 활용하면서 Todo를 생성했을 때, 캐시 무효화를 해서 데이터가 많은 경우 서버에 부하를 주는 코드를 개선했었었는데, 낙관적 업데이트2에서 데이터의 무결성을 위해 onSettled에서 queryClient.invalidateQueries를 호출했는데 여기서는 괜찮은 걸까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서 AI)
128. 스킬..아쉽습니다.
mcp 사용 해서 사이트 작성 하는 것은 어렵지도 않고..찾아보면 자료도 많습니다.저 또한 평상 시 MCP 는 잘 쓰고 있는데 스킬은 이해가 안되서 유튜브 영상 이나 블로그 등 자료를 많이 찾아 봅니다.그래도 이해가 안되더군요..지금 이 영상도..다른 영상이나 블로그 등에서 본 내용과 별반 다른 내용은 없었던 것 같습니다.그래서..- skill 이라는 것을 어떻게 작성 하는 건가요?- skill 이라는 것을 어떤 내용을 작성 하는 건가요?지금 이 영상도..클로드코드 사이트에 있는 예시를 사용 해서 설명 하는데..이게..실제 프로젝트에 적용 할 수 있다고 보시나요?이런 거 말고..실제로 사이트 제작 시 스킬을 이용 해서 작성한다던가 ..하는...실제로 사용할 수 있는 것을 예시라도 보여 주셔야죠..단순히 클로드코드 사이트에 있는 예시 하나 보여준다고 해서..크게 도움이 될 것 같지는 않습니다.
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서 AI)
claude code cli 내 한글 조합 중 입력 외부 표기
사진처럼 안녕 다음 "아"라는 글자를 쓰고 있는데, 자음 모음을 모두 조합하는 과정에선 저렇게 실선 바깥에서 조합이 되고, 다음 글자 입력이 될 때 이전 조합이 완료되었다 판단하며 다시 실선 내에 표시되고 그런 현상이 있습니다... iTerms를 사용해도, cursor 에디터 내 터미널을 사용해도 동일 증상이 재현됩니다...
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
파라미터 구분이 안되는지..?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요. 영한님항상 강의 잘 듣고 있습니다.듣다가 궁금한 점이 생겨서 질문 남깁니다. 람다는 SAM에만 할당할 수 있다고 하셨는데그 이유가 매서드가 여러개면 어디에 할당할 수 있을 지 알 수 없다고 말씀 하신 것까지는 이해했습니다. 이미 테스트를 통해 안되는 것은 확인했지만 인터페이스에 파라미터의 구성이나 갯수가 다른 함수가 정의될 경우에도 내부적으로 왜 안되는 지 궁금합니다..!public interface NotSamInterface { void run(); void go(int a); } 이런 경우에는 람다식도 달라지게 될텐데 왜 매핑이 어려운 걸까요..? 감사합니다.
-
해결됨실전! 데이터베이스 완전정복 [설계편]
인덱스 설계 시 컬럼 선택 기준
안녕하세요. 강사님의 좋은 자료 덕분에 장고 강의에 이어 데이터베이스 설계 강의까지 함께하고 있는 수강생 입니다. 강의를 듣던 중, "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가 안되어 무한 루프를 돌고 있네요. 왜그럴까요?