묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
brew tap homebrew/cask-versions 오류
brew tap homebrew/cask-versions사이트가 달라져서 직접 해당 명령어를 입력해서 작업했는데 오류가 뜨고 잇는 상황입니다 어떻게 해결해야되는지 이거 때문인지 안드로이드 앱이 동작을 안하고 있습니다.
-
미해결
면접 질문에 대한 답변 부탁드립니다..
안녕하세여 3년차 주니어 mmorpg 서버개발자입니다.제가 담당한 mmorpg 서버의 iocp 처리 후 큐에 담는 과정은 멀티스레드이였고 큐에 담긴 메세지를 처리하는 스레드는 단일스레드 였습니다.최근에 면접보러 갔을 때 제일 난처했던 질문이 있었는데Q : 대규모 전투가 이루어질때 수많은 유저가 있는데 어떻게 동기화 할 것이냐??A : 하나의 존의 메세지 처리를 단일로 하여 동기화를 최소화 할 것입니다.Q : 메세지처리가 스레드가 멀티스레드라면 어떻게 처리하실건가요??A : 메세지 유형별로 멀티스레드 처리 할 것 같습니다. 이렇게 대답을 했었습니다...면접에 대한 답변을 어떻게 했어야 했는지와 멀티스레드 환경 mmo서버에서는 실제로는 어떻게 사용되고 있는지 궁굼합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
정규표현식
안녕하세요! 강의 들으며 많은 부분 배우고 있습니다.DateCoverter 정규표현식 부분을 보면서 드는 의문이 있어 질문드립니다. 제가 이해한 바가 맞다면, 정규표현식에서 {1,2}부분은 앞부분의 패턴을 1번 또는 2번 반복한다고 이해했습니다.그렇다면 r"20\d{2}/([1-9]|0[1-9]|1[0-2]){1,2}/([1-9]|0[1-9]|[12][0-9]|3[01]){1,2}"라는 정규표현식에서 월과 일의 숫자를 체크하는 부분이 1번 또는 2번 반복될 수도 있으니 "2023/0303/1212"와 같은 문자열도 통과 가능한 것일까요?
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
함수 타입 호환성의 실제 예제가 궁금합니다.
안녕하세요! 강의 잘 들었습니다. 내용은 모두 이해가 되었는데, 이런 함수 타입 호환성을 실무나 프로젝트에선 어떤식으로 사용하는지 궁금합니다! 동일 질문을 chatGPT에게 했더니 콜백 함수 관련 예제를 알려주었는데, 그렇게 와닿지 않아 질문드리게 되었습니다 ㅠㅠ간단한 코드라도 예시를 주실 수 있다면 감사하겠습니다.
-
미해결Next + React Query로 SNS 서비스 만들기
next-auth 사용 이유
안녕하세요. 백엔드에서 connect.sid 쿠키와 next-auth의 auth.js-session-token을 사용해서 유저 인증을 하는 것 처럼 보입니다. 프론트서버에서 유저가 접근 시 세션 쿠키(connect.sid)를 받아 백엔드에 유저 세션을 확인한다면 next-auth를 사용하지 않아도 되는 것처럼 보입니다. 백엔드에서 auth.js-sessoin-token으로 유저 인증을 한다면 역시 세션 쿠키(connect.sid)가 필요없는 것처럼 보입니다.connect.sid와 auth.js-session-token 쿠키를 모두 사용해야 하는 이유가 있을까요? 만약 둘 다 사용하는게 좋다고 한다면 동기화가 필요할 것 같은데(만료 시간, 세션 무효화 등..), 이건 어디서 어떻게 처리하는게 좋을까요?(예외 질문) connect.sid의 쿠키에 httpOnly 옵션이 false여도 괜찮은가요? 혹시 백엔드에서 connect.sid의 쿠키를 httpOnly로 보냈다면 쿠키파싱이 제대로 안된 것 같습니다. 아래 모듈로 쿠키파싱하면 되는 것 같습니다. 혹시나하고 남겨봅니다. //현재 코드 //import cookie from "cookie"; //const parsed = cookie.parse(setCookie); import { parseSetCookie } from "next/dist/compiled/@edge-runtime/cookies"; const parsed = parseSetCookie(setCookie);
-
해결됨실전! Querydsl
상수, 문자 더하기 (참고) 부분 질문
안녕하세요. 상수처리에 궁금한 점이 있습니다.3장 기본문법pdf의 p.21 참고를 강의촬영후 달아주셨는데요.Q1. '위와 같이 최적화가 가능' 이란 설명을 하셨는데 위 쿼리가 어떤 점에서 최적화가 된 쿼리인지 알고싶습니다.Q2. 상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다. 이 말씀도 잘 이해가 되지 않습니다.상수를 더한다는 표현과 상수를 넘긴다라는 표현이 낮설기만 한데요. 혹시 예시를 들을 수 있을까요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[오타 제보] 13. 스레드 풀과 Executor 프레임워크2
[오타 내용]대상 강의록: 13. 스레드 풀과 Executor 프레임워크2.pdf대상 위치: p.2 close() 부분오타 내용변경 전: close() 는 자바 19부터 지원하는 서비즈 종료 메서드이다변경 후: close() 는 자바 19부터 지원하는 서비스 종료 메서드이다
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
jwt 인증 질문입니다.
현재 connect 할때 토큰이 올바른지 확인하는데이후 메세지를 저장할때 보낸 유저를 판단할때 이메일 정보를 이용해 보낸사람의 이메일로 유저를 찾는데 이경우 잘못될 가능성이 높을것 같아 처음 connection을 할때 저장해 두고 이걸 이용해서 보낸 유저를 구분하고 싶은데 어떻게 하는게 좋을까요?
-
미해결
Homemade Studio 구인
Homemade Studio 팀에서 진행중인 프로젝트를 함께 할 팀원을 모집하고 있습니다.작업 및 회의는 전부 비대면으로 진행하고 있으며, 상황에 따라 변경 가능합니다.모집하고있는 인원은 총 2인이며 분야는 다음과 같습니다.디자이너- Figma 사용 가능하신 분- 개발자와 협업을 진행해보고 싶으신 분- 모바일 또는 앱 디자인 경험 및 배우고 싶으신 분- 기존에 제작되어있는 디자인을 이어서 작업하실 수 있는 분 (회의를 통해 디자인 변경 가능)프론트엔드 개발자- Next.JS 사용능하신 분- 같이 배우면서 성장하실 분- 팀 단위의 협업 가능하신분Homemade Studio 팀 소개- 백엔드 개발자- 프론트 엔트 개발자- iOS 개발자> 3인으로 구성되어 있으며 현재 앱과 웹 동시에 작업중입니다.팀에서 사용하고 있는 소통 방식 및 협업 툴- Slack, Figma, Github, Jira 아래 오픈채팅 링크로 문의 주시면 감사하겠습니다,링크: https://open.kakao.com/o/sn63qkih
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
8강 Spring Boot 프로젝트 세팅 2
8강 Spring Boot 프로젝트 세팅 2 강의를 반복해서 보고 있습니다.강의에서는 Multi Module 을 생성하기 위하여 Directory 를 생성하고, build.gradle 파일을 생성한 후 코드 입력settings.gradle 에 Module 정의를 하시고 계십니다. 인텔리제이에서는 프로젝트에 Module 을 추가하기 메뉴가 있습니다.인텔리제이 에서 프로젝트에 Module 을 추가하면, 강좌파일의 모듈처럼 생성이 되지 않습니다.project/module1, project/module2 이렇게 1단계 모듈만 작성이 가능합니다. 인터넷 검색자료에도 모듈작성이 1단계방식(에를들어 service-article, service-like)으로 되어 있습니다.계층구조가 강의 내용이 보기 깔끔하여 따라 해보려 하는데 잘 되지 않습니다 디렉토리를 2단계로 작성( project/service/article)하고build.gradle 파일을 직접 생성하면 "dependecies" 키워드도 자동안성이 되지 않습니다 인텔리제이 버전은 "IntelliJ IDEA 2024.3.3 (Ultimate Edition)","Build #IU-243.24978.46, built on February 11, 2025" 입니다인텔리제이가 버전업이 될때마다 메뉴라던가, 기능이 많이 바뀌기는 합니다만. 조금 답답합니다
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 RestClient 호출시 null
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 시 RestClient 호출시 null 발생 됩니다.혹시 어느 부분을 봐야 할까요?? > Task :service:comment:testCommentApiTest > create() FAILED org.springframework.web.client.ResourceAccessException at CommentApiTest.java:36 Caused by: java.net.ConnectException at CommentApiTest.java:36 Caused by: java.net.ConnectException at Utils.java:1041 Caused by: java.nio.channels.ClosedChannelException at SocketChannelImpl.java:2021 test completed, 1 failed> Task :service:comment:test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':service:comment:test'. package kuke.board.comment.service.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } }
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
데이터 수집하기 코드가 강의자료 어디에 있나요?
강의 자료가 과제별로 안되어있어서 따라가기가 쉽지 않네요
-
해결됨[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
가상 시뮬레이터 실행
강의에서 모든 부분이 잘 따라왔습니다.다만.. 마지막 안드로이드 가상 에뮬레이터가 작업표시줄 창에는 뜨지만 직접적으로 확인하지 못하고 있습니다. 클릭해도 아무 반응이 없고, 작업 표시줄에 있는 프로그램에 마우스를 올려보면 이렇게만 뜨고 있습니다. adb 설치도 다시 해보았고, 에뮬레이터에서 앱이 실행 중인지도 adb shell pm list packages | grep 명령어로 확인해보았습니다. 제가 놓친 부분이 있는 걸까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
closed list를 비교하는 부분이 궁금합니다.
24분 24초에 나오는 palyer.cpp, while문 안에 해당 코드에서closed list는 방문 유무만 체크를 하는데 최소 거리를 찾는것과 무슨 관계가 있는지 모르겠습니다.closed list에는 다른 경로와 값을 비교하는 부분(비용계산 하는부분)이 없는 것 같은데 어떻게 체크가 되는지 궁금합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기
검증 방법 질문입니다.
프롬프트 작성 및 두번의 llm에다가 Query 결과문을 넣어서 한번 더 검증하게 한다는 것인가요 ?
-
해결됨웹 애니메이션을 위한 GSAP 가이드 Part.03
imagesLoaded 에 관해 질문드려요
섹션2. Basic TriggerPractice(3) 이 부분을 들었는데요,여기서 강사님 화면에서는 숫자 0에서 100% 올라가는 숫자카운팅이 보여지는데전 0% 에서 바로 100% 가 되어서요, 그 이후의 동작은 정상적으로 잘 되구요~소스를 완성본을 복사해봐도 동일하구요
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
Part 1 영상 안나옵니다
[완성본 미리보기] HTML+CSS 실전 퍼블리싱 제작(Part 1)계속 새로고침하고 나갔다 다시들어왔는데 우선 파트2는 나오는데 1이 안나옵니다
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
브랜치 주소가 표시되지 않습니다.
'각 강의 브랜치 주소는 챕터가 시작하는 화면 하단에 표시되어 있으니 참고하여 주시기 바랍니다.' 라고 하셨는데, 화면 하단에 어디에 있는지 모르겠습니다. 해당 화면에 대해서 스크롤도 안되고, 메모같은 것도 없어서 현재는 github 를 뒤지면서 보고 있는데, 명확한 가이드를 주실 수 있나요 ? 깃허브에 뒤져가면서 보더라도 숫자-내용basic-내용 형태의 브랜치들 밖에 없다보니 뭘 봐야할지 헷갈립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
화살 처리 관련 질문이 있습니다!
안녕하세요.제가 겪은 오류 관련해서 이미 예전 질문 글이 있었고 그와 관련해서 잡 캔슬이 얼마나 중요한지 알게 되면서 이것저것 정리하면서 생각해보다 보니까 문득 화살을 파괴할 때느 잡 캔슬을 하지 않았던 게 생각 나더군요.사용자가 상호작용을 할 때만 발사되는 거라서 몬스터나 비전큐브랑 같지 않다는 건 아는데요. 문득 이런 의문이 들었습니다. Arrow.Update()가 다음과 같습니다~public override void Update() { if (Owner == null || Room == null || Data == null || Data.projectile == null) return; int tick = (int)(1000 / Data.projectile.speed); Room.PushDelayed(tick, Update); Vector2Int destination = GetFrontCellPosition(); if (Room.Map.ApplyMove(this, destination, applyCollision: false)) { GameRoom room = Room; S_Move movePacket = new(); movePacket.ObjectId = Id; movePacket.PosInfo = PositionInfo; room.Broadcast(CellPos, movePacket); } else { GameObject target = Room.Map.Find(destination); if (target != null) { // 피격 target.OnDamaged(this, Data.damage + Owner.TotalAttack); } // destroy Room.Push(Room.LeaveGame, Id); } }제가 상상해낸 버그의 해결 방법은 이미 알고 있습니다. 다만 그런 상황이 가능할까 궁금하더라고요.화살을 파괴하는 일감인 (Room.LeaveGame, Id)가 잡큐에서 실행되기 전에 Update() 함수 초기에 예약해둔 일감 Room.PushDelayed(tick, Update)이 잡큐에서 먼저 실행되면 한 화살이 아직 파괴되기 전이므로 대미지가 두 번 이상 발생할 수 있는 상황이 올까? 싶었습니다. 저희가 GameLogic에서 일감들을 flush 하고 Job 클래스를 보면 JobTimer를 먼저 flush하니까요. 타이밍 이슈로 충분히 그럴 수 같은데? 생각이 들더라구요. 아직 재현된 이슈는 아닙니다. 가끔씩 화살이 몬스터를 뚫고 지나가기도 하는데 이런 타이밍 이슈와 관련이 있을까 하는 생각도 같이 들었습니다. 제 부족한 경험으로는 명쾌한 해답을 찾기가 어렵네요ㅠ
-
미해결Next + React Query로 SNS 서비스 만들기
cache: "force-cache" 질문이 있습니다.
const res = await fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/recommends?cursor=${pageParam}`, { next: { tags: ["posts", "recommends"], }, //cache: "force-cache", } );'/home'에서 포스팅 로딩 시또는 새로고침 시에 데이터를 최초 조회하는 시점에서cache: "force-cache"를 제거하면 포스팅이 노출되고포함하면 포스팅이 안 나오는 현상이 있는데어떤 이유인지 의심 가는 부분을 못 찾겠어서 질문 드립니다. cache: "force-cache" 주석처리데이터 존재 cache: "force-cache"빈 배열