inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

onRightClickTd가 작동을 하지 않습니다.

미해결

웹 게임을 만들며 배우는 React

const onRightClickTd = useCallback( (e) => { e.preventDefault(); if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.NORMAL: case CODE.MINE: dispatch({ type: FLAG_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.FLAG_MINE: case CODE.FLAG: dispatch({ type: QUESTION_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.QUESTION_MINE: case CODE.QUESTION: dispatch({ type: NORMALIZE_CELL, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted] ); return ( <td style={getTdStyle(tableData[rowIndex][cellIndex])} onClick={onClickTd} onContextMenu={onRightClickTd} > {getTdText(tableData[rowIndex][cellIndex])} </td> ); }; export const TableContext = createContext({ tableData: [], halted: true, dispatch: () => {}, }); const initialState = { tableData: [], timer: 0, result: "", halted: true, }; 강의에서 나온대로 적용하여 수업을 듣고 있는데, onRightClickTd가 작동을 하지 않습니다. 콘솔에는 누를때마다 찍히는데, 오른쪽 마우스 이벤트 자체를 인식을 못하는 것 같습니다. 혹시몰라 Td.jsx 컴포넌트 코드를 다 올립니다! 어떤 문제 때문에 작동을 안하는걸까요? import React, { useCallback, useContext } from "react"; import { CLICK_MINE, CODE, FLAG_CELL, NORMALIZE_CELL, OPEN_CELL, QUESTION_CELL, TableContext, } from "./MineSearch"; const getTdStyle = (code) => { switch (code) { case CODE.NORMAL: case CODE.MINE: return { background: "#444", }; case CODE.CLICKED_MINE: case CODE.OPENED: return { background: "white", }; case CODE.QUESTION_MINE: case CODE.QUESTION: return { background: "yellow", }; case CODE.FLAG_MINE: case CODE.FLAG: return { background: "red", }; default: return { background: "white", }; } }; const getTdText = (code) => { switch (code) { case CODE.NORMAL: return ""; case CODE.MINE: return "X"; case CODE.CLICKED_MINE: return "꽝"; case CODE.FLAG_MINE: case CODE.FLAG: return "!"; case CODE.QUESTION_MINE: case CODE.QUESTION: return "?"; default: return ""; } }; const Td = ({ rowIndex, cellIndex }) => { const { tableData, dispatch, halted } = useContext(TableContext); const onClickTd = useCallback(() => { if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.OPENED: case CODE.FLAG_MINE: case CODE.FLAG: case CODE.QUESTION_MINE: case CODE.QUESTION: return; case CODE.NORMAL: dispatch({ type: OPEN_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.MINE: dispatch({ type: CLICK_MINE, row: rowIndex, cell: cellIndex }); return; } }, [tableData[rowIndex][cellIndex], halted]); const onRightClickTd = useCallback( (e) => { e.preventDefault(); if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.NORMAL: case CODE.MINE: dispatch({ type: FLAG_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.FLAG_MINE: case CODE.FLAG: dispatch({ type: QUESTION_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.QUESTION_MINE: case CODE.QUESTION: dispatch({ type: NORMALIZE_CELL, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted] ); return ( <td style={getTdStyle(tableData[rowIndex][cellIndex])} onClick={onClickTd} onContextMenu={onRightClickTd} > {getTdText(tableData[rowIndex][cellIndex])} </td> ); }; export default Td;

  • react
ssi02014 댓글 1 좋아요 0 조회수 254

접근 제어자 관련 질문드립니다.

미해결

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 접근제어자 관련 질문드립니다. 1) AccessData와 AccessInnerMain 내용에서, 외부인 AccessInnerMain에서 AccessData의 innerAccess()가 호출 될 수 있는 것은 public이기 때문입니다. 내부 호출인 inneerAccess()의 내용이 표시될 수 있는 것은 innerAccess()의 필드가 private int privateField라 하여도 public이기 때문에 가능한 것인가요? 또한 강의 자료 중 , innerAccess()메서드는 자신의 private 필드와 메서드에 모두 접근 할 수 있다고 되어 있는데, 여기서 private 필드와 메서드가 무엇을 의미하는 것인지 정확히 모르겠습니다. private int privateField와 privateMethod를 의미하는 것일까요? 아니면 innerAccess()메서드는 자신의 필드가 없고 지역변수가 있는 것인가요? 추가적으로, 아래 코드의 경우, public void innerAccess (){ System. out .println( "내부 호출" ) ; publicField = 100 ; defaultField = 200 ; privateField = 300 ; publicMethod() ; defaultMethod() ; privateMethod() ; } privateField, publicField나 defaultField를 innerAccess의 지역변수라 말해야 할지, AccessData 클래스의 필드라 할지 잘 모르겠습니다. 2) AccessOuterMain에서 import access.a.AccessData;를 해주어도 defaultField,defaultMethod나 privateField,privateMethod가 실행이 안되는 것은 private, default 접근 제어자 그 자체의 정의에 의해서 안되는 것인가요? 이 사례에서 import는 AccessData클래스와 access.a 패키지에 접근하게 해주지만, 관련 클래스 및 패키지의 필드와 메서드가 private이나 default로 되어 있는 이상 접근하지 못하는 것으로 이해하였는데, 맞는지 확인 부탁드립니다.

  • java
  • 객체지향
core12 댓글 2 좋아요 0 조회수 247

화면 설정 문의의 건

해결됨

새싹부터 시작하는 Unity 게임 개발

안녕하세요~ 강의 잘 듣고 있습니다^^ 제 화면에는 카메라(?) 모양하고 가이드라인 그런게 표시가 안되서 불편해서요 어떻게 나오게 하는건지 잘 모르겠습니다. 확인 부탁드립니다~ 감사합니다.

  • C#
  • unity
  • collider
  • .csv
  • json-parsing
코르코르 댓글 2 좋아요 2 조회수 269

util 함수, const를 사용하지 않는 이유가 있을까요 ?

미해결

실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트

'특정 아이템의 수량이 변경되었을 때 값이 재계산되어 올바르게 업데이트 된다' 테스트 실행시 변경점이 있는 price를 '$4,045.00'과 같이 직접 입력하셨는데요. 이 부분을 formatPrice(809*4) 이런식으로 하면 formatPrice에 변경점이 생겼을 때도 테스트가 깨지지 않고 검증할 수 있고, 작성하기 더 쉬워보인다고 생각하는데요. 혹시 그렇게 하지 않은 이유가 따로 있을까요 ? (독립성을 보장한다던가..) 아래의 '특정 아이템의 수량이 1000개로 변경될 경우 "최대 999개 까지 가능합니다!"라고 경고 문구가 노출된다' 테스트의 cartValidationMessages.MAX_INPUT_VALUE 값도 마찬가지입니다 !!

  • javascript
  • react
  • 소프트웨어-테스트
  • vitest
tumblbug.study 댓글 2 좋아요 0 조회수 321

ex2 패키지에서 궁금한게 있는데요

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. private static class NetworkMessage {...} 이 정적 중첩 클래스에서 static 을 제거하면 private class NetworkMessage {...} 내부 클래스가 되는건가요? 근데 뒤에 강의를 보면 내부 클래스는 아닌거 같은데, 정적이 아닌 그냥 중첩 클래스인 건가요?

  • java
  • 객체지향
으아아아앙 댓글 1 좋아요 0 조회수 223

anim.SetBool

해결됨

새싹부터 시작하는 Unity 게임 개발

강의 듣고 활용 중에 도저히 스스로도 해결 못하겠는 부분이 생겨 질문합니다! Animator anim; <을 붙히지 않으면 the name 'anim' does not exist in the current context 오류가 발생하고 앞에 Animator anim;을 붙혀주면 NullReferenceException: Object reference not set to an instance of an object 오류가 발생합니다 해결 방법을 꼭 알고 싶습니다 ㅠㅠ anim.SetBool을 지워주면 정상적으로 작동하는 것으로 보아 위 코드가 문제는 맞는 것 같습니다

  • C#
  • unity
  • collider
  • .csv
  • json-parsing
ㅇasdfasdf 댓글 2 좋아요 1 조회수 338

스프링jpa 작업 중 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

작업파일 링크 드라이브에 담아 공유합니다. 어느 점에서 오류가 나는지 잡을 수 없어 질문드립니다. 감사합니다 https://drive.google.com/file/d/1UqI2_8bN8k4yq1Zww3OVkDLQ_yS_tsPS/view?usp=drive_link

  • java
  • spring
  • mvc
  • spring-boot
코코넛빵 댓글 1 좋아요 1 조회수 253

ThreadLocal을 사용했는데 왜 여러 스레드에서 접근이 가능한걸까요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

ThreadLocal을 사용하는 이유 ThreadLocal을 사용해서 전송작업중인 스레드마다. 독립적인 버퍼를 보장해주었는데 , 강의 마지막에 왜 여러 스레드에서 인스턴스에 접근이 가능하다는건지 이해가 되지 않습니다. 세션에서 스레드 버퍼를 참조하고 있을 가능성 때문인가요? 스레드 로컬을 이용해 공간 독립성을 보장해준 것이 아닌가요? 또한 실제 SendBuffer를 이용하는 부분은 스레드별로 보장되어 있는것이 아닌가요? 이해가 되지 않습니다 ㅠ

  • C#
  • unity
  • 네트워크
용기있는 청년 댓글 1 좋아요 0 조회수 374

각 파트별 연관성이 있나요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

특정 파트를 들을 때 그 이전 파트를 안 들어도 진행하는 데 문제없을지 알고 싶어요.

  • C#
  • unity
케르메르 댓글 1 좋아요 0 조회수 192

코드 질문 있습니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

8.팰린드롬 문제 관련 입니다. String temp = new StringBuilder(str).reverse().toString(); 이 부분에서 스트링빌더를 문자열로 다시 바꿔주는데 문자열을 왜 다시 문자열로 바꿔주는지 이해가 안갑니다.. 인풋값으로 문자열이 아닌 다른값을 받아왔을때를 위한 코드인지 궁금합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • java
  • 코딩-테스트
정채아 댓글 1 좋아요 0 조회수 201

prefab호출이 되지 않습니다..

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

(사진)

  • C#
  • unity
SpaceRane 댓글 1 좋아요 0 조회수 188

3. 컬렉션 프레임워크 - ArrayList 강의 교안 오타 제보

해결됨

김영한의 실전 자바 - 중급 2편

[오타 제보 내용] 3. 컬렉션 프레임워크 - ArrayList 교안 pdf 직접 구현하는 배열 리스트2 - 동적 배열 배열의 크기를 초과할 때 (5) 이렇게 증가된 배열에 데이터를 추가하면 된다. 물론 데이터가 추가되었으므로 size 도 하나 증가시킨다. 기존 배열( x001 )은 더는 참조하는 곳이 없으므로 GC의 대상이 된다. 그림에서는 x100으로 나와있는데, 교안에는 기존 배열의 주소를 x001로 표시하고 있습니다. 기존 배열의 주소값 확인 부탁드립니다. 직접 구현하는 배열 리스트3 - 기능 추가 주제 내용 맨 첫 부분에 나오는 add(Index, 데이터) 와 remove(Index) 의 파라미터가 Index 라고 I가 대문자로 나와 있습니다. i(소문자) 확인 부탁드립니다. 감사합니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
Bruce Han 댓글 2 좋아요 0 조회수 418

이벤트핸들러를 이용하지 않는 이유

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

SocketAsyncEventArgs args = new SocketAsyncEventArgs(); args.Completed += OnConnectedCompleted; args.RemoteEndPoint = endPoint; args.UserToken = socket; 이벤트 핸들러를 이용하지 않고 바로 대입한 이유가 있을까요?

  • C#
  • unity
  • 네트워크
용기있는 청년 댓글 1 좋아요 0 조회수 287

기술에 의존적이라는 것에 대해서 조금 질문드립니다.

해결됨

토비의 스프링 6 - 이해와 원리

spring data jpa를 사용하면, JpaRepository 를 상속한 인터페이스를 보통 정의하게 되잖아요? 이 경우에도 특정 기술에 의존한다고 볼 수 있는건가요? 이런 경우, 실질적으로 spring data jpa 와 관련된 import 구문이 들어오기는 하지만, 구현체의 내용이 없기 때문에 코드 변경에 따른 여파가 없다고 느껴지긴 하거든요. 만들면서 배우는 클린 아키텍처라는 책에는 이를 persistence layer 로 분류하고 있더라구요. 이 인터페이스는 어떤 레이어에 속한다고 보시나요? 질문을 드린 이유는 실제 헥사고날 아키텍처나 이런 것들을 다루는 곳에서 보면, 비즈니스 레이어에 인터페이스를 선언하고 이를 상속하는 인터페이스를 구현하는 경우들이 있는데, 실제 구현내용이 없는데 persistence layer 라고 봐야하나? 라는 생각이 문득 들었습니다. 예시: // business layer 에 선언 interface BusinessRepository {} // persistence layer에 선언 interface DataAccessRepository: JpaRepsitory<생략>, BusinessRepository

  • java
  • spring
비오 댓글 2 좋아요 0 조회수 500

클래스 필드 레벨에서의 객체 생성에 대해 질문있습니다.

해결됨

토비의 스프링 6 - 이해와 원리

안녕하세요. 좋은 강의 감사합니다. 기존에는 PaymentService 클래스의 prepare 메서드 내부에서 provider 객체를 생성했었습니다. 강의 중간에 토비님께서 provider를 클래스 필드로 변경하시고, 생성자에서 객체 생성을 하셨습니다. 변경 이후에 Provider는 PaymentService와 생명주기를 함께합니다.(생명주기라는 단어가 올바른지 모르겠네요.) PaymentSerivce가 메모리 해제되지 않으면, Provider도 계속 메모리를 차지하게 됩니다. 하지만 메서드 레벨에서 객체 생성을 한다면, Provider는 GC에 의해 비교적 일찍 메모리 해제가 될 수 있을 것 같습니다. 제 생각에는 클래스와 메서드의 호출 패턴에 따라서 선택이 달라질 것 같은데, 토비님께서는 클래스 필드 레벨 선언과 메서드 레벨 선언을 정하시는 룰이 있으신지 궁금합니다!

  • java
  • spring
IThinkSo 댓글 1 좋아요 0 조회수 308

2023년 2회 킬러문항

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

2023년 2회 킬러문항 해설 이해가 안갑니다 초록색 색연필로 표시했는데 35분 30초 쯤 해설 중 1 출력인데 출력값은 2라고 하고 넘어가시더라구요 .. 이유를 모르겠습니다 ㅠㅠ 몇 번을 반복해서 들어도 전체적 이해가 안되네요ㅠㅠ

  • python
  • java
  • c
  • 정보처리기사
태라 댓글 1 좋아요 0 조회수 292

http://www.thymeleaf.org 가 실행이 안되는 것 같아요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] gradle에도 있고 build.gradle에도 있는데 hello.html을 실행하면 저렇게 에러 페이지가 뜹니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 0 조회수 422

의존성 방향과 관련된 질문이 있습니다.

해결됨

토비의 스프링 6 - 이해와 원리

안녕하세요 토비님. OrderRepository 인터페이스가 application layer에 있고, 이걸 구현한 구현체가 persistence layer에 있는데요. 일반적인 layered 아키텍처라고 하면, 의존성의 방향이 아래로 향해야하는데, 이 경우라면 의존성이 application 으로 향하게 되는거 같은데요. 만약에 이런식으로 구성한다면 port & adapter 같은 개념을 별도로 두지 않더라도, 의존성방향에 의하면 헥사고날 (혹은 클린 아키텍처) 라고 부를 수 있는건가요? 아니면 그럼에도 layered 아키텍처라고 부르나요?

  • java
  • spring
비오 댓글 2 좋아요 0 조회수 2501

use client

해결됨

기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)

안녕하세요 ㅎㅎ 강의 너무 잘 듣고있습니다. use client 사용하는 이유에 대해서 잘 모르겠어서 질문을 드립니다 .ㅎㅎ 설명을 들었을때 server slide rendering 이지만 server side 기능을 하는것이 아니라 client side 로 넘어온다? 로 이해를 했는데 , 그렇다면 굳이 저 위의 지시어 use client 를 사용해야할때가 있을까 ?? 생각을 했습니다 ㅎㅎ

  • react
  • 인터랙티브-웹
  • 클론코딩
  • next.js
  • tailwind-css
  • zustand
SJ 댓글 1 좋아요 1 조회수 237

TCP 수신시 순서보장에 질문있습니다!

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요. 루키스님 1회독마치고 2회독을 하는중 궁금한점이 생겨 글남기게되었습니다. 만약 클라가 패킷을 보내는 순서를 A -> B 라고 했을때, 서버에서 패킷을 수신해보니 A, B둘다 패킷이 부족하여 다음 패킷을 대기중이라 했을때 두번째 패킷을 받아보니 B는 부족한 패킷을 채워 완전체가 되고 A는 아직 부족하다고 했을때 클라에서는 A -> B 순으로 명령하여 패킷을 전송했지만 A의패킷은 아직 수신대기중이고 B의 패킷은 전부 수신되었을때 B의 패킷을 컨텐츠영역으로 보내 클라에게 전송하는걸까요? 그럼 클라에서의 명령이 A->B가 아닌 B->A로 실행되는것일까요..? 만약, B->A 로 클라가 실행된다면 정상적으로 A->B로 실행하게끔 하는방법이 있을까요..? 문뜩 궁금해서 여쭤보게되었습니다. 답변해주신다면 감사하겠습니다!

  • C#
  • unity
  • 네트워크
hongrae_37 댓글 2 좋아요 0 조회수 430

인기 태그

인프런 TOP Writers

주간 인기글