묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문있습니다!
안녕하세요 루키스님.흐름을 이해하던 중에 이해가 안가는 부분이 있어서 질문드립니다. Accept부분에서 다음 그림의 순서로 흐름을 이해를 했는데이해가 안되는건Listner의 ProcessAccept부분에서session 가져와서 그 안의 소켓, 네트워크정보 업뎃해놓고그 다음 실행 부분인 RegisterAccept에서새로운 session으로 밀어넣으면 ProcessAccept부분에서 업데이트 했던 정보들이 다 날아가는것 아닌가 라는 의문점이 생겼습니다!! 제가 이해한게 맞다면 이 흐름대로 해버리면RegisterAccept에서 작업했던 session의 소켓 정보, 네트워크 정보는 다 날라가고 새로운 session으로 등록해버린거 아닌가요??
-
미해결김영한의 실전 자바 - 기본편
abstract클래스의 인스턴스 생성
[질문 내용]안녕하세요! 궁금한게 있어서 질문을 남깁니다. 자식클래스로부터 인스턴스가 생성되면 부모클래스의 인스턴스도 함께 생성되는 것으로 공부하였습니다. 추상 클래스는 실체인 인스턴스가 존재하지 않는다고 하였는데,추상 클래스를 상속 받은 자식 클래스로부터 인스턴스를 생성하면 왜 추상클래스 인스턴스도 함께 생성되는 것인가요?
-
미해결스프링 부트 - 핵심 원리와 활용
설정 데이터1 외부파일 질문이요.
gradlew clean build를 하여 jar파일을 만든 후~/build/libs/ 에 application.properties 만들고url, username, password 키 값 형식으로 강의처럼 입력했습니다.그러데 윈도우 같은경우 username값을 찍어보면 제 윈도우계정이 찍히는게 OS 쪽이 우선순위가 높아서 파라미터 곂칠때 그게 먼저 찍히는건가여?전 영상처럼 dev2_user가 안찍히고, 윈도우계정이 찍히네요.현재는 윈도우에서 set 으로 확인시 환경변수의 username과 곂치고 있습니다. 좁은 범위가 먼저 적용되야한다 라는 규칙이랑 다른거 같아서 OS환경변수가 넓은범위라고 한다면, 프로퍼티 파일 적용은 좁은 범위 아닌가 해서 여쭤봅니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
soft delete 라는 것을 알고 있습니다. 이에 대해 cascade 하게 삭제가 가능할까요?
만약에 Review 가 있고, Review 에 대해 좋아요 기능이 있습니다.기존 Hard Delete 시 좋아요 엔티티에 @ManyToOne 에 @OnDelete(action = OnDeleteAction.CASCADE) 를 사용 리뷰 삭제시 리뷰에 대한 좋아요도 삭제할 수 있었습니다. 그런데 Review에 대해 Soft Delete 시, 리뷰에 대한 좋아요는 Hard Delete로 삭제한다면 이를 어떻게 구현하면 좋을까요?? 1) Review가 delete 될 때마다 그냥 서비스 코드에 리뷰 좋아요 를 Hard delete 로 삭제하는 부분을 작성한다: @OnDelete 쓰다가 이거 쓰면 서러울 것 같아요.2) DB trigger 를 사용한다. : 애플리케이션에서 코드에서 명시해서 적용할 방법은 없나???3) EventLister 를 사용한다. : 이러면 Review 가 Update 될 때마다 @PostUpdate 해서 칼럼이 Deleted가 true인지 확인해야 되는데 .. Review 의 delete 칼럼이 업데이트 될때만 적용되는게 아니라 다른 칼럼이 업데이트 될때 이 부분을 항상 체크해주어야 해서 비효율적일것 같구! 4) 양방향 연관관계를 쓰기 싫은데 어거지로 써서 @OneToMany(cascade=remove) 를 사용한다. 1,2,3,4 다 마음에 안드는데 영한 님은 어떻게 사용하실까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
npm start 하면 발생되는 에러 메시지
(node:8952) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option. (Use `node --trace-deprecation ...` to show where the warning was created) (node:8952) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option. 리액트 실행이랑 강의 내용대로 정상적으로 동작 되는데, npm start 를 수행하면 위와 같은 문구가 출력됩니다. 구글에 검색해봤는데 해결 방법과 원인이 다양해서 적합한 해결책을 못찾았습니다. 무시해도 되는 에러일까요? 어떻게 처리하는지 궁금합니다.
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
Tooltip의 useStyleInView 훅 질문입니다.
강의에는 positionType이 relative인 경우의 설명만 있어서 시간 여유가 되시면 absolute인 경우의 설명에 대한 보강 영상이 있으면 좋을 것 같습니다~
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB 접근 제어자
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. DB는 단 하나만 존재해야하며 이를 재할당해서도 안되고 공통의 개념으로 보려면 DB 객체를 만들 때, private static final로 하는 것이 맞나요? 헷갈려서 질문드립니다.
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Volar Deprecated
안녕하세요. 오랜만에 들어서 다시 처음부터 듣고있는데요 Volar 관련된 플러그인이 다 Deprecated되었다고 합니다. 대체할 게 있을까요?
-
미해결[핵집] 2025 빅데이터 분석기사(필기)_과목 3~4
통합본 자료 요청
안녕하세요, 통합본 강의자료 요청드립니다 현재 1, 2과목 수강도 함께하고 있어 1, 2, 3, 4과목 모두 부탁드립니다 메일은wkdrb2100@gmail.com입니다
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
이벤트에 대한 타입을 지정할 때 궁금한 점이 있습니다.
보통 window.addEventListener 같은 것을 사용할 때 이벤트 파라미터에 대해서는 Event 타입을 사용하시고, 버튼 같은 클릭 이벤트 리스너의 이벤트 파라미터에 대해서는 SyntheticEvent 타입을 사용하시는 것 같습니다. 보통 클릭이라고 하면 MouseEvent<HTMLButtonElement> 또는 MouseEventHandler로 함수의 타입을 줄 수 있을 것 같은데 SyntheticEvent로 지정하시는 이유가 있으실까요. 대략적으로 SyntheticEvent가 여러 브라우저 등 호환성을 위해 React에서 자체적인 내장 인터페이스로 추상적으로 Vanilla JS의 Event 타입을 확장한 것으로 인지는 하고 있습니다.
-
해결됨스트림릿(Streamlit)을 활용한 파이썬 웹앱 제작하기
코드는 어디서 볼 수 있는거죠?
코드 볼 수 있는 곳이 안보이네요.파일 올려주시면 감사하겠습니다. 그리고 해당 링크들어가서 실행하면 아래와 같은 오류가 뜹니다.InvalidRequestErro: The model `text-davinci-003` has been deprecated, learn more here: https://platform.openai.com/docs/deprecationsr 사용하고 있는 모델이 중지된거같은데 한번 알아봐주시면 감사하겠습니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
본 강의에서 dj-rest-auth나 django-allauth도 다룰예정인가요?
안녕하세요 강의 잘보고 있습니다. 특히 django template을 이용하여 작업하는 부분에서 도움 많이 되었습니다. django를 학습하면서 궁금한점이 몇 가지 생겨서 여쭤보려고 합니다. 나중에 업로드 되는 DRF 파트에서 dj-rest-auth, django-allauth와 같은 라이브러리를 다루는지 궁금합니다.DRF와 JWT를 이용하여 클라이언트의 react_hook_form + zod와 서버의 django serializer에서 유효성 검사를 진행중입니다. 여기서 서버, 클라이언트 둘 중 한 가지에서만 유효성 검사를 처리하는건 괜찮지만 두 가지 경우에서 유효성 검사를 처리 할때 유효성 검사의 성공 여부와 메세지를 그리는게 생각보다 까다롭더라고요.예를 들어 AUTH_PASSWORD_VALIDATORS 에서 기본 제공되는 유효성 검사를 settings에서 커스텀해서 serializers에 적용하게 된다면 해당 유효성 검사에 사용된 조건들을 추출해낼 수 가 없어서 zod 스키마에는 적용할 수 없었습니다. 따라서 아래 이미지와 같이 직접 전부 커스텀 해서 적용해야 했습니다.클라이언트에서 적절히 걸러내고 아이디 중복체크, 이메일 확인, 최종 유효성 검사 등등 필요한 경우에만 서버에서 유효성 검사를 요하여 트래픽을 줄이려고 하는데 보통 이렇게 처리하는게 맞는건지 궁금합니다.Django Serializers FileNext Typescript zod FileDisplay
-
미해결프리다(Frida)를 이용한 안드로이드 앱 모의해킹
pip install frida-tools 버전 문제
강의에서와 같이 pip install frida-tools 명령어를 통해프리다를 설치했는데 저는 버전이 자동으로 12 버전대가 아닌16.2.1이 다운로드 되었는데 이 버전은 어떻게 바꿔야하나요??추가적으로 강의에서 나오는 frida.re로 접속해도프리다 16.2.1밖에 안 나옵니다 ㅠㅠ
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
31강 오류요ㅠㅠ
오류요ㅜㅜㅜ 어노테이션이나 다른 코드같은 거 잘 넣었는데..계속 문제떠요ㅜㅜhttps://github.com/alicelee1231/Spring Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2024-04-01 00:42:10.261 ERROR 6648 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookController' defined in file [/Users/isaemmi/Desktop/library-app/out/production/classes/com/group/libraryapp/controller/book/BookController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookService' defined in file [/Users/isaemmi/Desktop/library-app/out/production/classes/com/group/libraryapp/service/book/BookService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userLoanHistoryRepository' defined in com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract boolean com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository.existByBookNameAndIsReturn(java.lang.String,boolean); Reason: Failed to create query for method public abstract boolean com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository.existByBookNameAndIsReturn(java.lang.String,boolean)! No property 'existByBookName' found for type 'UserLoanHistory'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract boolean com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository.existByBookNameAndIsReturn(java.lang.String,boolean)! No property 'existByBookName' found for type 'UserLoanHistory'at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.6.jar:2.7.6]at com.group.libraryapp.LibraryAppApplication.main(LibraryAppApplication.java:10) ~[classes/:na]Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating be
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
16637번 질문
해당 문제에서 "3*8+5" 를 예시로 들어가면서 코드까지 옮기는 내용으로 수업을 해주셨습니다. 이 경우 당연하게 최대 1개 쌍의 괄호가 들어갈 수 있는 경우의 수가 2개이므로 수긍은 되었습니다.하지만, 제가 생각하기에 최대 수식의 길이가 19이므로 그 경우의 괄호는 상당히 많아질텐데 현재의 2개의 경우의 수를 고려하는 코드로도 커버가 되는 건가요? 재귀 형태라서 그렇다기에는 이해가 잘 안 갑니다..길이가 11인 예시 "3+5-8*1*4+2" 만 해도(3+5)-(8*1)*(4+2)로 최대 괄호의 수(쌍)가 3개짜리인 경우의 수가 상당히 많아질 수 있는데 현재의 코드가 어떻게 되는건지 모르겠습니다!
-
해결됨김영한의 실전 자바 - 기본편
매개변수도 메서드 호출시 인스턴스가 만들어지는게 맞다면
안녕하세요? 자바를 복습하면서 강의를 듣고 있는 학생입니다. 지난 강에서 dataA의 필드 변경을 위해 changeReference라는 메서드를 사용하셨을 때, Data dataX를 파라미터로 사용했었는데 강의에선 dataA와 동일한 참조값을 갖는 dataX라는 인스턴스도 메모리 상에 생성되었습니다. 아직 진도가 나가진 않았지만 기존에 알고 있었던 제 지식으로는 changeReference 메서드 호출시 스택 메모리 상에서 dataX가 생성되고 메소드 종료시 dataX는 소멸되고 힙 메모리 상 변경된 값은 갱신되는 것으로 알고 있는데 이게 맞나요? 이게 맞다면 이번 강의의 createStudent 메서드 파라미터들도 메서드 호출시 스택 메모리 상에 각각 인스턴스(name이나 age 등)가 생성될텐데 그림에는 이 부분이 없어서요. 너무 그림이 산만해질까봐 넣지 않으신 것으로 예상하긴 하는데 제가 아는 바가 틀린 것이 아니라면 이 부분을 넣는 것이 처음 배우는 분들을 위해 도움이 되지 않을까해서 여쭤봅니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그대로 입력했는데 틀렸다고 뜹니다.
#include <bits/stdc++.h> using namespace std; int n, cnt[26]; string s, ret; int main(){ cin >> n ; fot(int i=0; i<n; i++){ cin >> s ; cnt[s[0] - 'a']++; } for(int j = 0; j < 26; j++){ if (cnt[j] >= 5) ret += j + "a"; } if(ret.size()) cout << ret << "\n"; else cout << "PREDAJA" << "\n"; } 어디가 틀린걸까요
-
미해결Vue.js 시작하기 - Age of Vue.js
html/css/js로 작성된 코드를 vue.js로 일부 전환하고자 이 강의를 듣기 시작했습니다.
저는 개발 지식이 별로 없는 디자이너로, 작은 개인 프로덕트를 운영하고 있습니다.제가 할 줄 아는 게 html하고 css 정도라서 그냥... 어케어케 자바스크립트를 복사하고 쥐어짜내(??) 작동하는 것을 만들긴 했는데, 각 요소를 순수 자바스크립트로 제어하는 게 쉽지도 않고, 디버깅도 너무 어렵더라구요. 그래서 자바스크립트(와 미량의 제이쿼리...)로 작동하는 부분만 vue로 전환하고, 이후의 코드나 기능도 업데이트해나갈 생각으로 수강해나가기 시작했습니다. 지금은 Vue CLI 부분까지 들었는데요. 좀 헷갈리는 부분이 있고, 이 강의가 설정한 타겟 유저와는 좀 다른 상황인 것 같아 질문을 드리고자 합니다.1# Vue2와 Vue3저는 완전 최초 도입이라 Vue3을 써야 할 것 같은데, 강의가 Vue2 기준으로 만들어져있고 플러그인이나 문법이 조금씩 다른 것 같아요. 저는 js를 썩 잘하지 못하는데 Vue3 강의 없이 가도 되는지, 제가 구매한 레벨2 강의까지만 들어도 제가 원하는 목적을 달성할 수 있는지 궁금해요. 땜빵을 해야 하거나 만들고 싶은 게 생기면 자바스크립트 문법 학습을 매번 하긴 하는데 잘 알아서 정확하게 쓰는 게 아니라 대충 쓰는 것에 가깝긴 하거든요.제가 바라는 건 브라우저-서버 통신 한번 왔다갔다만 하면 자바스크립트가 전체 페이지 새로고침을 해야 하는 걸 개선하거나.. 토글이나 서브메뉴 UI같은 걸 좀 쉽게 구현했으면 하는 정도인데요. 제가 원하는 목적을 위해 Vue3 강의가 꼭 필요한지, 전반적으로 어느 정도 수준의 강의까지 들으면 되는지 궁금합니다.2# Vue CLI저는 flask 서버에 template 폴더 안에서 html/css로 제어하고, localhost에서는 테스트 서버로 확인을 했었는데요. Vue CLI는 뭔가 다 Vue 포맷으로 짜면 나머지는 다 변환해주겠다! 그런 느낌의 프로그램이더라고요. 저의 상황에서 Vue 클라이언트를 사용하는 게 맞는지, 아니면 그냥 처음 가르쳐주신 대로 스크립트를 넣는게 맞는지 궁금합니다. (그리고 너무 알못 질문 같지만 Vue Cli를 사용하면 AWS EC2같은 실서버에도 이런걸 전부 설치하는지 궁금해요.)
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔의 싱글톤 관리 방식
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 에3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 김영한님 스프링 강의를 듣다가 궁금한점이 생겼습니다. 컴포넌트 스캔 방식이 아닌 직접(수동) 스프링 빈을 등록하는 방식은 설정 정보 클래스에 @Configuration 어노테이션이 붙어있지 않으면 싱글톤으로 관리가 안 되는 걸로 알고 있습니다. 그래서 @Configuration를 붙이면 그 설정 클래스를 CGLIB 라이브러리가 확장시켜서 싱글톤으로 관리하는 건데 이렇게 하면 설정 클래스 이름에 CGLIB가 붙죠 컴포넌트 스캔 방식을 활용하면 @Configuration을 안 붙여도 컴포넌트 붙은 클래스들을 자동으로 스캔해서 싱글톤으로 관리 해주는걸 확인했습니다. 그래서 @ComponentScan 이 붙은 클래스 또한 Test에서 실제 사용하는 클래스 이름을 꺼내보면 CGLIB 이름이 붙은 클래스일 거라고 예상을 했는데 예상과 다르게 보통 클래스들과 이름이 동일했습니다.제 추측은 @Component 어노테이션이 CGLIB라이브러리와 같은 역할을 하는 걸까? 라는 생각을 했는데 실제 컴포넌트 스캔 방식의 싱글톤 유지 방식은 어떤 걸까요?
-
해결됨비전공자도 이해할 수 있는 AWS 입문/실전
도메인 환불 내용 링크 공유 드립니다!
처음에 .com으로 생성했다가 비용이 비싸서 .link로 다시 구매했습니다. 도메인 삭제만 하면 자동으로 환불 되는줄 알았는데 아니였더군요 ㅠㅠ 도메인 환불은 한번만 되나봐요!!제가 참고해서 환불 진행한 블로그 링크 공유드립니다! https://yoonminlee.com/route-53-domain-cancellation-guide#2