inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

TicTacToe.jsx reducer 부분 질문입니다

해결됨

웹 게임을 만들며 배우는 React

case CLICK_CELL : const tableData = [... state . tableData ]; tableData [ action . row ] = [... tableData [ action . row ]]; // immer라는 라이브러리로 가독성 해결 tableData [ action . row ][ action . cell ] = state . turn ; // console.log(tableData[action.row]); return { ... state , tableData , recentCell : [ action . row , action . cell ], } 위 코드에서 tableData [ action . row ], [... tableData [ action . row ]] 두 값이 동일한데 [... tableData [ action . row ]] <-- 이 배열을 대입해주는 이유가 있을까요? 콘솔로 찍어봐도 동일한값으로 나오길래 주석처리하고 진행해보니 정상작동은 하는데 최적화 부분에서 memo를 적용했을 때 렌더링이 정상적으로 되지 않더라구요 어떤 이유 때문에 위와 같은 현상이 생기는지 알 수 있을까요?

  • react
tkdals9048 댓글 2 좋아요 1 조회수 239

Player GameObject의 name이 이상해요.

미해결

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

전 캐릭터 오브젝트 이름을 Player로 하고 있는데, 이런 식으로 생성되는 캐릭터들의 이름에 Player_Root이 붙더니 실행할 때 마다 이름이 초기화가 되지 않고 _Root가 계속 뒤에 붙고 있습니다. vs에서 확인해보니, Root.name = $"{original.name}_Root"; 이후에 Original의 name도 뒤에 _Root가 붙고 있습니다.

  • C#
  • unity
leomessi 댓글 3 좋아요 0 조회수 341

선생님 제발 도와주세요

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

삭제된 글입니다

  • react
  • nodejs
댓글 3 좋아요 0 조회수 80

mac에서 실행창

미해결

파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)

실행이 되는데 깨져서 나옵니다.

  • python
  • pygame
  • GUI
댓글 3 좋아요 0 조회수 658

리덕스 어렵네요.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

강의 잘보고있는데 너무 어렵네요. 1. user_action.js에서 user_reducer.js와의 연결고리가 없는데 어떻게 저파일을 찾아가는건지 궁금합니다. 2. types.js에 LOGIN_USER= "login_user" 지정해주는데 "login_user" 값은 어디서도 사용안된 값인데 왜 저리 지정되는지도 모르겠는데 답변주시면 많은 도움이 될거 같습니다.

  • nodejs
  • react
다커스 댓글 1 좋아요 1 조회수 250

에러 처리 질문

미해결

실전 리액트 프로그래밍

안녕하세요. 강의를 따라 코드를 치던 중 화면과 같은 에러가 발생했습니다. 검색 후 상단에 보이는 것처럼 코드를 추가하였지만 해결되지 않고 있습니다. 어떻게 하면 될까요?

  • react
  • redux
ii Tt 댓글 3 좋아요 0 조회수 608

transform.TransformDirection()에 대한 질문입니다.

미해결

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

안녕하세요 강의를 듣다 의문점이 생겨 질문을 드립니다 Debug.DrawRay()와 Physics.RaycastAll()은 월드를 기반으로 되어있고 레이저를 유니티짱이 바라보는 방향(로컬)으로 쏘기위하여 Vector3 look = transform.TransformDirection(Vector3.forward);로 좌표를 대체하셨는데, 1. Vector3.forward는 월드벡터를 나타내고, transform.TransformDirection()은 로컬벡터를 월드벡터로 바꾸는 기능을 한다고 알고 있습니다. 이것은 월드벡터를 월드벡터로 바꾸는 작업이라고 생각되어 이해가 잘 가지 않습니다. 2. 또, look 대신 Debug.DrawRay()와 Physics.RaycastAll()에 transform.forward를 집어넣어도 같은 기능을 하는 것 같은데 이렇게 써도 되는건지 궁금합니다.

  • C#
  • unity
도곡 댓글 2 좋아요 2 조회수 909

vscode 에서 vim 으로 .env 파일을 만드는데 안되요...

미해결

[리뉴얼] React로 NodeBird SNS 만들기

vscode에서 git bash 로 사용 했는데 다 작성하고 esc 누르고 wq 누르고 엔터 눌러도 반응이 없습니다..

  • react
  • redux
  • nodejs
  • express
  • Next.js
문성민 댓글 2 좋아요 0 조회수 508

Input Manager 강의를 듣고 이해가 안되는 부분이 있어 질문드립니다

해결됨

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

안녕하세요 유니티 처음이라 이해가 잘 안되는 부분이 많아 다시 강의를 복습하던 도중에 이해가 안되는 부분이 있어 질문드립니다 Input Manager 강의 5분 30초 쯤에 보면 Manager 클래스에 InputManager를 생성할려고 InputManager _input = new InputManager(); public static InputManager Input { get { return s_instance._input; } } 이런 코드를 작성하셨는데 이 부분이 이해가 잘 안됩니다 1. Mangers 객체인 s_instance 는 static 변수로 선언을 했는데 왜 InputManager 객체인 _input은 static 변수로 선언하지 않았는지 그 이유가 궁금합니다 Manger 객체와 똑같이 입력을 처리하는 InputManager 객체는 1개만 필요할텐데 static이 아닌 일반 변수로 선언한 이유가 궁금합니다. (InputManager를 static 변수로 선언하면 안되나요??) 2. InputManager _input = new InputManager(); public static InputManager Input { "get { return s_instance._input; }" } "get { return s_instance._input; }" 이 코드에서 s_instance.input을 한 이유가 궁금합니다 그냥 get { return _input; } 을 하면 안되는 이유가 궁금합니다 Input을 사용할때 Mangers.Input.KeyAction 이런식으로 사용될텐데 Managers 클래스 안에 _input이라는 변수가 정의되어 있는데 왜 굳이 s_instance. 을 붙이는 이유가 궁금합니다 매번 친절하고 자세한 설명 감사드립니다

  • C#
  • unity
시슴 댓글 2 좋아요 0 조회수 294

제공되는 학습자료는 없나요?

미해결

김대리님 이게 바로 업무 자동화입니다 (엑셀 + 파이썬)

강의와 관련있는 질문 을 남겨주세요. &bull; 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) &bull; 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) &bull; 서비스 운영 관련 질문은 인프런 우측 하단 &lsquo;문의하기&rsquo; 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. &bull; 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. &bull; 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. &bull; 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. &bull; 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. &bull; 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. &bull; 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . &bull; 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. &bull; 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. &bull; 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. &bull; 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다.

  • 인프런 신규강의 (유료)
  • excel
  • python
  • 인프런 신규강의 (유료)
kimdaehwan 댓글 3 좋아요 0 조회수 452

생성자가 제대로 작동하지 않습니다.

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

marine 생성자가 작동을 안합니다... 생성자를 전부 맞게 적은 것 같은데 다음과 같은 오류가 발생해요. line 113, in <module> m1 = Marine() TypeError: __init__() missing 4 required positional arguments: 'name', 'hp', 'speed', and 'damage' from random import * # 일반 유닛 class Unit: def __init__ ( self , name , hp , speed): self .name = name self .hp = hp self .speed = speed print ( "{0} 유닛이 생성되었습니다." .format(name)) def move ( self , location): print ( "[지상 유닛 이동]" ) print ( "{0} : {1} 방향으로 이동합니다. [속{2}]" .format( self .name , location , self .speed)) def damaged ( self , damage): print ( "{0} : {1} 데미지를 입었습니다." .format( self .name , damage)) self .hp -= damage print ( "{0} : 현재 체력은 {1}입니다." .format( self .name , self .hp)) if self .hp <= 0 : print ( "{0} : 파괴되었습니다. " .format( self .name)) # 공격 유닛 class AttackUnit(Unit): def __init__ ( self , name , hp , speed , damage): Unit. __init__ ( self , name , hp , speed) self .damage = damage def attack ( self , location): print ( "{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}] " \ .format( self .name , location , self .damage)) class Marine(AttackUnit): def __int__ ( self ): AttackUnit. __init__ ( self , "마린" , 40 , 1 , 5 ) def stimpack ( self ): if self .hp > 10 : self .hp -= 10 print ( "{0} : 스팀팩을 사용합니다. (hp 10 감소)" .format( self .name)) else : print ( "{0} : 체력이 부족하여 스팀팩을 사용하지 않습니다." .format( self .name)) class Tank(AttackUnit): seize_developed = False def __int__ ( self ): AttackUnit. __init__ ( self , "탱크" , 150 , 1 , 35 ) self .seize_mode = False def set_seize_mode ( self ): if not Tank.seize_developed: return # 현재 시즈모드가 아닐 때 -> 시즈 모드 if not self .seize_mode: print ( "{0} : 시즈모드로 전환합니다." .format( self .name)) self .damage *= 2 self .seize_mode = True else : print ( "{0} : 시즈모드를 해제합니다." .format( self .name)) self .damage /= 2 self .seize_mode = False class Flyable: def __init__ ( self , flying_speed): self .flying_speed = flying_speed def fly ( self , name , location): print ( "{0} : {1} 방향으로 날아갑니다. [속도 {2}]" .format(name , location , self .flying_speed)) class FlyableAttackUnit(AttackUnit , Flyable): def __init__ ( self , name , hp , damage , flying_speed): AttackUnit. __init__ ( self , name , hp , 0 , damage) Flyable. __init__ ( self , flying_speed) def move ( self , location): print ( "[공중 유닛 이동]" ) self .fly( self .name , location) class Wraith(FlyableAttackUnit): def __init__ ( self ): FlyableAttackUnit. __init__ ( self , "레이스" , 80 , 20 , 5 ) self .clocked = False def clocking ( self ): if self .clocked == True : print ( "{0} : 클로킹 모드 해제합니다." .format( self .name)) self .clocked = False else : print ( "{0} : 클로킹 모드 설정합니다." .format( self .name)) self .clocked = True def game_start (): print ( "[알림] 새로운 게임을 시작합니다." ) def game_over (): print ( "Player : gg" ) print ( "[Player] 님이 게임에서 퇴장하였습니다." ) # 게임 진행 game_start() m1 = Marine() m2 = Marine() m3 = Marine() t1 = Tank() t2 = Tank() w1 = Wraith() attack_units = [] attack_units.append(m1) attack_units.append(m2) attack_units.append(m3) attack_units.append(t1) attack_units.append(t2) attack_units.append(w1) for unit in attack_units: unit.move( "1시" ) Tank.seize_developed = True print ( "[알림] 탱크 시즈 모드 개발이 완료되었습니다." ) for unit in attack_units: if isinstance (unit , Marine): unit.stimpack() elif isinstance (unit , Tank): unit.set_seize_mode() elif isinstance (unit , Wraith): unit.clocking() for unit in attack_units: unit.attack( "1시" ) for unit in attack_units: unit.damaged(randint( 5 , 20 )) # 공격은 랜덤으로 받음 # 게임 종료 game_over()

  • python
댓글 1 좋아요 0 조회수 577

백그라운드/메인 쓰레드 그리고....

미해결

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

1. PackatQueue 를 OnRecvcallback 을 통해 거치게되면 유니티에서 사용되는 메인쓰레드로 사용할 수 있다는 얘기로 들리는데. 유니티에서 그렇게 작동하도록 만든것인가요? 즉 유니티 오브젝트와 서버를 연동시키려면 쓰레드는 무조건 큐( Push , Pop )를 거쳐서 와야한다? 라고 유니티 측에서 규칙을 정해둔거? 그리고 2. 전 강의에서 설명하셨을 수도 있는데 너무 많은게 지나가서 질문 드립니다... HandlePacket 만으론 유니티와의 연동이 되지않은 걸로 보이는데 HandlePacket 을 자동화해서 사용하는 이유가 있나요. 제가 이해한 바로는 1번에 해당하는 경우에만 유니티가 제대로 작동되는 걸로 보여져 HandlePacket 은 뭘하는지 잘 모르겠습니다. 3. 기존에는 (유니티 연동 전) 백그라운드 풀에서 쓰레드를 뽑아와서 쓴다고 하셨는데.. 이 부분은 제가 잊은건지 모르겠지만.. 쓰레드 풀 자체를 어디서 생성해줬는지 기억이 가물가물합니다... 분명 첫수업시간 때 Task를 이용해 쓰레드 풀을 만드는 건 어렴풋이 기억이 나는데 그런 코드는 여기서 작성한 기억은 없고... 쓰레드 자체가 어디에서 왔는가에 대해 알려주실 수 있나요.. 메모하면서 진행해왔는데 찾기가 어렵네요. 4. 그리고 복습하는 도중에 알려주신 모든 부분을 응용해서 학습할 수 있게 해주신점 감사드립니다. 그런데 한가지 ThreadLocal을 이용한 최적화는 파이널 프로젝트에 응용한게 없는듯한데 파트 7정도 때에나 이런 것들을 한꺼번에 볼 수있을까요. 감사합니다. ---------------------------------------------------

  • C#
  • unity
  • network
J Han 댓글 1 좋아요 0 조회수 484

강의에서 말씀하신 방식으로 기업의 코딩테스트도 통과할수있나요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

이번에 다루신 문제에는 입력이 작았기 때문에 for문 내부에서 sort를 해도 문제가 없었다고 생각합니다. 그러나 코딩테스트 경험상, for문안에 sort()를 넣으면 대부분 시간 초과 오류가 났던 경험이 있는데요. 첫째, 입력이 더 큰 경우에 이 방식(매번 정렬)을 써도 되는지 둘째, 만약 시간 복잡도가 너무 커져서 시간초과가 날 가능성이 높다면 더 효율적인 방법은 없을까요?

  • python
  • 코테 준비 같이 해요!
drather 댓글 2 좋아요 12 조회수 434

Collections에서 데이터 확인

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

안녕하세요 :) PostMon을 통해 보낸 데이터들을 확인하려고 Collections에 들어갔는데 잘 안나와서 아래있는 질문들도 확인하고 앞에 강의도 확인하고 구글링도 다 해봤는데 뭔가 조금 이상하다는 생각이 들어서 질문드립니다. Collections를 누르면 이렇게 아무 것도 안뜨고, Add my own data를 누르면 아래와 같은 창이 뜹니다. Collections를 눌렀을 때, 이와 같은 창을 확인 할 수 있는데, 여기서의 Database name이 " mongodb+srv://june:<password>@nodejspractice.xjqzt.mongodb.net/<dbname>?retryWrites=true&w=majority" 이 코드에서의 <dbname> 을 의미하는 건가요? 앞선 강의에선 <dbname> 부분이 test로 세팅이 되어있는데, 현재는 을 채우도록 되어있습니다. 이때 <dbname>부분에 무엇을 넣느냐를 고민하고 있고, 여러 시도를 해봤는데 진전이 없어서 질문드립니다. 감사합니다

  • nodejs
  • react
June 댓글 3 좋아요 0 조회수 433

page not found가 계속 뜹니다.

해결됨

파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap

강의내용대로 따라했는데 저렇게 뜹니다. 강의내용을 돌려서 제가 pycharm속 코드들과 비교해봐도 다른게 없는데 제가 어느부분을 놓치고 있는 걸까요?

  • django
  • bootstrap
  • python
김아영 댓글 6 좋아요 1 조회수 544

생선판매 while 구문 질문

해결됨

Python 부트캠프

fish = 5 while True: num = int(input("고등어 몇 개를 구매하실 건가요?")) if fish >= num: fish = fish - num print(f'고등어 {fish}개 남았습니다.') if fish == 0: print('완판되었습니다.') break else: print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.') fish = 0 break 위 예제에서 이 코드대로 실행이 된다면 5마리일 때 6마리를 구매하겠다고 하면 바로 남은 생선이 0마리가 되어버리는 것 아닌가요? else: print(f'손님, 죄송하지만 구매할 수 있는 고등어 {fish}개 남았습니다.') 이렇게 되어야 완판 될때까지 판매를 하는 것 아닌가요?

  • python
이승철 댓글 1 좋아요 0 조회수 303

span.imax

미해결

파이썬으로 영화 예매 오픈 알리미 만들기

안녕하세요. 그 사이 cgv 페이지 구조가 바뀌었는지 그냥 접속했을때와 아이프레임 소스 주소 따서 접속했을때 보여지는 페이지가 다릅니다. http://www.cgv.co.kr/theaters/?areacode=01&theaterCode=0013&date=20200718 http://www.cgv.co.kr/common/showtimes/iframeTheater.aspx?areacode=01&amp;theatercode=0013&amp;date=20200718 아이프레임 소스 주소로 연결되는 페이지에는 imax관이 포함되어 있지 않아서 강의를 따라갈수가 없네요. 페이지 구조가 어떻게 바뀐건지 잘 모르겠습니다.

  • python
Lee Soyon 댓글 1 좋아요 -1 조회수 683

in 구문에서 튜플 관련 질문

해결됨

Python 부트캠프

10 in (10,20,30), (2) in (10,20,30), (1,2) in (10,20,30) 강의에서 위 코드를 실행하였을 때 (True, False, False)가 나왔는데 제가 아래 코드를 실행했을 때에 10 in (10,20,30), (20) in (10,20,30), (10,20) in (10,20,30) (True, True, False) 가 나왔습니다. 리스트의 경우에는 [2]를 in 구문으로 할 수 없지만 튜플에서는 (20)을 튜플로 인식하는 것이 아닌 그냥 숫자로 인식을 해서 True가 나오는 건가요?

  • python
이승철 댓글 1 좋아요 1 조회수 264

mongoURI 관련 질문

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

mongoose . connect ( config . mongoURI , ... 위의 코드에서 mongoURI 라고 실습해주신대로 했을 때 MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. 위와 같은 오류가 발생해서 한참 삽질을 했는데요ㅠㅠ 혹시나 하고 mongoURL로 고쳐서 런 시켰더니 잘 동작하네요... URI로 사용하면 동작하지 않는 이유가 무엇인가요 원래 동작해야 맞는건가요? 물론 prod.js dev.js도 위와 동일하게 변경했습니다!

  • react
  • nodejs
villena 댓글 6 좋아요 3 조회수 553

인기 태그

인프런 TOP Writers

주간 인기글