묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 의존성 주입 코드 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]13:10 부터 시작하는 DI에 관한 코드 내용중 질문있습니다.14:15 강의에 따르면MemberService 클래스에서 만든 MemoryMemberRepository 와 MemberServiceTest 에서 new 하여 만든 것은 MemoryMemberRepository는 각각 다른 인스턴스겠죠. 같은 레포지토리여야 하는데 다른 레포지토리니까 추후에 문제가 생길 수 있다구 하시구요.여기까지는 강의대로 이해가 갑니다.그런데 이에 해결책으로 작성하신 의존성 주입 코드가 잘 이해가 가지 않습니다.public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } ... }class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } ... }이렇게하면 매 테스트 실행하기 전에 beforeEach()가 실행되고 MemoryMemberRepository를 각각 생성하고 MemberService에 넣어준다고 하시는데요,제가 여기서 이해가 안가는건.. 이것도 결국 매번 MemoryMemberRepository를 생성하는 것이니 전부 다른 인스턴스로 생성 되는 것 아닌가요? 그러니까 지금 문제가 MemberService 클래스와 MemberServiceTest 에서 사용하는 MemoryMemberRepository가 원래는 하나로 사용 해야하지만 각각 new로 생성하여 다른 인스턴스로 사용하여 문제가 되기에 그것을 해결하려는 것이잖아요? 그런데 이번에 생성자를 통해서 MemoryMemberRepository를 매번 생성하여 넣는 것도 결국 또 각각의 인스턴스를 생성하여 넣는것 아닌가요? 이해가 잘 안가요ㅠ
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
12.16 Viewer.css background-color 질문
css를 적용하였는데도 감정 이미지의 background가 적용이 되지 않는데 잘못된 것이 있을까요??.Viewer > section{ width:100%; margin-bottom: 100px; display: flex; flex-direction: column; align-items: center; text-align: center; } .Viewer > section > h4{ font-size:22px; font-weight: bold; } .Viewer .emotion_img_wrapper{ width:250px; height:250px; border-radius: 5px; display:flex; flex-direction: column; align-items: center; justify-content: space-around; color: white; font-size: 25px; } .Viewer .emotion_img_wrapper_1{ background-color: rgb(100,201,100); } .Viewer .emotion_img_wrapper_2{ background-color: rgb(157,215,114); } .Viewer .emotion_img_wrapper_3{ background-color: rgb(253,206,23); } .Viewer .emotion_img_wrapper_4{ background-color: rgb(253,132,70); } .Viewer .emotion_img_wrapper_5{ background-color: rgb(253,86,95); }
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
14장 출력 cycle의 latency관련 질문
14장에서 시뮬레이션을 했을 때 o_power_of 8과 i_value의 파형을 비교해보면 latency가 3cycle이 아니라 2.5cycle로 나오는데 왜 그런지 궁금합니다
-
미해결처음 만난 리액트(React)
상태가 업데이트될때 컴포넌트 최상단의 console.log 코드가 두번 실행되는 이유가 궁금합니다.
import React, { useEffect, useState } from "react"; import useCounter from "./useCounter"; const MAX_CAPACITY = 10; export default function Accommodate() { const [isFull, setIsFull] = useState(false); const [count, increaseCount, decreaseCount] = useCounter(0); console.log(count,"rendor Accommodate", new Date().getMilliseconds()) useEffect(() => { console.log("===================="); console.log("useEffect() is called."); console.log("isFull:", isFull); }); useEffect(() => { setIsFull(count >= MAX_CAPACITY); console.log("Current count value:", count); }, [count]) return <> <button onClick={increaseCount}>입장</button> <button onClick={decreaseCount}>퇴장</button> {isFull && <p>정원이 가득 찼습니다.</p>} </>; }안녕하세요! 실습 진행 중에 이해가 안되는 부분이 있어 질문드립니다!우선 컴포넌트 내부에 포함된 state가 변경될때 컴포넌트가 재렌더링 되는게 맞을까요?그게 맞다면, 다음과 같은 순서로 실행된다고 생각했는데요.입장 버튼 클릭increaseCount가 실행되면서 count 상태가 변경됨Accommodate 컴포넌트가 재렌더링첫번째 useEffect함수가 실행두번째 useEffect함수가 실행 그리고 위 순서에 따라 console에는 다음과 같이 출력될 것이라고 예상했는데, 실제로는 캡쳐화면처럼 출력되더라구요.어떤 이유로 컴포넌트 최상단에 있는 console.log(count,"rendor Accommodate", new Date().getMilliseconds()) 코드가 두번 실행되는 건지 이해가 안됩니다.ㅠ제가 놓치고 있는 부분이 많은 것 같은데 어디서 부터 놓친건지 잘 정리가 되지 않네요!ㅠㅠ0 'rendor Accommodate' 991 ==================== useEffect() is called. isFull: false Current count value: 0 1 'rendor Accommodate' 430 ==================== useEffect() is called. isFull: false Current count value: 1
-
해결됨[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법
IntelliJ IDEA, Git 설치 및 스프링부트 설정
본 강의는 끝까지 잘 따라왔다가 마지막에 실행해보니 error 가 생기며 끝나는데요.이후 강의가 끝나버려서 문의드리는데요. 어떤 문제일까요? 아, IntelliJ IDEA 사용중에 @EnableFeignClients 입력후 알트 +엔터 누르면import calss가 안생기던데 왜그럴까요?한국어 버전을 써서 그런건가요? 한참 헤메다가 어쩌다 노란색으로 처리가 되며 완성은 됐는데, 결과는 에러가 나서..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring은 무조건 MVC인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 여기까지 강의가 MVC에 관한 내용인데..이게 디자인 패턴같은데 Spring은 무조건 MVC를 사용하나요? 아니면 다른 디자인 패턴도 사용을 하나요?MVVM 같은거요
-
미해결
https://192.168.56.30:30000/#/login 안됨
cat ~/join.sh을 하니 다음과 같은 내용이 나왔습니다kubeadm join 192.168.56.30:6443 --token 5v22wu.td05ps0r0p1ssinz --discovery-token-ca-cert-hash sha256:396c7e7a04e0cde77225aa42baf35beaeb8c4d9ee9006f91e8fe06750b12ddbb 그리고 이를 다른 클러스터에 붙여넣은 후 확인하면이렇게 나옵니다.이후https://192.168.56.30:30000/#/login해당 링크로 접근하면 사이트에 연결할 수 없는데요https://kubetm.github.io/k8s/02-beginner/cluster-install-case7/ 무언가 이슈가 있을까요?
-
해결됨공업수학을 위한 중학, 고교수학
61강 부분적분 파트에 오류있는것 같습니다.
61강 부분적분 파트에 오류있는 것 같습니다.25:00정도에 π/4가 π/2로 바뀌네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
part1~9 모두 완료하였습니다.
루키스님 강의들 보게 된 지 꽤 오래 되었군요.2024년 1월 경인가 쯤에 언리얼 블루 프린트 강의로 처음 시작하게 되었고 이후 게임프로그래머 올인원(C++)을 보고 그 다음에 유니티 시리즈를 쭈욱 봤습니다. 전공도 아니고 개발 경험도 없어서 그런가 와 너무 어렵더라구요. 어떤 것들은 나름 무난무난 했는데 파트4 서버 부분이나 패킷 부분이나 클라이언트 쪽 UI 자동화 하는 부분이나 데이터베이스 연동하는 부분이나.. 멘붕 오는 순간들이 한 두 번이 아니었던 것 같습니다. 한 번 보면 이해가 잘 되지 않아 두 번 세 번 보고, 파트 9까지 다 수강하고 아 이제 만들어 봐야겠다! 했는데 또 기억이 가물가물해서 다시 보고,,, 아무튼! 다시 한 번 또 복습을 하고 나니 대충 어떤 느낌으로 개발을 하면 될 지 느낌적인 느낌으로는 알 것 같습니다. 이제는 혼자서 만들어 보고 헷갈리거나 모르는 부분들이 있으면 다시 강의들 참고하면서 인내심을 가지고 프로젝트 진행해 보려고 합니다. 완강하기 쉽지는 않았지만 루키스님 강의가 워낙 고퀄리티여서 많은 것들을 배우고 가는 것 같습니다. 올해 출시를 목표로 한 번 달려 보도록 하겠습니다. 건승하십쇼!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
완벽한 프론트엔드
고농축 프론트엔드 강의와 완벽한 프론트엔드 강의 커리큘럼이 차이가 많이 날까요?추가된 강의 공지는 읽어봤는데 기존의 기본적인 리액트 내용에서 업데이트가 많이 되었다던가 등 차이가 많이 나는지 궁금합니다.
-
해결됨[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법
그누보드 설치시 DB 연결 실패
강의에서 저만 안보이는지 모르겠지만 그누보드 설치 장면이 잘린 거 같습니다... XAMPP에서 ADMIN을 누르면 강제로 저기로 넘어가는데 강의에선 저 장면이 없거든요. 포트번호 수정에서 갑자기 넘어가는거 봐서 그 장면 삽입하시면서 영상이 잘린 게 아닐까 생각이 드네요... 그래서 스스로 설치하고 있는데 이 장면에서 HOST를 localhost:3307로 해도, 127.0.0.1로 해도, 127.0.0.1:3307로 해도 오류가 납니다. 지금 제 컴에서 mysql 실행이 mysql -uroot -p로는 안되고 강제로 TCP/IP 연결 명령어를 추가해야만 되는 상황인데 이 문제와도 연관이 있을까요
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
질문 있습니다.
안녕하세요. API 개발을 하다가 클라이언트의 IP를 가져와서 사용 할 일이 생겼습니다.간단하게 Request 객체의 ip 값을 가져와서 사용하려고 하는데, 저희 클라이언트가 NextJS의 SSR을 사용해서 렌더링을 하고있어서 브라우저에서 요청을 하면 NextJS 서버 -> NestJS 서버로 요청이 들어가 IP가 요청을 보낸 유저의 IP가 아닌 배포하고있는 서버의 IP로 들어오고 있습니다. 이 문제는 user-agent 값 확인을 통해서 원인을 파악 할 수 있었습니다. 문제를 해결하기 위해 NextJS에서 axios요청을 할 때, 헤더에 클라이언트의 원본 아이피를 가져와서 달아주고 서버에서 해당 헤더의 값을 가져와서 사용하고자 했습니다.생각처럼 됐으면 좋았겠지만, 왜인지 서버에서는 계속 배포하고있는 서버의 IP를 가져오고 있는 상태입니다. 커스텀 헤더에 달아준 값을 확인해봐도 서버 IP가 찍히고 있는데요. 클라이언트 로그에서는 또 원본 IP가 잘 찍히고 있습니다.Nginx를 사용중인데 Nginx에서 문제가 생기고 있는건지, 어디가 잘못된건지 감이 안와서 질문 남깁니다. 어떻게 하는게 좋을까요? 추가로, 클라이언트의 원본 IP를 받아오는 다른 방법이 있을까요?감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
콤보 어택
수업시간에 배운걸 토대로 콤보 어택마다 데미지를 다르게 구현하고 싶어서 코드를 작성하고 있습니다.float AOLCharacterBase::TakeDamage(float DamageAmount, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (CurrentComboAttack == 1) { Hp = FMath::Clamp(Hp - DamageAmount, 0.0f, MaxHp); // 체력 업데이트 UE_LOG(LogTemp, Warning, TEXT("Damage1 = %f"), DamageAmount); } else if (CurrentComboAttack == 2) { Hp = FMath::Clamp(Hp - DamageAmount*2, 0.0f, MaxHp); // 체력 업데이트 UE_LOG(LogTemp, Warning, TEXT("Damage2 = %f"), DamageAmount*2); } else if (CurrentComboAttack == 3) { Hp = FMath::Clamp(Hp - DamageAmount * 3, 0.0f, MaxHp); // 체력 업데이트 UE_LOG(LogTemp, Warning, TEXT("Damage3 = %f"), DamageAmount * 3); } UE_LOG(LogTemp, Warning, TEXT("Hp = %f"), Hp); // 체력이 0 이하인 경우 if (Hp <= 0.0f) { Dead(); // 죽었으니 함수 호출 UE_LOG(LogTemp, Error, TEXT("Dead!")); } return DamageAmount; }TakeDamage에서 CurrentComboAttack 값에 따라 데미지를 다르게 하려고 위 코드와 같이 작성을 했는데 로그도 전혀 나오지 않습니다. 콤보 어택 데이터에 데미지 값을 추가하여 값을 가져오면 콤보마다 데미지가 다른게 잘 되는데, 위 코드와 같이 작성하면 왜 안되는지 궁금합니다.. CurrentComboAttack은 전역변수로 선언되어있습니다.
-
미해결
강의 리스트
안녕하세요. 강의 리스트를 정기적으로 받아보고 싶은데가능한 부분일까요? 확인 부탁드립니다.감사합니다.
-
미해결
vscode자동완성이 갑자기 안됩니다
자동완성이랑 오류코드부분 알려주는거(intellisense)가 작동을 갑자기 안합니다.혹시 아래에 로딩바가 계속 돌아가고있는것 때문인가요? ㅠㅠ 도와주세요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
nohup.out 관련 문제
상단 디렉토리에 nohup.out 은 만들어졌는데 사이트에 접속도 안되고 nohup.out 파일 확인도 조금 이상합니다. [ec2-user@ip-172-31-39-4 ~]$ vi nohup.out[ec2-user@ip-172-31-39-4 ~]$ cat nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar[ec2-user@ip-172-31-39-4 ~]$ tail -f nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar이렇게 나옵니다. 혹시 몰라 위에있는 코드들도 첨부합니다. BUILD SUCCESSFUL in 2s1 actionable task: 1 executed[ec2-user@ip-172-31-39-4 library-app_complete]$ lsREADME.md build.gradle gradle gradlew gradlew.bat settings.gradle src[ec2-user@ip-172-31-39-4 library-app_complete]$ cd ..[ec2-user@ip-172-31-39-4 ~]$ lslibrary-app_complete[ec2-user@ip-172-31-39-4 ~]$ ps aux | grep javaec2-user 171942 1.8 34.0 2110252 330692 ? Ssl 06:40 1:07 /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/ec2-user/.gradle/wrapper/dists/gradle-7.5-bin/f1w0cc9nuo0eivz97x2xlu9sv/gradle-7.5/lib/gradle-launcher-7.5.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.5ec2-user 175460 0.0 0.2 222316 2032 pts/0 S+ 07:40 0:00 grep --color=auto java[ec2-user@ip-172-31-39-4 ~]$ ^[[200~ nohup java -jar library-app/build/libs/library-app-0.0.1-SNAPSHOT.jar --spring.profile-bash: $'\E[200~': command not found[ec2-user@ip-172-31-39-4 ~]$ lslibrary-app_complete[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-ap_bbbbbbbbbbu^Cd/libs/library-app-0.0.1-SNAPSHOT.jar -sspring.profile s.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-ap_bpppp/^Cild/libs/library-app-0.0.1-SNAPSHOT.ja.profile s.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohu juuupnupoupgup upbuupuuup^Cava -jar library-app_compleate/build/libs/library-app-0.0.1-.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-app_complete/build/libs/library-app-0.1-SNAPSHOT.jar --spring.profiles.active=dev &[1] 175532[ec2-user@ip-172-31-39-4 ~]$ nohup: ignoring input and appending output to 'nohup.out'[1]+ Exit 1 nohup java -jar library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev[ec2-user@ip-172-31-39-4 ~]$ v1. nohup.out-bash: v1.: command not found[ec2-user@ip-172-31-39-4 ~]$ vi nohup.out[ec2-user@ip-172-31-39-4 ~]$ cat nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar[ec2-user@ip-172-31-39-4 ~]$ tail -f nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar vi nohup.out 를 했을 때는 E325: ATTENTIONFound a swap file by the name ".nohup.out.swp" owned by: ec2-user dated: Mon Feb 24 07:07:21 2025 file name: ~ec2-user/nohup.out modified: YES user name: ec2-user host name: ip-172-31-39-4.ap-northeast-2.compute.i process ID: 173572While opening file "nohup.out" dated: Mon Feb 24 07:43:35 2025 NEWER than swap file!(1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution.(2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r nohup.out" to recover the changes (see ":help recovery"). If you did this already, delete the swap file ".nohup.out.swp" to avoid this message.Swap file ".nohup.out.swp" already exists![O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: 이렇게 나옵니다.
-
미해결[C#/.NET 7.0]어서와, WPF는 처음이지?
코드 구문 에러 떠서 문의드립니다.
DashboardViewModel에 일관성 없는 액세스 가능성으로 구문 오류 떠서 문의드립니다. 뭐가 잘못된 것일까요..?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
테스트 파일 exit_coe_1, time_limit_exceeded 질문
환경은 윈 11입니다.2번 문제의 경우이런 식으로 exit_code_1이 뜹니다.소스코드는int main() { int n, m, sum = 0; cin>>n>>m; for (int i = n; i <= m; i++) { sum += i; if (i == n) { cout<<i; } else { cout<<" + "<<i; } } cout<<" = "<<sum; return 0; }이렇게 짰습니다.직접 입력하는 테스트 시에는 동일한 문자로 보입니다.3번 문제의 경우이런식으로 time_limit이 걸립니다.소스코드는int main() { int n = 0; int sum = 1; cin>>n; cout<<1; for (int i = 2; i <= n / 2; i++) { if (n%i == 0) { sum += i; cout<<" + "<<i; } } cout<<" = "<<sum; return 0; }이런 식으로 짰습니다.두 문제 간단한 문제라 모두 오류가 나거나 시간 문제가 일어날 이유는 없다고 생각합니다.혹시 비슷한 상황 겪으신 분 계시거나 강사님이 해결 방법 아실까요? 1번 문제에선 테스트 통과 잘된 것으로 보아 string쪽에서 문제가 있을 것으로 예상됩니다.
-
미해결실무자가 알려주는 CANoe - CAPL과 Panel 기본 사용법
CAPL 스크립트 비공개
CAPL 스크립트를 만들어서 사용중입니다.혹시 코딩 내용을 비공개 상태로 공유하는 방법에 대해서 문의드립니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 질문입니다.
학습관련 질문을 남겨주세요! 상세히 작성주시면 더 좋아요 🙂아래 질문이랑 차이가 있습니다.멀티모듈 extenal에서 kakao-client new 모듈을 만들때 모듈은 생성이 안되고 iml파일과 src폴더만 생성입니다. 이럴 때는 어떻게 해야하나요? 그리고 그림처럼 모듈이 없는데 이미 프로젝트내에서 모듈이 존재한다고 합니다.시도방법:캐시삭제clean 후 build프로젝트 종료후 재시작Import Module 추가settings.gradle에서 아래 글자 추가 하고 멀티모듈 생성했는데 iml 파일 만들어집니다.아래글자 주석 처리했는데도 똑같은 현상 나옵니다.include 'external:kakao-client'파일은 메일로 보냈는데 확인 부탁드립니다.