묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨차세대 Node.js 백엔드 서버 개발(Fastify & Prisma & Typescript와 함께하는)
Swagger 문서 접근 권한
안녕하세요 Swagger UI의 경우 실제 서비스를 배포했을 때, 일반 유저는 /documentation에 접근하지 못 하도록 설정할 수 있나요? 내부 개발자들만 볼 수 있도록 접근 권한을 막는 방법이 있는지 궁금합니다. 감사합니다.
-
미해결[왕기초] 후디니 게임 이펙트 만들기
Pyro Solver 조절하기 #2 일부 영상 없음
해당 영상의 4분 6초부터 끝까지 영상과 소리 전부 나오지 않고 끝이 납니다
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Ui 팝업 생성 clone문제, 강의 내용 문의
안녕하세요!영웅소환 부 강의를 듣고 Ui 팝업 생성을 구현했습니다.하지만 버튼을 누를 때마다, 팝업 clone이 계속 생성됩니다.요부분 싱글턴 처리라던지, 이미 해당 팝업이 열려있는지 여부를 확인하는 부분과 같은 방어 로직 내용이 있는 강의가 있나요? 있다면 강의가 꽤 길어 제가 못찾고 있는 것 같아요 ㅠㅠ 강의 너무 잘 듣고 있습니다~그리고 제가 게임개발 인강에 기대했던 부분이로딩시에 서버에서 리소스 다운받는 것, 저녁 이벤트 보상 같은 앱 푸시 어떻게 구현했나 궁금했는데요. 뒷 강의에 있는지 또는 추후에 강의하실 예정인지 문의드려요!
-
미해결토비의 스프링 6 - 이해와 원리
도메인 오브젝트 메소드 주입에 대해 질문있습니다. (의존성 관련)
안녕하세요 토비님.질문드리기 전 먼저 오랜만에 너무 즐겁게 공부하고 있어 감사하다는 말씀을 드리고 싶습니다!질문은 다름이 아니라 '도메인 오브젝트 테스트' 편에서 마지막에 메소드로 ExProvider를 주입하는 방식을 언급해 주셨는데, 이렇게 되면 Payment가 ExProvider에 의존하게 되는 것 같아서 고민이 되었습니다.Payment는 도메인 오브젝트로서 순수하게 Payment에 관련된 응집만 추구해야 할 것 같은데, 그걸 넘어서는 건 아닐까라는 생각도 들었고, Payment 테스트 시 ExPriovider 주입이 필요하게 되는 점도 걸렸습니다.기존처럼 BigDecimal을 받도록 의존성을 끊어주는 게 더 낫지는 않을지 고민이 됩니다.비슷한 경험으로 이전에 SpringSecurity의 PasswordEncoder를 도메인 오브젝트에 메소드로 넘겨볼까 하다가 의존성을 생각해 포기하고 String으로 받았었는데, 이와 동일하지는 않겠지만 앞으로도 고민이 될 수 있는 부분인 것 같아 꼭 질문을 드리고 싶었습니다.도메인 개념적으로 Payment가 ExProvider와 묶여있는 게 자연스럽다 생각하셔서 그렇게 설계하신 걸까 싶은데, 이에 대해 어떻게 생각하시는지 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
[섹션2] 강의 화면이 나오지 않습니다.
안녕하세요.강의를 듣던 중 섹션 2의 "컨테이너 가상화, 도커, 컨테이너 실행" 이렇게 총 3개 강의의 강의 화면이 나오지 않고 음성만 나옵니다.세션 문제인가 싶어 시크릿모드로 진행했는데도 동일한 현상이 발생하네요.저는 현재 맥북을 사용하고 있고, 휴대폰 앱으로 실행했을 때는 잘 되는데 노트북에서 크롬으로 실행하니 화면이 안나오네요..혹시 이에 대해서 해결 방법이 있으면 알려주시면 감사하겠습니다!
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
04_MultiIndex 예제에서 질문이 있습니다
안녕하세요 강사님!SearchByIndexAgeRange 함수 안에 있는 코드를 다음과 같이 바꿔서 사용해도 될 것 같아서 변경해보았습니다. void** SearchByIndexAgeRange(int min, int max, unsigned int* pCount) { // unsigned int cntTotal = 0; // USERDATA** aList = (USERDATA**)MakeIndexAge(&cntTotal); unsigned int cntTotal = GetListCount(); USERDATA** aList = g_idxListAge; // 중략... }혹시 이 방식 대신 MakeIndexAge를 사용하신 이유가 있으실까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-E 질문드립니다!
http://boj.kr/25e64897950d400190abb19ae2bf48b1 제가 해당 문제를 풀 때 map 을 사용해서 풀었는데 map 이 key를 기준으로 sort 되기도 하고 그래서 생각난게 이거라 이걸로 풀었거든요 근데 선생님거보니 count 배열로 푸시더라고요 count 배열로 푸는 게 좀 더 깔끔한 방법일까요?
-
미해결Flutter 고급 - 현업 수준의 아키텍처
domain 에 data_source 를 만드는 이유.
강의 항상 잘 듣고 있습니다.질문이 하나 생겨서 여쭤봅니다.20강 30~33분 정도에서 domain 폴더에 data_source 폴더를 만드시는 이유를 다시 설명해주실 수 있을까요? 아래는 제가 생각하는 부분입니다. data/ 의 data/data_source/ 는 data/repository/ 에서 사용하는 부분임.domain/ 은 사실상 data/data_source/ 를 직접 접근하지 않고 domain/repository 를 활용하는 domain/use_case 를 통해 접근함.이렇게 생각이 들다보니, "domain 에서 data_source 의 인터페이스를 정의하는 것이 맞는건가?" 생각이 듭니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C 질문있습니다!
http://boj.kr/695c79fb3ead4e45b95b27b6f0fc5eb1 저 같은 경우에는 minTime 과 maxTime 을 구해서 최소 시간과 최대 시간 사이만 반복문을 돌리도록 처리했고 cost 배열을 따로 만들었는데 선생님 코드에 경우 A,B,C로 만들고 1~100까지 그냥 돌리셨더라고요 그래서 질문이 제 방식대로 하는 것보다 그냥 선생님 방식대로 시간 초과가 안나는 범위 내에서는 전체순회를 돌도록 하는 코드를 짜는 습관을 들여놓는게 좋을까요..?사실상 100개뿐이라 그냥 저런 경우에는 전체 다 순회하도록 습관을 들여놓는게 나중에 문제 풀 때 이득이 있을까요.. 알고리즘 뉴비라서 여쭤봅니다ㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5 알고리즘과 친해지기 (2) - 최빈값(알파벳) 구하기
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳)여기까지 이해하신 내용은 무엇인가요?: 'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다.0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... )ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다.string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다.a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다.chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다. 2. 어려움을 겪는 부분 저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
오류원인?
파이썬 decimal() 함수를 모르는 상태에서 if i == '0' or i == '1' or i == '2' or i == '3' or i == '4' or i == '5' or i == '6' or i == '7' or i == '8' or i == '9': tmp+=i int(tmp)이렇게 코드를 짰다고 했을때 ValueError: invalid literal for int() with base 10:오류가 뜹니다.. 숫자만 골라서 int 형변환 했는데 왜 오류가 뜰까요..?
-
해결됨ProtoPie Master Courses (프로토파이 마스터 클래스)
priview 노랑색 버튼
1강 노랑색 원버튼 애니메이션이 안됩니다. preview가 안 움직여요 옆으로 안 움직이네요 화면옆으로 스크롤도 안됩니다
-
미해결Airflow 마스터 클래스
task 실행중 오류
안녕하세요 강사님 강의 잘 보고 있습니다다름이 아니라 특정 조건에서 task가 실행되지 않아 해결방법을 묻고자 글을 남깁니다.task가 실행되지 않고 발생하는 log*** Could not read served logs: Invalid URL 'http://:8793/log/dag_id=dags_get_data_python_operator/run_id=manual__2024-12-20T09:11:57.447383+00:00/task_id=refine_data_/attempt=1.log': No host supplied branch에 따른 dag에 작성한 taskflow는 다음과 같습니다get_data_ >> check_dir_ >> get_yesterday_data_ >> refine_data_ >> delete_dataget_data_ >> check_dir_ >> refine_data_ >> delete_databatch 당일 데이터와 전날 데이터를 이용해서 spark를 이용해 정제하는 작업인데,전날 데이터가 수집되어있지 않다면 수집하고나서 sparksubmit을 하도록 task를 구성했습니다.전날 데이터가 없는 상태로 dag를 실행하면 전체task가 잘 실행이되고전날데이터가 존재한다면 원하는 task 까지 skipped이 되고 해당 log가 나오네요 ㅠㅠtask 플로우를 잘못 작성한 이유일까요 ? 추가)BranchPython task에 찍힌 log 입니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G, 문제해설 코드 질문
<알고리즘에 올라와 있는 코드>#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll INF = 1e18; int n, c, a[1004]; vector<pair<int, int>> v; map<int, int> mp, mp_first; bool cmp(pair<int,int> a, pair<int, int> b){ if(a.first == b.first){ return mp_first[a.second] < mp_first[b.second]; } return a.first > b.first; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> c; for(int i = 0; i < n; i++){ cin >> a[i];mp[a[i]]++; if(mp_first[a[i]] == 0) mp_first[a[i]] = i + 1; } for(auto it : mp){ v.push_back({it.second, it.first}); } sort(v.begin(), v.end(), cmp); for(auto i : v){ for(int j = 0; j < i.first; j++){ cout << i.second << " "; } } return 0; } 여기서typedef long long ll; const ll INF = 1e18;이 코드가 왜 필요한지 궁금합니다.또한, 입력에서 a[1004]배열을 왜 사용하는 것인지도 궁금합니다. 배열이 아닌 정수형 변수에 입력값을 저장한 후 카운트 map의 키로 사용해도 되는데 배열을 사용한 이유가 궁금합니다.
-
해결됨Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
서버 컴포넌트에서 API 호출 시 Supabase의 클라이언트/서버 클라이언트 차이점이 궁금합니다.
강의를 듣다가 궁금한 점이 생겨서 질문드립니다.브라우저에서 실행되는 코드에서는 브라우저 클라이언트를 사용하고, 서버에서 실행되는 코드에서는 서버 클라이언트를 사용합니다. - [Creating a Supabase client for SSR](https://supabase.com/docs/guides/auth/server-side/creating-a-client?queryGroups=framework&framework=nextjs&queryGroups=environment&environment=client#create-a-client)@supabase/ssr 라이브러리를 사용해서 2가지 유형의 클라이언트를 생성합니다.클라이언트 컴포넌트 클라이언트(createBrowerClient) - 브라우저에서 실행되는 클라이언트 컴포넌트에서 Supabase에 접근서버 컴포넌트 클라이언트(createServerClient) - 서버에서만 실행되는 서버 컴포넌트, 서버 액션 및 라우트 핸들러에서 Supabase에 접근 서버 컴포넌트로 동작하는 page 컴포넌트에서 각 클라이언트를 사용해 번갈아 API 호출을 해봤는데 동일하게 작동하는 것 같았습니다. 서버 컴포넌트에서 Supabase의 클라이언트/서버 클라이언트가 동작하는 방식의 차이가 있는지, 렌더링 방식에 차이가 있는지 궁금합니다. 서버와 클라이언트 개념과 렌더링 방식(SSR, CSR)이 자꾸 혼동되어 헷갈리네요..import { getTodos as getTodosClient } from '@/apis/todos'; import { getTodos as getTodosServer } from '@/actions/todos'; export default async function page() { const todos = await getTodos...(); } // todos.ts import { createBrowserSideClient } from "@/lib/client/supabase"; export const getTodos = async() => { const supabase = await createBrowserSideClient(); const result = await supabase.from("todos").select("*"); return result.data; }// todos.action.ts import { createServerSideClient } from "@/lib/server/supabase"; export const getTodos = async() => { const supabase = await createServerSideClient(); const result = await supabase.from("todos").select("*"); return result.data; }
-
미해결그림으로 쉽게 배우는 운영체제
파일디스크립터 질문드려요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 여러 프로세스 혹은 스레드가 동일한 파일에 접근하면 같은 내용의 디스크립터가 반환되나요? 현재 다른 스레드(프로세스가) 같은 파일을 열고 있다는 메타데이터는 어디에서 관리되나요? 그리고 파일을 동시에 접근 제어 할 수 있는 방법은 유저스레드에서 뮤텍스나 세마포어나 락 설정 외에 커널에서 제공하는 방법이 있나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
새 프로젝트 생성시 빌드 에러가 뜹니다
어제까지도 같은 디렉토리에 토이 프로젝트 새로 생성하면서 잘 진행하고있는데, 오늘 카운터앱 진도 나가면서 새로운 프로젝트 생성하는데, 생성하고 빌드시 이런 에러가 뜹니다. { "name": "section06", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" }, "devDependencies": { "@eslint/js": "^9.17.0", "@types/react": "^18.3.17", "@types/react-dom": "^18.3.5", "@vitejs/plugin-react": "^4.3.4", "eslint": "^9.17.0", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.13.0", "vite": "^6.0.3" } }package.json이구요 버전 체크 전부 해봤는데 어제 만든 잘 작동되는 프로젝트랑 아예 버전 차이도 없고, 생성후에 npm install 외에 아예 건든것도 없는데 npm run dev또는 npm run build 하면 저런 에러가 뜨네요.. 새로 다시 만들어도 에러고, 다른 디렉토리에 만들어봐도 똑같습니다.이거땜에 1시간은 날린거같은데, 이럴 경우에 어떻게 해결해야하는게 좋을까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-f, 2828번 문제 다른 풀이
https://www.acmicpc.net/source/87639259 이런 방법으로 코드를 작성해도 될까요? 백준 통과는 됐어요.
-
미해결3D 모델링 입문을 위한 라이노(Rhino) '꿀팁' Part.1
IPHONE 모델링(@):스케치를 입체로 12분31초 _LOFT
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - ★ 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 LOFT 가장자리서피스 잡고 그다음꺼 두번째꺼 누르려고 하는데 누르는 순간 이렇게 뜨는데 어떤걸 잡아야되는지 모르겠어요 강의 12:31초 입니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
input에 value 속성에 대해 질문드립니다!
안녕하세요!이번 강의 4분 10초에 나오는 state 값 content를 사용자에게 값을 입력받는 input의 value로 아래 코드와 같이 작성해주시는 이유는 무엇일까요??value는 어떤 용도로 사용되며 content를 넣어주면서 어떤 변화가 생기는건지 이해가 잘 안되어서 질문드립니다!<input value={content} placeholder="새로운 Todo..." />