묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
필수실습문제 파일을 어떻게 찾으면 될까요?
수업제목/번호와 파일과 매칭이 잘 안되어 있어서 은근 찾기가 불편하네요. 물론 수업중에 선생님 화면 참고해서 찾기를 해요. 그런데 필수실수문제는 그방법이 안통하네요. [필수 실습 문제] 평균값 구하기 예를 들어 말씀해 주시면 감사하겠습니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
셀레니움 PDF자료는 받을 수 있나요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 내용중에 셀레니움 PDF자료를 보면서 하시던데, 받을 수 있는 곳이 있나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다
안녕하세요 큰돌님 문제를 풀다가 이해안되는 부분이 있어 질문드립니다.https://www.acmicpc.net/source/98984224Q1. 저는 dfs 부분에서 0일때 1일때 다르게 처리 했는데요 1만나면 방문처리, 벡터에 담고, 더이상 탐색을 안하는데 왜 쌤이 구현한 방식이랑 치즈개수에서 차이가 나는지 궁금합니다.주석처리한 부분이 쌤이 구현하신 코드입니다. Q2. 이런 동시 확산문제에서는 dfs(), bfs()에 좌표뿐만 아니라 동 시간대라는 정보를 주기 위해시간 정보도 같이 인자로 넣어서 풀어도 될까요? bfs(int y, int x, int t)
-
해결됨Next + React Query로 SNS 서비스 만들기
팔로우 추천 목록이 빈 배열로 들어옵니다.
안녕하세요. 팔로우 추천 API는 팔로워 수가 많은 순으로 최대 3명을 가져오도록 되어 있는 것으로 알고 있습니다.현재 발생하는 현상으로는 회원가입한 유저가 없는 경우에 기존 유저에게 추천 목록이 빈 배열로 나타납니다.그런데 회원가입 후 로그인하면 추천 목록에 로그인한 본인 아이디가 뜨고, 로그아웃 후 기존 유저 A로 로그인하면 이전에 회원가입한 유저 아이디가 추천 목록에 나타납니다.기존 유저 A가 그 회원가입 한 유저를 팔로우한 상태에서, 다른 기존 유저 B로 로그인하면 A가 팔로우했던 아이디가 추천 목록에서 사라져 있습니다.팔로우나 언팔로우 기능을 사용할 때 데이터는 정상적으로 들어오는 것으로 확인되고, 팔로워가 있는 아이디가 추천 목록에 나타나야 하는데 빈 배열로 표시됩니다.어느 부분을 점검해야 문제를 정확히 파악할 수 있을지 감이 잡히지 않아 질문 남겨봅니다..!import { MouseEventHandler } from "react"; import { User } from "@/model/User"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useSession } from "next-auth/react"; type Props = { user: User; }; export default function FollowRecommend({ user }: Props) { const queryClient = useQueryClient(); const { data: session } = useSession(); const followed = !!user.Followers?.find((v) => v.id === session?.user?.id); // 팔로우 const follow = useMutation({ // 호출 시마다 userId를 전달 mutationFn: (userId: string) => { return fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users/${userId}/follow`, { method: "POST", credentials: "include", }, ); }, onMutate: (userId: string) => { const data: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (data) { // 내가 팔로우 하는 대상 // User 배열 중에 팔로우 버튼을 누른 대상의 userId를 찾아서 그 유저의 Followers 수정 const index = data.findIndex((users) => users.id === userId); const shallow = [...data]; shallow[index] = { ...shallow[index], Followers: [{ id: session?.user?.id as string }], _count: { ...shallow[index]._count, Followers: shallow[index]._count.Followers + 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } }, onError: (error, userId: string) => { console.error("팔로우/언팔로우 에러:", error); console.log("실패한 userId:", userId); const data: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (data) { const index = data.findIndex((users) => users.id === userId); const shallow = [...data]; shallow[index] = { ...shallow[index], // 내 아이디가 대상 유저의 팔로워 목록에서 빠져야함 Followers: shallow[index].Followers.filter( (f) => f.id !== (session?.user?.id as string), ), _count: { ...shallow[index]._count, Followers: shallow[index]._count.Followers - 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } }, }); // 팔로우 끊기 const unfollow = useMutation({ mutationFn: (userId: string) => { return fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users/${userId}/follow`, { method: "DELETE", credentials: "include", }, ); }, onMutate: (userId: string) => { const data: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (data) { const index = data.findIndex((users) => users.id === userId); const shallow = [...data]; shallow[index] = { ...shallow[index], Followers: shallow[index].Followers.filter( (f) => f.id !== (session?.user?.id as string), ), _count: { ...shallow[index]._count, Followers: shallow[index]._count.Followers - 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } }, onError: (error, userId: string) => { const data: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (data) { const index = data.findIndex((users) => users.id === userId); const shallow = [...data]; shallow[index] = { ...shallow[index], Followers: [{ id: session?.user?.id as string }], _count: { ...shallow[index]._count, Followers: shallow[index]._count.Followers + 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } }, }); const onFollow: MouseEventHandler<HTMLButtonElement> = (e) => { e.stopPropagation(); e.preventDefault(); if (followed) { console.log("언팔로우"); unfollow.mutate(user.id); } else { console.log("팔로우"); follow.mutate(user.id); } };
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
첨부파일 삭제
@blueprint.route("/edit/<idx>", methods=["GET", "POST"]) @login_required def board_edit(idx): board = mongo.db.board try: doc = board.find_one({"_id": ObjectId(idx)}) except Exception: doc = None if not doc: flash("해당 게시물이 존재하지 않습니다.") return redirect(url_for("board.lists")) if str(session.get("id") or "") != str(doc.get("writer_id") or ""): flash("글 수정 권한이 없습니다.") return redirect(url_for("board.lists")) if request.method == "GET": return render_template("edit.html", data=doc, title="글수정") # --- POST --- title = (request.form.get("title") or "").strip() contents = (request.form.get("contents") or "").strip() deleteold = "deleteoldfile" in request.form # ✅ 체크박스 감지 old_file = doc.get("attachfile") filename = old_file f = request.files.get("attachfile") if f and f.filename: base, ext = os.path.splitext(secure_filename(f.filename)) new_name = f"{base}_{int(time.time())}{ext.lower()}" save_dir = app.config["BOARD_ATTACH_FILE_PATH"] os.makedirs(save_dir, exist_ok=True) f.save(os.path.join(save_dir, new_name)) if old_file: board_delete_attach_file(old_file) filename = new_name elif deleteold: if old_file: board_delete_attach_file(old_file) filename = None update_set = {"title": title, "contents": contents} if deleteold and filename is None: board.update_one({"_id": doc["_id"]}, {"$set": update_set, "$unset": {"attachfile": ""}}) else: update_set["attachfile"] = filename board.update_one({"_id": doc["_id"]}, {"$set": update_set}) flash("수정되었습니다.") return redirect(url_for("board.board_view", idx=str(doc["_id"])))챗지피티의 도움을 받아 작성했습니다. 근데 삭제 기능만 안되는데 왜 안돼는지 모르겠습니다..
-
미해결[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
첫째주 수요일 질문
cd Wed/ 부터 시작하는데, 우분투를 껐다가 켜면 다 리셋되는거니까 cd _Book_Claude-Code/Week1/Wed/ 로 해서 실행하는게 맞나요? 그리고 Wed에서 Thu로 바꾸는 방법이 있나요? /quit 하고 Thu/를 입력해도 No such file or directory 라고 뜨면서 안돼서 껐다켜고있습니다.54쪽에 1번 ! Is가 잘 작동이 안되는데 뭘하는건지 잘 모르겠습니다. ! for bash mode라고 뜨는데요. Is를 입력하면 /bin/bash: line1: Is: command not found 라고 뜹니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
messagerelayconfig클래스에서
bootstrapServers의 value값은 어디에 가져오는건가요?yml이나 properties파일은 없는 거 같은데..
-
미해결
vagrant.exe up 실행시 이미지의 repo 연결 문제 해결방법있나요?
vagrant.exe up 명령어 실행시 repo 가 더 이상 지원되지 않는 서버라 연결이 안되는 문제가 있는것 같습니다. 해결방안이 있을까요? C:\Program Files\Vagrant\bin>vagrant.exe upBringing machine 'm-k8s' up with 'virtualbox' provider...==> m-k8s: Importing base box 'sysnet4admin/CentOS-k8s'...==> m-k8s: Matching MAC address for NAT networking...==> m-k8s: Checking if box 'sysnet4admin/CentOS-k8s' version '0.8.0' is up to date...==> m-k8s: Setting the name of the VM: m-k8s(github_SysNet4Admin)==> m-k8s: Clearing any previously set network interfaces...==> m-k8s: Preparing network interfaces based on configuration...m-k8s: Adapter 1: natm-k8s: Adapter 2: hostonly==> m-k8s: Forwarding ports...m-k8s: 22 (guest) => 60010 (host) (adapter 1)==> m-k8s: Running 'pre-boot' VM customizations...==> m-k8s: Booting VM...==> m-k8s: Waiting for machine to boot. This may take a few minutes...m-k8s: SSH address: 127.0.0.1:60010m-k8s: SSH username: vagrantm-k8s: SSH auth method: private keym-k8s: Warning: Connection reset. Retrying...m-k8s: Warning: Connection aborted. Retrying...m-k8s: Warning: Connection reset. Retrying...m-k8s: Warning: Connection aborted. Retrying...m-k8s: Warning: Connection reset. Retrying...m-k8s: Warning: Connection aborted. Retrying...m-k8s:m-k8s: Vagrant insecure key detected. Vagrant will automatically replacem-k8s: this with a newly generated keypair for better security.m-k8s:m-k8s: Inserting generated public key within guest...m-k8s: Removing insecure key from the guest if it's present...m-k8s: Key inserted! Disconnecting and reconnecting using new SSH key...==> m-k8s: Machine booted and ready![m-k8s] A Virtualbox Guest Additions installation was found but no tools to rebuild or start them.Loaded plugins: fastestmirrorLoading mirror speeds from cached hostfileCould not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
실습 문제 20번) 구문 작성 오류 관련 문의사항
select country, count(*)from customersgroup by country;위의 구문을 작성했을 때는 정상적으로 작동이 되었는데, 왜 count(distinct customerID) 구문을 넣었을 때는 오류 표시가 나는 지 궁금합니다....
-
미해결[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
[문의] 스터디 일정이 예정되어 있는지 궁금합니다.
안녕하세요. 어제부터 강의를 듣기 시작한 학생입니다.스터디 모집이 끝났는지, 다음 스터디가 있다면 언제쯤 예정되어 있는지 궁금합니다.
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
코루틴 관련 질문 있습니다.
챕터5 코루틴 편에서 코루틴은 순차적 처리가 아닌 여러 차례를 병렬로 실행 가능하게 해준다고 소개해주고 있는데, 여러곳에서 알아본 결과 말이 달라서 질문 드립니다.코루틴이 병렬 처리가 가능한 명령어가 맞나요?
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
네이버 광고보고서 자동화
안녕하세요 강사님강의 잘보고있습니다. 다름이 아니라, 광고일을 하고있어서n8n으로 네이버대용량보고서 api를 불러온 후, 다운 -> 빅쿼리에 데이터 적재 -> 루커스튜디오시각화위 과정으로 자동화워크플로우를 짜고있는데요,현재 대용량보고서 다운로드 단계에서 막혀서,혹시 이 부분에 대해서 도움을 받을 수 있을지 문의드립니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
맨마지막 강의때 application.yml 에 db url 질문
안녕하세요 강의 정말 잘 듣고 있습니다너무 감사합니다. 맨마지막 강의때 spring boot + mysql + redis 컨테이너를 docker compose 를 통해 배포하는 과정에서 jar 파일이 mysql 과 커넥션을 맺어주기 위해서는 전에 강의에서 했던 것 처럼 mysql 컨테이너 service 명으로 url 을 application.yml 에 변경해야 되는게 아닌가요?? 그런 작업이 없었는데도 잘 동작하는게 의아합니다.디폴트로 in memory db(H2) 가 구동이 된 걸까요?
-
미해결PMP(프로젝트 관리 전문가) 자격 취득과정
ECO - PEOPLE 질의
유사 문제를 풀고 있습니다. 질의 응답을 확인 하였으나, 맞지 않느 것 같습니다. 아래 관련 답을 확인 하여 주시면 감사 하겠습니다. As a project manager, you recently completed a project team performance appraisal, and apreviously unknown competency gap in technical skills was uncovered, which needs to beaddressed. What should you do next?A. Implement the response planned for this riskB. Conduct unplanned training to address the competency gapC. Consult the training management planD. Let go of the staff who have technical skill gaps 질문을 남겨주세요. 상세히 작성하면 더 좋아요!- 먼저 유사한 질문이 있었는지 검색해보세요.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[React / VanillaJS] UI 요소 직접 만들기 Part 1
강의자료 관련 질문
안녕하세요 오늘 강의를 구매했는데, 깃헙클론 부터 초기셋팅 하는법이 어딨는지 몰라서... 혹시 캡처로 첨부드린 내용이 어딨는지 알 수 있을까요??감사합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.사진과 같이 작성했는데 괜찮나요? char 타입일 때, 비교 operator에서는 아스키코드 기반으로 크기를 체크하나요?
-
미해결스프링 핵심 원리 - 기본편
12:25
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]call AppConfig.memberService부분에서 sout순서가 call AppConfig.memberService->call AppConfig.memberRepository->call AppConfig.orderService->call AppConfig.memberRepository가 정상적인 예상 출력값아닌가요...?
-
미해결
amazon-linux-extras install epel -y 안됩니다.
amazon-linux-extras install epel -y입력시 command not found 라고 뜨면서 진행이 안됩니다.어떻게 해야 할까요??
-
미해결[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
git clone 오류?
$ git clone https://github.com/sysnet4admin/_Book_Claude-Code.git Cloning into '_Book_Claude-Code'... remote: Enumerating objects: 2458, done. remote: Counting objects: 100% (182/182), done. remote: Compressing objects: 100% (137/137), done. remote: Total 2458 (delta 93), reused 107 (delta 45), pack-reused 2276 (from 2) Receiving objects: 100% (2458/2458), 23.96 MiB | 11.07 MiB/s, done. Resolving deltas: 100% (550/550), done. error: invalid path 'week4/Thu/[클로드_코드]_p329외_npx:uvx는_왜_AI_시대에_필요 하며_동시에_위험할까요.pdf' fatal: unable to checkout working tree ~/projects/_Book_Claude-Code (main) $ lsgit clone할때 error가 있더니,ls 명령어를 쳐도 아무것도 안나와요..window/bash 사용
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
8:48초 생성자의 name vs class의 name
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요class안에 생성자를 만들때에 생긴의문입니다.생성자, 즉 input으로 받고 싶은 곳의 변수를 nam, members로 설정하였는데 이러면 class에 있는 기존의 name members와 헷갈리지 않나요?? 생성자에서 name2 memebers2와 같이 설정하면 굳이 this기호를 쓸 필요가 없지 않나요??name, members로 생성자와 클래스의 변수를 동일하게 설정하였는데 이게 어떻게 가능한가요?? 같은 변수를 동시에 설정할 수 있나요??