묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
2.스레드 생성과 실행 - 17P 그림 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 잘 수강하고 있습니다. 17P에 시간의 흐름으로 분석 이라는 그림이 있습니다.그런데, 마치 스레드 생성 이후에, start()를 통해 실행을 하는 것 처럼 그림이 그려져 있습니다. 'start() 호출 전 3. 호출 후' 라는 프린트가 중간에 끼어있으니 더 그런것 같은데. 제가 알기로 start() 명령어와 동시에 실제 스택이 생성되고 실행되는 것으로 알고 있습니다. 그렇다면 '1 start() 호출 전' 이 main 박스 맨 위로 가고, 스레드 생성이 호출 뒤로 가야 하는거 아닌가 싶습니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
component 등록과 사용
4분 53초쯤 app.component('BookComponent', BookComponent) 라고 등록을 하신건데 사용할 때는 왜 book-component 로 선언하시는건지 이해가 되지 않습니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 동시성 현업에서 사용예시가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예[질문 내용]안녕하새요 강사님 수업내용이 너무 알차서 정말 잘 듣고 있습니다 근데 하나 궁금한 점이 생겨서요!요즘 백엔드는 서버가 여러대인 환경이라 각 서버의 메모리가 공유되지 않아서 자바에서 서로 락을 걸어도 서로의 RAM이 다르기때문에 재고쪽 문제에서 생기는 좋아요 수라던가 재고 같은 문제는 자바 쪽 락보다는 DB의 낙관적락 또는 비관적 락으로 막아주는경우가 많다고 보게 되었는데 또 다른 예시로는 버튼을 따닥 해서 여러 요청이 들어오는 경우도 자바 스레드 제어보다는 DB에서 유니크 키로 막을수 있다고 생각이 드는데 그렇다면 현업에서 ConcurrentHashMap이나 Atomic, synchronized 같은 자바 동시성 기술은 구체적으로 어떤 상황에서 필수적으로 사용되나요?DB 부하를 줄이기 위래 또는 성능 최적화를 위해 멀티스레드를 어떻게 활용하는지도 궁금합니다 !
-
미해결AI 시대에 살아남기: Supabase로 백엔드 뚝딱!
todos 테이블, RLS, 트리거 생성 미션 질문드립니다
정답으로 보여주신 이미지에는 아래와 같이 FK가 설정되어있는 것 같았는데 맞을까요?profiles.user_id -> auth.users.id (CASCADE) todos.user_id -> auth.users.id (CASCADE) todos.user_id -> profiles.users.id (CASCADE)todos.user_id -> profiles.users.id를 잇는 FK는 왜 필요한거고, 어떤 의도로 생성하는것인지 궁금합니다
-
미해결스프링 핵심 원리 - 고급편
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
1) 실제 로직@Slf4j public class TrueComponent implements Component { @Override public String operation() { log.info("TrueComponent 가 실행되었습니다."); return "data"; } }2) 추상클래스@Slf4j public abstract class AbstractorDecorator implements Component { private Component component; public AbstractorDecorator(Component component) { this.component = component; } @Override public String operation() { log.info("AbstractorDecorator.operation() 실행"); String result = component.operation(); log.info("AbstractorDecorator.operation() 종료"); return result; } }2) 자식@Slf4j public class DecoratorTest1 extends AbstractorDecorator { public DecoratorTest1(Component component) { super(component); } @Override public String operation() { log.info("DecoratorTest1.operation() 실행"); super.operation(); log.info("DecoratorTest1.operation() 실행"); return "data"; } }3) 자식 @Slf4j public class DecoratorTest2 extends AbstractorDecorator { public DecoratorTest2(Component component) { super(component); } @Override public String operation() { log.info("DecoratorTest2.operation() 실행"); super.operation(); log.info("DecoratorTest2.operation() 실행"); return "data"; } }4) 테스트 코드@Slf4j public class DecoratorPatternTest2 { @Test void abstractDecorator() { Component trueComponent = new TrueComponent(); DecoratorTest2 decoratorTest2 = new DecoratorTest2(trueComponent); DecoratorTest1 decoratorTest1 = new DecoratorTest1(decoratorTest2); DecoratorPatternClinet decoratorPatternClinet = new DecoratorPatternClinet(decoratorTest1); decoratorPatternClinet.execute(); } }질문))) MessageDecorator, TimeDecorator 의 중복부분인private Component component; public AbstractorDecorator(Component component) { this.component = component; }해당 부분을 줄이기 위해서 추상메서드로 올렸는데추상메서드로 올리고 코드를 실행하면 추상메서드의 log.info("AbstractorDecorator.operation() 실행"); 이부분이 어쩔수 없이 중복으로 호출되는데, 코드를 줄이기 위해서 사용하기 때문이 중복으로 호출되는건 상관이 없는 건가요?
-
해결됨[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
텔레그램 대신 사용 가능한 것은?
pc 보안 상 텔레그램을 사용할 수 없습니다. 텔레그램 대신 사용해 볼만한 툴이 있을까요??
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)
안녕하세요 🙂[1. 질문 챕터] : 필수과정! Xilinx Vivado 2022.2 설치 (~..)[2. 질문 내용] : Vivado 2025.2 리눅스 설치 후 에러 발생 및 해결방법(에러 로그 : application-specific initialization failed: couldn't load file "libxv_commontasks.so": libtinfo.so.5: cannot open shared object file: No such file or directory) [3. 시도했던 내용, 그렇게 생각하는 이유] : sudo apt install libtinfo5: libtinfo5 패키지 구버전 호환 문제로 실행 에러 발생, 설치 후 에러 해결 AI 만세
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서AI)
스타터킷 제작 관련 질문합니다
안녕하세요 스타터킷 제작 강의 수강중에 이제 실습 중입니다.먼저 cot를 통한 클로드 코드와 웹 개발 스타터킷에 대해 공부하고 제 상황에 맞춘 킷을 개발하려고 기획을 짜고 있습니다 스택을 추천해달라고 하고 이후 다시 한 번 최신 공식문서 기반으로 버전 체크를 해봤습니다이 때 26년도 1월에 나온 next.js 최신 버전 16.1.6과 15중 일단 현재는 AI가 가장 잘 이해한다고 권장하는 15로 버전설치를 하였습니다최신으로 하는게 나을까요? 아니면 지금 선택이 맞는걸까요
-
미해결RPA - UiPath 개발 초급 과정
11-1 영상 재생이 되지 않습니다.
안녕하세요. 11-1 영상은 재생되지 않아 문의 드립니다. 우선 유투브 채널에서 듣도록 하겠습니다. 감사합니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
pointer-event:none;
10:57 부분에서, 설명하셨던 것처럼 .btn과 ul에 position: relative; 를 줘도 드래그가 잡히고, 저번 CSS 강의에서 알려주신 속성중에 pointer-events: none;을 .item:before 선택자에 주니까 한번에 해결이 되었어요! 알려주신것 문득문득 떠오르고 적용할때마다 너무 행복합니다!ㅎㅎ아래는 item:before 부분.item:before { content: ''; position: absolute; background-color: rgba(255, 255, 255, 0.267); width: 100%; height: 47%; left: 0; bottom: 0; transform: rotate(-10deg) scale(1.2); pointer-events: none; }
-
미해결2026 코딩테스트 올인원 [JAVA]
코테 사이트 네트워크 연결....
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요! 양질의 강의 덕분에 코딩 테스트 준비를 수월하게 할 수 있는 것 같습니다!다름이 아니라 코테 사이트 네트워크 문제가 지속적으로 발생해서 공부하는데 어려움이 있습니다..ㅠㅠ 확인 한 번만 부탁드립니다! 감사합니다
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
DataFrame groupby 사용관련 질문
7:45 에서 해당 코드대로 아래와 같이 작성했는데 TypeError가 발생하였습니다.grouped_by_city = df.groupby('City').mean() print("\nGrouped by City:") print(grouped_by_city)에러 원인을 찾아보니 groupby().mean()을 수행할 때 숫자가 아닌 컬럼이 함께 포함되었기 때문이라 아래와 같이 작성해야 된다고 합니다.data = { 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'Age': [25,30,35,40,45], 'City' : ['New York','San Francisco', 'Los Angeles', 'Chicago', 'Houston'], 'Salary' : [50000, 60000, 70000, 80000, 90000] } df = pd.DataFrame(data) df['Experience'] = [2,5,8,10,12] print("\nDataFrame after adding coulmn:") print(df)제가 data를 잘못 작성해서 이런 오류가 발생한 것일까요?
-
해결됨앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
안녕하세요, 해당 강의 18:00분 경에 앨런님께서 말씀하신 '앱을 만들 때 주로 코드로 만든다'라는 말씀에 궁금증이 들어 질문 남깁니다.UIKit을 통해 앱을 제작하실 때, 스토리보드 대신 주로 이전 강의 섹션과 같이 주로 코드를 이용해 UI를 구성한다는 말씀이신가요?스토리보드와 코드 둘 다 짧게나마 겪어본 제 입장에서는, 세그웨이를 수행하는 것 제외 스토리보드가 더욱 많은 이점이 느껴져서요.대표적으로는 VC에 UI 관련한 코드가 없어 더욱 VC가 본인의 책임에 집중하게 된다는 생각도 들고, 코드로 UI를 짜다 보면 하나 둘 빼먹게 될 확률도 높아지는 것 같아서요(스토리보드에서는 이를 바로 에러로 잡아주지만, 코드는 잡아주지 않기도 하구요)어떤 부분에 의해, 주로 코드로 UI를 구성하는 것을 선호하는지가 궁금합니다!
-
미해결
클립 유료화 구분점 질문
인프런 클립 게시할 때 유료화 구분점이 이동이 안되네요. 어떻게 하는건지 알려주실분 있나요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서AI)
서브에이전트 인식이 안됩니다,....
.claude/agents/prd-generator.md 생성하고/exit 으로 나갔다가 터미널에서 다시 클로드실행해도 여전히 agents 목록에 안뜨더라구요.Create new agent 수동으로 만들었더니 서브에이전트 생성은 되긴한데 여전히 @agent-prd-generator 명령어는 안먹히구요.프롬프트에 'prd-generator 서브에이전트를 활용해서'라는 문구를 추가해서 MVP PRD는 생성했는데,mcp 설치 후 CLI 껐다 켜도 settings 파일에 적용 안되는 것도 그렇고 변경 내용이 연동이 안되네요.. 혹시 사용 방법이 바꼈거나 확인된 버그 있을까요?
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
리스트 이동 시 창 에러 발생
다른 쪽은 모두 정상인데.... 로그인, 글 작성,수정 후, 리스트 창으로 이동 시 서버 에러가 나오는데,,, 원인을 못 찼겠습니다. @blueprint.route("/list") def lists(): page = request.args.get("page", 1, type=int) limit = request.args.get("limit", 10, type=int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", "", type=str) query = {} search_list = [] if search == 0: search_list.append({"title": {"$regex": keyword}}) elif search == 1: search_list.append({"contents": {"$regex": keyword}}) elif search == 2: search_list.append({"title": {"$regex": keyword}}) search_list.append({"contents": {"$regex": keyword}}) elif search == 3: search_list.append({"name": {"$regex": keyword}}) if len(search_list) > 0: query = {"$or": search_list} board = mongo.db.board datas = board.find(query).skip((page-1) * limit).limit(limit) #tot_count = board.find(query).count() tot_count = board.count_documents(query) last_page_num = math.ceil(tot_count / limit) block_size = 5 block_num = int((page-1) / block_size) block_start = int((block_size * block_num) + 1) block_last = math.ceil(block_start + (block_size-1)) return render_template("list.html", datas=datas, limit=limit, page=page, block_start=block_start, block_last=block_last, last_page=last_page_num, search=search, keyword=keyword, title="리스트", )
-
미해결빅데이터분석기사 필기 올인원: 3주에 끝내는 완벽 대비
차원 축소 개념-차원의 저주
안녕하세요, 필기시험을 준비하며 강의를 잘 듣고있습니다. 강의를 항상 빨리듣기하고있어서 자세히 못보다가 오늘 눈에 들어오는 부분이있어서 글을 남깁니다.위치 : 2과목 42페이지 차원 축소개념에서 차원의 저주에서내용 : "데이터 공간이 희소해지며"는 공간이 아니라 데이터가 희소해진다는걸 잘못 줄인말인거죠? 수정이되어야, 이해하는데 도움이될거같아요.. 차원이 증가할수록 공간은 커지는데, 데이터 밀도가 감소되는거지요?
-
미해결성장과 상금은 누구의 것? 인프런 3주 '서바이벌' 챌린지 : All or Nothing!
개인 생존 여부
제가 생존했는지 확인하는 방법은 없나요?
-
해결됨전동킥보드로 배우는 임베디드 실전 프로젝트
실무 협업 코딩 방식
안녕하세요, 강사님.강의와 관련된 질문은 아니지만, 실무에서 어떤 방식으로 협업하여 코드를 작성하시는지가 궁금해서 질문 드립니다. 일단, 저는 실무에서 협업해 본 경험이 없습니다.실무에서는 어떻게 협업하는지 궁금해서 찾아 들어가보다가,임베디드 갤러리라는 곳에서 다소 자극적이지만,임베디드 회사 거르는 기준 이라는 글을 보게 됐습니다. 요약하면, 아래와 같은 회사는 안 좋은 회사라는 취지의 글이었습니다.Git 같은 형상 관리 도구를 쓰지 않는 회사테스트 코드 안 짜는 회사코드 리뷰 안 하는 회사코드 포매터 안 쓰는 회사 어느 정도 이해되는 부분도 있고,테스트 코드는 정말 작성할까? 싶기도 했습니다.GPT한테 물어보니, 심지어 리눅스 같은 큰 프로젝트도 포매터는 안 쓴다는 것 같습니다. (린터를 이용해서, 코드 리뷰 단계에서 스타일을 점검하지만) 그래서 드리고 싶은 질문은, 실무에서Git 같은 형상 관리 도구를 사용하시나요?테스트 코드를 작성하시나요?린터, 코드 포매터를 사용하시나요?코드 리뷰를 하시나요?입니다.강의 외의 개인적으로 궁금한 내용을 질문 드려 죄송합니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-Q 질문
안녕하세요! 문제 조건이 '웅덩이는 겹치지 않는다' 이기 때문에 현재와 다음 상태를 비교하여 코드를 짰는데 왜 틀린지 모르겠습니다 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, L; cin >> N >> L; vector<array<int, 2>> ar(N); for (int i = 0; i < N; i++) { int s, e; cin >> s >> e; ar[i] = {s, e - 1}; } sort(ar.begin(), ar.end(), [](const auto& a, const auto& b) { return a[0] < b[0]; }); int ret = 0; int start = ar[0][0]; int end = ar[0][1]; for (int i = 0; i < N - 1; i++) { auto& cur = ar[i]; auto& next = ar[i + 1]; if (next[0] - cur[1] >= L) { int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; start = next[0]; end = next[1]; } else { end = next[1]; } } int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; cout << ret << "\n"; return 0; }