묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
window.event 문제가 있어요
섹션2. 훈훈한 Javascript에서 JS로 HTML태그 생성 강의 듣고 있습니다. 강의 초반부터 window.event.keyCode === 13을 조건문으로 활용하여 엔터키 입력을 감지하는 코드가 있는데.. 저 같은 경우 event 부분에 가로줄이 그어지면서마우스를 올려 문구를 확인해보면'event' is deprecated. 라는 메시지가 나옵니다. 경고 메시지만 출력되고 작동에 이상이 없다면 상관이 없지만,키 입력 시 마다 브라우저의 콘솔창에 undefined가 뜨고 엔터키 또한 마찬가지입니다. 구글링을 좀 해보니, event를 이용한 키 코드 체크를 하는 것이 권장되지 않는다고 하는데.. 다른 방법이 있나요? 구글링으로 찾은 포스팅들은 이해가 되지 않아서.. 도와주세요.
-
미해결Next + React Query로 SNS 서비스 만들기
[react-query] queryClient.prefetchQuery 사용목적 구분이 헷갈립니다.
message페이지 수정하기편에서 queryClient.prefetchQuery를 사용했는데 다른 컴포넌트에서 queryClient. prefetchQuery를 사용할때는 HydrationBoundary컴포넌트로 감싸고 state에 fetching 해온 데이터를 주입시켜서 사용했는데 여기서는 왜 아무곳에서도 사용하고 있지 않은건지 궁금합니다.그리고 HydrationBoundary컴포넌트로 감싸고 state에 fetching해온 데이터를 주입시켜서 사용하고 있는곳들도 자식 컴포넌트에서 또 useQuery를 사용하는데 부모 HydrationBoundary에 접근해서 데이터를 사용하지 않고 useQuery로 fetching해와서 사용하는건지 궁금합니다. 저는 여태 HydrationBoundary가 fetching해온 데이터를 공유해주는 ContextAPI같은 컴포넌트라고 생각했었습니다. 자식컴포넌트에서 일일이 useQuery로 데이터를 가져오는거면 상위에 HydrationBoundary컴포넌트 안만들어줘도 되는거 아닌가요?
-
해결됨
스프링 시큐리티 비밀번호 암호화 시 NullPointerException 에러
스프링 시큐리티 사용해서 회원가입을 구현중입니다.PasswordEncoder를 사용해서 클라이언트에서 받은 비밀번호를 SercurityConfig에 전달해서 암호화를 해야하는데 함수 반환값이 계속 null로 나옵니다.클라이언트에서 입력한 값은 정상적으로 들어오는 것을 확인했습니다.뭐가 잘못됐는지 이틀동안 고치고 있는데 안되네요....아래는 순서대로 UserService, SecurityConfig입니다.다른 분들 것들도 찾아보면서 해결해보려고 UserService에서 PasswordEncoder부분에 @Autowired도 선언해봤고 class 제일 바깥 부분에 @AllArgsConstructor도 선언해봤지만 도저히 안되네요ㅠㅠ 도움 부탁드립니다.
-
해결됨만들면서 배우는 리액트: 컴포넌트 설계와 리팩토링
handler 정의시 const 로 정의하는것과 function으로 정의하는것 차이
안녕하세요, 섹션2 "할 일 저장 기능 구현" 강의를 보다가 function으로 handler를 정의하는것과const 로 정의하는것과 동작상에는 차이가 없는것 같은데,const로 정의하는 특별한 이유가 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ
선생님 글꼴 및 색에서 기본값 사용하신다고 다른 질문 게시판에서 답변해주셨는데 저도 기본값 사용 중이지만 달라서 질문 드립니다... 예를 들면 강의에선 public Knight Clone이 순서대로 파랑 노랑 주황인데제 것은 파랑 민트 노랑 이런 식입니다,,,, 옵션-환경-글꼴 및 색에서 c#은 안 보이고 일반 텍스트만 색깔 변경이 가능하고 이렇네요,,,,,,
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional AOP 구현 질문
안녕하세요 영한님,@Transactional을 썻을때 스프링에서 구현해주는 AOP Proxy의 rollback시 동작순서에 궁금한점이 있어 질문드립니다. @Transactional 애노테이션이 붙은 method에서 예외가 발생해서 proxy구현체에서 롤백할시에 transaction 롤백 요청후 catch한 exception을 다시 던져주나요? 물론 AOP 구현체는 아래보다 복잡하겠지만, 아래와 비슷하게 동작하는지 궁금합니다.public Object implementTransactionalAOP(ProceedingJoinPoint pjp){ TransactionStatus tx = txManager.getTransaction(new DefaultTransactionAttribute()); try { Object ret = pjp.proceed(); txManager.commit(tx); return ret; }catch (RuntimeException e){ txManager.rollback(tx); throw new RuntimeException("",e); } }제가 괜히 코드를 집어넣어서 헷갈리게 해드리는것 같지만, 질문의 요점은 예외가 터졌을때 rollback만 요청해주는지 아니면 예외를 잡아서 같은예외를 다시 던져주는지가 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하십니까 언리얼 엔진과 자체제작 서버와의 연동에 있어 궁금한점이 있어 글 작성합니다.
제가 수업을 통해 자체제작 iocp서버를 제작한 상황에서 언리얼 클라이언트와 연동하는 상황에서 제가 제 노트북에서 서버를 열고 클라를 접속하는 부분에서는 문제가 발생하지 않으나, 제 노트북에서 서버를 열고 다른 노트북에서 ip와 포트번호를 활용해 접속하니 접속은 되나 중간중간 잘못된 패킷을 보내는 등 접속이 끊기는 상황도 발생하고 있습니다. 혹시 언리얼에서 외부에 접속을 할 시 따로 설정해야하는 것등이 있는 건지 궁금합니다.
-
미해결만들면서 배우는 리액트: 컴포넌트 설계와 리팩토링
질문있습니다 (SSR 빌드)
안녕하세요, 강의 첫부분 프로젝트 생성 강의 중에 궁금해서 질문남깁니다. React는 이제 install 에는 next.js (SSR)과 같은 기법으로 프로젝트 생성하는 방법만 제안하는것인가요?홈페이지에 떡하니 윗부분에 있길래 그런생각이 들었습니다. 기존 CSR같은 방법도 홈페이지 메뉴얼에 있을법한데, 왜 next.js를 default (젤 윗부분)에 있고, CSR 방법은 메뉴얼에 없는지 궁금합니다. 참고로 svelte 도 잠시 공부해봤는데, sveltekit이란 빌드도구도 기본 SSR로 되도록 동작하는거같더라고요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-P 자바 기저조건 질문
선생님, 강의 잘 듣고 있습니다! 다름이 아니라 혹시 기저조건에if (price >= answer) { return; }해당 조건을 추가해주지 않으신 이유가 있을까요?해당 조건 없이도 시간복잡도 관련해서 영향이 적기 때문일까요..?감사합니다! 아래는 저의 답안입니다!public class Main { static int n, answer = Integer.MAX_VALUE; static int[][] arr; static boolean[][] visited; static Map<Point, Integer> map = new HashMap<>(); static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); arr = new int[n][n]; visited = new boolean[n][n]; for (int i = 0; i < n; i++) { String[] s = br.readLine().split(" "); for (int j = 0; j < n; j++) { int price = Integer.parseInt(s[j]); arr[i][j] = price; map.put(new Point(i, j), price); } } go(0, 0); System.out.println(answer); } private static void go(int count, int price) { if (count == 3) { answer = Math.min(price, answer); return; } for (int i = 1; i < n - 1; i++) { for (int j = 1; j < n - 1; j++) { Point point = new Point(i, j); if (check(point)) { go(count + 1, price + flower(point)); wither(point); } } } } private static void wither(Point point) { visited[point.x][point.y] = false; for (int i = 0; i < 4; i++) { int ny = point.x + dy[i]; int nx = point.y + dx[i]; visited[ny][nx] = false; } } private static int flower(Point point) { visited[point.x][point.y] = true; int temp = arr[point.x][point.y]; for (int i = 0; i < 4; i++) { int ny = point.x + dy[i]; int nx = point.y + dx[i]; visited[ny][nx] = true; temp += arr[ny][nx]; } return temp; } private static boolean check(Point point) { for (int i = 0; i < 4; i++) { int ny = point.x + dy[i]; int nx = point.y + dx[i]; if (ny < 0 || nx < 0 || ny >= n || nx >= n || visited[ny][nx]) { return false; } } return true; } }감사합니다!!
-
해결됨피그마 아토믹 컴포넌트 디자인 시스템으로 MVP 만들기
5분 22초부터 나오는 부분은 강의 교안 없네요?
자세히 좀 보고싶은데 제공 안되는건가요?
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
[질문] 3. '다양한 데이터 집계 _ 심각할 수 있는 집계 함수와 NULL값의 관계' 수업 내용 질문
3. 다양한 데이터 집계 _ 심각할 수 있는 집계 함수와 NULL값의 관계 수업에서8:19 ~ 8:25쯤 강사님께서"나중에 emp_id가 primary key가 아니고 emp_id에 null값이 들어갈 수 있는 가능성이 있다."라고 말씀하셨는데, 이해가 잘 안 가서 질문드립니다.emp_id의 경우, primary key인데 나중에는 primary key가 아닐 수 있다는 것이 무슨 말인지 이해가 안 됩니다. 감사합니다! :)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
For-each문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]문제를 풀 때 for문 대신 for each문을 사용하였는데 구현이 안 됩니다 이유가 있을까요? 사용자 입력값은 받을 수 있는데 배열값을 확인하면 [0, 0, 0, 0, 0]으로 뜹니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
send 와 recv 관련하여 질문이 있습니다!
클라입장에서 Connect를 통해 연결을하고 연결된 소켓에 Send를 하게되면 서버입장에서 Recv하게되는부분에서 1.public void Start(Socket socket){ _socket = socket; _recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted); _recvArgs.SetBuffer(new byte[1024], 0, 1024); _sendArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnSendCompleted); RegisterRecv();}이부분에서 RegisterRecv를 하나만 써 준 것이 낚싯대에 비유하여 접근을 하고있을시 다른쪽에서 접근을 못한다고 하셨는데. 이게 구조적으로 그렇게 짜여진 것인가요??+ 또 RegisterRecv() 이것을 여러게 써주면 lock을 걸어야 하는건가요 ?? 2.그리고 OnSendCompleted 에도 lock을 건 이유가_sendArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnSendCompleted);이 부분에서 중복해서 들어오는 것을 방지하기 위해 거셨다고 하셨습니다. 그럼 Recv의_recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted);이 부분은 어떻게 다른건가요?? 이 부분은 제 나름대로 이해하려고 예를 든 부분입니다. 제대로 이해했는지 봐주시면 감사합니다!Send와 Recv를 게임의 1:1 채팅에 적용하면 A유저와 B 유저가 1:1 채팅을 하고있는 중에 A유저가 채팅을 보내면 클라에서 Send를 하고 서버에서 Recv를 해 받고 그걸 서버 Send를 통해 B유저 클라에 보내준다 (이 부분에서 서버 Send는 1:1하고있는 B에만 가야하니까 lock을 검 : 또 다른 유저(클라)가 보낸 채팅? 들이 섞이지않게... )
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
실습환경 오류 발생시 봐주세요!
mssql 호환 문제https://support.helpspot.com/index.php?pg=kb.page&id=13해당 사이트 ntwdblib.dll Version 항목의 here 버튼 눌러서파일 다운로드 후에 APM_SETUP\Server\PHP5 경로에덮어씌우면 됩니다. Oracle 연동 문제강의에서 나온 대로 32비튼 드라이버를 설치했을 때도 호환이 안 될 경우 2가지 방법이 있습니다.드라이버 설치 없이 진행(저같은 경우 드라이버 없이 하니까 되었음)드라이버가 강의에서 나온 것은 19.x인데 21.x가 현재 최신 버전입니다. 하지만 구성은 다르므로 19.x로 다운하시면 연동 될겁니다. Dbeaver 연동 문제MySQL, MSSQL, Oracle 모두 정상적으로 설치가 되셨고connect.php를 해서 example 코드가 정상적으로출력이 되는데 Dbeaver에서 SSL 인증서 문제로안 되는 경우가 있습니다.이럴 경우 왼쪽 상단 [파일] > [설정] > [연결] 탭을 클릭합니다.연결 탭 클릭 후 오른쪽 상단의 Global settings 클릭다시 [연결] 탭 클릭중요한건 연결 탭 하위항목이 아닌 연결이라는 글씨의탭을 클릭하는 겁니다.그러면 Security 항목에서 Use Windows trust store 항목이 있는데 체크가 되어있을 겁니다.해당 항목을 체크표시 풀고 종료 후 재실행 하면DBMS와 연동될 겁니다. 즐거운 공부 되시길 바랍니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
onBackPressed 강의와 다르게 동작합니다
package com.sowon.backbuttonex import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast class MainActivity : AppCompatActivity() { private var isDouble = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onBackPressed(){ super.onBackPressed() Log.d("MainActivity", "backbutton") if(isDouble == true){ finish() } isDouble = true Toast.makeText(this, "종료할거면 더블 클릭!", Toast.LENGTH_LONG).show() android.os.Handler().postDelayed(Runnable { isDouble = false }, 2000) } }강의 보면서 위와 같이 코드를 작성했는데 강의에서는 뒤로가기 버튼을 2초 내에 2번 눌러야 메인화면이 나오는데 저는 한번만 눌러도 메인화면이 나옵니다..!
-
미해결스프링 핵심 원리 - 기본편
OrderService의 createOrder()의 매개변수 타입 질문
OrderService.java의 createOrder()에서 memberId의 타입은 wrapper이면서 itemPrice의 타입은 기본형으로 하신 이유가 궁금합니다.제가 생각한 이유는 다음과 같습니다. (이글과 비교해서 작성하였습니다)클라이언트가 '회원가입하기' 버튼을 눌렀을 때 Member 객체가 생성되는데, 이때 memberId는 클라이언트가 정하는 것이 아닌 서버 내부적으로 정해지는 값이다. 따라서 Member 객체가 생성되는 시점에서 memberId는 정해지지 않았기 때문에 null이 들어가는 것이 적절하다. 즉, Member의 memberId에는 null이 들어있을 가능성이 있기에 createOrder()의 매개변수 타입도 long이 아닌 Long으로 하였다.반면, 상품 등록을 할 때 상품 가격은 반드시 입력되어야 하는(required) 필드이다. 따라서 '상품 등록하기' 버튼을 눌렀을 때 Item 객체가 생성되는데, 이때 상품 가격(itemPrice) 필드에는 값이 반드시 들어갈 것이기에 itemPrice 필드에 null이 저장된 Item 객체는 존재하지 않을 것이다. 따라서 Integer가 아닌 int 타입인 것이다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열의 메모리값 할당에 관한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]배열을 생성할때 int[] students1 = {90, 80, 70, 60, 50}; 이러한 형식이 있다면 {90, 80, 70, 60, 50}이 부분은 힙 영역에 생성되고 int[] students1 이 부분은 스택 영역에 생성되서 스택에 있는 레퍼런스값으로 힙 영역 메모리에 접근한다고 이해 했습니다. 근데 이 부분을 테스트 하던 도중 주소 값라고 말해주신 [I@b4c966a 이러한 부분이 매 실행마다 바뀌지 않았다는 것 입니다. c언어를 공부 했을때는 매번 주소값이 바뀌었는데 java에서 찍어보니 매 실행마다 같은 값이 나오는걸 확인했습니다. 배열의 길이를 바꿔서 찍어보고, 할당 순서도 바꿔봤는데도 같은 값이 나와서 따로 찾아보니깐 hash코드의 값이라는 말이 있어서 https://varoa.net/jvm/java/openjdk/biased-locking/2017/01/30/hashCode.html 이곳에서 찾아보니 이런 말이 있어서 더 헷갈립니다. cs랑 자바에 관해 지식이 부족해서 잘 이해 했을지는 모르겠지만 [I@b4c966a 이게 hash코드로 만들어진거고, 그 hash코드는 메모리 주소랑 상관이 없는건가요? 지금 대체 저 [I@b4c966a 값이 어떻게 만들어진거고, 왜 타입, 자료형, 크기, 선언 순서를 바꿔도 이 값은 변하지 않는건가요
-
해결됨실무에 바로 적용하는 스토리북과 UI 테스트
Interaction 테스트 강의 설치 문제
안녕하세요. 이전글에 이어서 Interaction 테스트를 하는 과정에서 발생한 이슈 공유드립니다. [명령어가 다른 문제]확인해보시면 아시겠지만, Interaction 테스트를 위해 강의에서 설치한 명령어와 현재 공식문서에 작성되어있는 명령어가 다릅니다.강의: @storybook/jest, @storybook/testing-library문서: @storybook/test설치항목이 줄어들었지만, 최신화된 공식문서의 내용을 따라가도 정상적으로 동작함을 확인했습니다. [스토리북 실행시 에러 발생]No matching export in "global-externals:@storybook/components스토리북을 실행하면 상단에 작성한 문제가 발생할 수 있는데, 저의 경우에는 .nodemodules 디렉토리를 삭제하고 @storybook/components @storybook/addons먼저 설치한 후 다시 공식문서에서 제공하는 명령어를 통해 설치하여 해결했습니다. 하단의 링크를 참고하시면 됩니다.https://github.com/storybookjs/storybook/issues/24906 (+추가적으로 @storybook/vue3 를 설치해야 Meta, StoryObj를 불러올 수 있습니다.) [스토리북 테스트 실패]LoginForm 컴포넌트와 스토리를 만드는 과정에서 코드를 복사하여 가져올 때, EmptyForm과 FilledForm의 render 부분을 주석처리해야 테스트가 통과됨을 확인했습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - B 문제 질문있습니다
해당문제를 푸는데 강사님과 같은 방법으로 풀어나가고 있습니다만, 계속 12% 대에서 실패가 뜹니다. 조건문이 문제인가 싶어 dfs함수에 들어가기 전 조건문 세개 중 두, 세번째를 강의 내용처럼 합쳐보기도 하고, 문제를 잘못읽었나 싶어 map의 범위를 50 50 에서 51 * 51로도 해보고 전역변수 선언에 문제가 있나 싶어 변경도 해봤지만 해결이 안되네요. <http://boj.kr/85c9f690f6c64294a29406a816169cc0>
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
class 자동완성 방법은 없을까요?
classnames/bind 를 사용하지 않고, classnames를 사용할 때, typescript-plugin-css-modules 라는 것을 사용하면 위와 같이 현재 scss파일 안에 있는 클래스들이 보여지게 되는데요! classnames/bind 를 통해 cx를 만들어 사용할 때도 클래스들이 자동완성 됐으면 좋겠다고 생각이 들었습니다. 혹시 이것에 대한 방법이 있을까요?