묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
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"빈 배열
-
해결됨대기업 근무하며 경험한 Redis를 야무지게 사용하는 방법 [이론편]
동영상 질문
원래 설명만하고 화면은 고정인가요?? 화면 하나만 띄우고 설명만 있는거 같아서 저만 그런가 하고요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
버퍼
샌드버퍼는 컨텐츠단에서 사용리시브버퍼는 서버단에서 사용하는 이유가 뭔가요 ?
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
요소 위치 교체
43강 12:45~50 보면 말풍선과 시간의 위치를 교체하는데, 어떤 단축키를 사용해야할까요?
-
해결됨[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
네이버 로그인 구현 관련 문의
안녕하세요! 이번에 카카오 로그인을 강의를 보고 적절히 구현할수 있게 되었습니다.다만 제가 생각하는 앱에 네이버 로그인도 같이 있으면 좋을것 같은데.. 혹시 어떤식으로 구현하면 좋을지 팁을 주실수 있을까요..? 추가적으로 플러터 플로우에 있는 app state의경우 원래는 영구저장이 안되지만, persist옵션을 선택하면 로컬에 저장이 가능하다고 하는데, 확신이 없어서요.. 혹시 제가 생각하는게 맞을까요??앱에 필요한 json형식의 데이터들을 로컬에 저장하고, 앱이 재시작해도 초기화 되지 않도록 구현하려고 합니다..!
-
해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
db에 저장된 비밀번호 암호화
❗질문 작성시 꼭 참고해주세요현재 문제(또는 에러)와 코드(또는 github)를 첨부해주세요. 맥/윈도우, 안드로이드/iOS, Expo, Node 버전 등의 개발환경을 함께 적어주시면 도움이 됩니다. 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. (일부만 자르거나 복사하지말아주세요.) 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다.pgAdmin4에 저장된 유저 정보에 비밀번호를 보면 제가 임의로 입력한 비밀번호가 아닌 암호화?된 값이 저장되어있는데 이 부분은 올려주신 server 백엔드에서 진행된건가요? 프론트 부분에서는 없는것 같아서 여쭤봅니다. 프론트가 아닌 백엔드에서 암호화하는게 맞는것 같긴 한데, 혹시나 놓친 부분이 있는건가 싶어서 여쭙니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
업로드파일 조회/삭제 질문있습니다.
업로드파일 조회/삭제 7분 58초에 ResponseEntity를 컨트롤러에 넣는것은 15년전 방식이라고 말씀해주셨는데요.근데 ProductController에 아래 같이 있는데요. @GetMapping("/view/{fileName}") public ResponseEntity<Resource> viewFileGET(@PathVariable String fileName){ return fileUtil.getFile(fileName); }아래 코드를 Controller에 넣는게 15년전 방식인건가요?//파일 조회하는것 public ResponseEntity<Resource> getFile(String fileName) { Resource resource = new FileSystemResource(uploadPath+ File.separator + fileName); if(!resource.exists()) {//파일이 없을 떄 resource = new FileSystemResource(uploadPath+ File.separator + "default.jpeg"); } //http 헤더가 중요. 내가 보낸 타입을 알아야함. HttpHeaders headers = new HttpHeaders(); try{//마이 타입 headers.add("Content-Type", Files.probeContentType( resource.getFile().toPath() )); } catch(Exception e){ return ResponseEntity.internalServerError().build(); } return ResponseEntity.ok().headers(headers).body(resource); }
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
Dimensions 이용해서 디바이스마다 다르게 스타일링 하는 부분
선생님 질문이 있습니다!const deviceHeight = Dimensions.get('screen').height;...paddingVertical : deviceHeight > 700 ? 15 : 12;이런식으로 스타일링 해주셨는데요,궁금한게 디바이스는 무수히 많은 종류가 있고, 700뿐만 아니라 500, 700, 1000 등등 사이즈마다 다르게 대응해야 할 수도 있을 것 같은데, 상상만 해도 스타일링이 많이 지저분해질 것 같아서요.혹시 deviceHeight의 수치에 따라 계산식을 만들어서 padding이 비율에 따라 확대/축소될 수 있도록 하는 것도 방법이 될까요?아니면 웹에서 반응형 레이아웃 대응할 때 미리 사이즈 정의해놓는 것처럼const deviceSizes = { xs: '575px', sm: '576px', md: '768px', lg: '992px', xl: '1200px', xxl: '1600px', };이런식으로 정해놓고 스타일링할 때 사이즈별로 case 문 만들어서 정의하는게 나을까요? 실무에서 이런 방식도 쓰일런지 궁금합니다!
-
해결됨챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기
아.. 혹시 이 강의 내용 맥북에서는 못하나요?
32bit 설정이 되지 않아서 찾아봤는데 MAC에서는 안되다고 하던데 방법이 없는지요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
redis-cli 명령어로 pubsub channels 확인하는 방법
redis-cli 명령어로 pubsub channels 확인하는 방법강사님 처럼 하고나서 3000 포트와 3001 포트에서 서로 채팅하는 것 까지 테스트 해봤습니다.근데 여기서 pubsub channels 명령어로 저는 chat 이라는 값이 나올줄 아랑ㅆ는데 empty array라는 값이 나옵니다. 원래 이런가요?