inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

안녕하세요 메모리 배리어 강의 부분 관련해서 질문드립니다.

미해결

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

using System; using System.Threading; using System.Threading.Tasks; namespace ServerCore { class Program { static volatile int x = 0; static volatile int y = 0; static volatile int r1 = 0; static volatile int r2 = 0; static void Thread_1() { y = 1; //store y r1 = x; //load x } static void Thread_2() { x = 1; // store x r2 = y; //load y } static void Main(string[] args) { int count = 0; while(true) { count++; x = y = r1 = r2 = 0; Task t1 = new Task(Thread_1); Task t2 = new Task(Thread_2); t1.Start(); t2.Start(); Task.WaitAll(t1, t2); if (r1 == 0 && r2 == 0) break; } Console.WriteLine($"{count}번 만에 빠져나옴"); } } } 메모리 배리어 강의에서는 위 코드의 루프를 거의 100번 이하로 빠져나오는데 제가 했을때는 적으면 8000번 많으면 10만까지 루프를 돌더라구요. 어떤 차이점 때문에 이렇게 루프 반복 횟수가 차이나는 걸까요?

  • unity
  • C#
  • network
댓글 1 좋아요 0 조회수 177

만약에 FPS관련 이동 동기화에 경우

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

강의를 듣다가 의문이 생겨서 질문을 남깁니다, FPS이동 동기화 또한 클라이언트에서 먼저 이동후 서버에다가 패킷을 전송한후 자신이 움직였음을 알리는 방식이 대부분이라고 하셨습니다. 하지만 1초다 4번 패킷을 보내는 경우에는 캐릭터가 목표 좌표를 받아와서 이동하는 방식으로 하게 될경우 오차가 발생하는 경우가 있을거 같고 그 오차로인해서 플레이어 이동 동기화가 마치 한템포 늦을거 같은 느낌이 듭니다. 만약에 진짜 FPS게임으로 동기화를 한다면 1초에 4번이 아닌 서버가 플레이어의 응답을 대기하는 형식으로 하는게 더 좋은 방식인가요?

  • unity
  • C#
따뜻한눈빛 댓글 2 좋아요 1 조회수 788

안녕하세요 선생님 Thread.Yeild(); 에 대해서 질문 합니다.

미해결

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

while(true) { int expected = 0; int desired = 1; if (Interlocked.CompareExchange(ref _locked, desired, expected) == expected) break; Thread.Yield(); } 이 코드를 정리를 해보면 만약에 A 쓰레드가 있고, B쓰레드가 있다 A쓰레드가 공유 자원을 점유하고 있으면 lock이 0에서 1로 바뀌고 B 쓰레드는 접근 하려니까 lock이 1이니까 계속 무한 루프를 돈다. 이것은 성능상의 저하를 불러 일으킨다. 왜? 쓸데없는 행동이기 때문에 따라서 A쓰레드가 공유자원을 사용을 끝날 때 까지 B쓰레드를 무한루프를 돌게 하지말고 재우는데 Thread.sleep, yeild.. 뭐 이런 함수를 이용해서 재우는데 그럼 무한 루프가 잠시 멈추는 상황이잖아요? 그럼 a쓰레드가 공유자원을 쓰고 나왔다는 것을 어떻게 알 수 있나요? 검색 해보니까 sleep을 os가 깨운다는데 그럼 정리를 해보면 면접관님 께서 만약 이런 질문을 하시면 일단 OS가 A 쓰레드가 할일을 끝냈으니, 잠자고 있던 B쓰레드를 깨워서 그때부터 반복을 해서 다시 LOCK 검사를 진행합니다. LOCK 변수 값이 0이라면 컨텍스트 스위칭이 일어나는데 A 쓰레드의 정보가 레지스터에서 지워지고 B 쓰레드 정보가 채워짐으로써 B 쓰레드가 CPU를 점유하고 이제 B쓰레드가 공유자원 _num변수를 사용해서 _num++연산이 진행이 됩니다. 이렇게 저는 해당 챕터 강의를 이해 하고 정리를 했거 든요 혹시 틀린 점이 있다면 알려주심 감사하겠습니다. 아 그 sleep 걸어놓고 os가 깨우는 거 맞는지도 알려주시면 감사하겠습니다. ^^

  • C#
  • network
  • unity
DevMoses 댓글 1 좋아요 0 조회수 264

round함수 질문

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

print(round(6.5))를 하면 답이 왜 6인가요? 5.5는 6, 7.5는 8이던데.. 왜 6.5만 이런지 모르겠어요.

  • python
댓글 2 좋아요 1 조회수 386

동일한 질문이 있는 것 같은데 이해가 잘 안되서 다시 질문 드립니다

미해결

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

transform.position += transform.TransformDirection(Vector3.forward); Vector3.forward는 (0,0,+1) 이것을 TransformDirection을 통해 월드좌표로 바꾸면 월드 +z축 방향으로 이동한다는 의미 아닌가요?? 저희가 원하는건 Player를 기준으로 한 로컬좌표에서 +z축 방향으로 이동하고 싶은것인데 말이죠 실제로 TransformDirection을 사용하지 않으면 그냥 월드좌표를 기준으로 진행하는데 여기서 TransformDirection을 통해 월드로 바꾼다는 것이 이해가 잘 되지 않습니다

  • C#
  • unity
KIYOMIN 댓글 5 좋아요 1 조회수 601

GridSearchCV 부분과 K fold 관련 질문 드립니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요. 수업을 잘 듣고 있는 학생입니다. 질문이 있어서 질문을 남깁니다. 첫번째 질문은, stratified K fold 부분을 설명해주실 때, stratified k fold 를 안쓰고 k fold만 쓰게 된다면, train set에 label 이 0,1 데이터 50개씩만 들어가고 test set에는 label 이 2만 들어가있는 데이터 50개만 들어가서 predict 가 제대로 할 수 없다(예측 정확도가 0)고 하셨는데 이 부분은 이해가 됩니다. 근데 직전 강의에서 iris데이터 가지고 stratified가 아닌 그냥 K fold를 써서 예측 정확도 0.9333을 얻은 것 아닌가요? 두 번째 질문은, GridSearchCV 설명 부분에서 제 사이킷 런 버전(2점대 버전)으로는 mean_test_score가 0.9666이 아닌 0.975가 나옵니다. 이것은 버전이 업그레이드 되어서 더 좋은 알고리즘(?)으로 능력치가 향상된것인지? 그런데 또 GridSearchCV 최고 정확도: 0.975, 테스트 데이터 세트 정확도: 0.9667 는 각각 이렇게 나오네요. 왜 두개가 서로 다른것인지도 궁금합니다.

  • 통계
  • 머신러닝 배워볼래요?
  • python
yonghankim7 댓글 3 좋아요 0 조회수 377

오타인지 궁금하여 질문드립니다.

해결됨

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요 좋은 강의를 해주셔서 열심히 듣고있는 학생입니다. 다름이 아니라 수강 중에 궁금한 것이 생겨 질문 드립니다. 강의 분류파트에서 분류 실습 1: 캐글경연대회의 산탄데르 은행 고객 만족 예측 강의 중 약 15:10 경에 LGBM_clf = LGBMClassifier(n_estimators=200) 이라고 적혀져 있습니다. 밑에 gridsearchcv를 수행할 때는 레이블 값으로 lgbm_clf를 넣어 주셨는데요. 혹시 오타로 잘못 기재된것인지 궁금하여 여쭤봅니다. 그리고 16:15 경에 subsample 파라미터가 sumbsample로 입력되어 실행되는 것을 보았습니다. 만약 이게 오타라고 한다면, 파라미터가 오타로 잘못 입력되어도 에러가 안뜨고 적용되어 실행될 수 있는 건지 궁금합니다.

  • 머신러닝 배워볼래요?
  • 통계
  • python
홈런 댓글 1 좋아요 0 조회수 290

이동 동기화들을 보면서 생각한게 있는데요.

미해결

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

만약에 애니메이션 이나 따로 동기화 하는 부분이라면 애니메이션 동기화를 예를들면, 파라미터 데이터를 하나씩 보내는거 보다는 한 캐릭터에 모든 파라미터 데이터를 모았다가 한번에 서버로 보내는게 최고에 방법인가요?

  • network
  • C#
  • unity
따뜻한눈빛 댓글 1 좋아요 0 조회수 348

멀티쓰레드와 관련해서 질문이 있습니다.

해결됨

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

멀티쓰레드를 학습하게 되면서 나름대로 정리를 해보았는데요. 멀티쓰레드 환경에서는 쓰레드가 공유하는 자원에 대한 일관성이 보장되어야 한다. 즉, 특정 쓰레드에서 공유 자원의 데이터를 변경하면 다른 쓰레드에서도 똑같이 변경된 데이터를 다뤄야한다. 이러한 문제를 해결하기 위해 쓰레드가 공유 자원에 접근하기 전 Lock을 걸고 들어가서 다른 쓰레드가 해당 자원에 접근하지 못하도록 막고, UnLock을 통해서 다른 쓰레드가 접근할 수 있게 해준다. 이 때 접근한 쓰레드는 변경된 공유 자원 데이터를 사용하게 된다. 이렇게 이해한게 맞는건가요 ? 원자성이라는 개념을 이해하기를 하나의 작업을 처리할 때 수행되는 모든 과정들을 일련의 한 묶음으로 보고 이것은 마치 더이상 나누어지지 않는 것처럼 모두 수행되거나 모두 수행되지 않아야 한다. 그런데 Lock을 통해서 원자성을 구현한다고 이해하고 있는데 이게 맞는건지 궁금합니다... 왜냐하면 Lock을 통해서 공유자원에 다른 쓰레드가 접근을 못하게 막는것은 맞지만 Unlock을 할 때까지 여러가지 작업을 할 수 있는데 그것은 원자성을 보장하지 않는 거 같다고 생각해서입니다.

  • network
  • unity
  • C#
y_y 댓글 1 좋아요 0 조회수 299

코어와 프로세스, 쓰레드간의 관계에 대해서 궁금합니다

해결됨

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

그림판 비유를 보면 컴퓨터에서 동시에 사용하는 프로그램마다 최소한 하나의 프로세스와 쓰레드를 가지고 있는데 컨텍스트 스위칭이 일어난다고 하면 코어 하나만 갈구는거 아닌가요? 그리고 아직 쓰레드를 직접 사용해본적이 없어서 잘 모르겠지만 메모리의 동기화를 보장하기 위하여 멀티스레드 프로그래밍에서 lock를 적극적으로 사용하는데 이러면 어느부분에서 성능향상이 일어나나요? lock을 사용하면 사용할수록 싱글코어와 다를것이 없다고 생각되서요 Web에서 종종 다루는 비동기적 처리를 하기 위해서 스레드를 사용하는건가요?

  • network
  • C#
  • unity
Heca 댓글 3 좋아요 1 조회수 640

plt.figure(figsize=(10,3))을 뒤로하면 적용이 안되는 이유

미해결

공공데이터로 파이썬 데이터 분석 시작하기

선생님 안녕하세요 plt.figure(figsize=(10,3))을 sns.barplot(data=df_last, x="지역명", y="평당분양가격") 밑으로 코드를 입력하면 적용이 안되는 이유는 무엇인가요 ..?

  • python
  • pandas
  • numpy
freedom07 댓글 1 좋아요 1 조회수 699

True and False 이면 False 가 되는 이유가 무엇인가요?

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

print('e4:', 5+10>0 and not 7+3 == 10) 에서 5+10>0 인건 true 이고 not 7+3 == 10 인건 false 잖아요. 그러면 true and false 가 되니까 이런 경우는 무조건 false 인가요?

  • python
댓글 1 좋아요 1 조회수 213

GridSearch 질문입니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요 GridSearch 가 어떻게 작동되는지 많이 햇갈려서요 예제코드가 iris data 값들을 파라미터값들인 깊이 와 split 으로 분할해서 학습시키는것이 맞는지요? 그리고 학습시키고 예측은 어느부분에서 실행되는것인지요 감사합니다.

  • python
  • 머신러닝 배워볼래요?
  • 통계
Jin 댓글 1 좋아요 2 조회수 213

강의자님의 지식과 역량에 감탄중입니다

해결됨

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

아직 3번째 단계의 강의를 듣는중이지만 강의의 구성요소와 강의내용 그리고 강사님의 역량에 감탄하고 있습니다. 단순히 게임엔진에 대해서만 배우는 것이 아니라 데이터베이스, 운영체제, 자료구조, 알고리즘, 컴퓨터구조등 컴퓨터공학의 기저에 있는 여러가지 내용들을 짚어주고 넘어가신다는게 좋은 강의 같습니다. 거두절미하고 몇몇 여쭤보고 싶은 내용이 있어 질문 드립니다. 강의 내용을 듣다 보면 중간중간 보간법등에 대한 내용이 나와있는데 수치해석에서 나오는 개념들이더군요 수치해석과목같은경우에는 저희학교는 컴퓨터공학에서 다루지 않고 기계공학이나 수학과쪽에서 다루고 있는데 타학과 수치해석 과목을 듣는게 클라이언트 지망 개발자한테 도움이 될까요?

  • unity
  • C#
Heca 댓글 1 좋아요 0 조회수 339

균일한 데이터 셋은 그럼 반반인 데이터인가요?

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

불균일한 데이터셋이라는 게 바로 와닿지가 않네요 4:49

  • 통계
  • 머신러닝 배워볼래요?
  • python
달달한 햄스터 댓글 1 좋아요 0 조회수 310

질문있습니다!

해결됨

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

안녕하세요. 좋은 강의를 보고 패킷모아 보내기를 테스트 해보고 있습니다. 강의와 같이 ServerSession을 500개 만들어서 테스트를 해보면 500개 까지 Connect가 안되고 400좀 넘어서 끝나버리는데(실행할때마다 달라요) 이게 피씨 사양과도 관련이 있나요? 아님 다른 이유가 있을까요? (선생님 파일을 받아서 실행해봐도 비슷해서요)

  • unity
  • C#
  • network
CHANI 댓글 1 좋아요 0 조회수 341

내장 함수를 이용하는 건 별로인가요?

미해결

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

for i in range ( 1 ,n+ 1 ): for j in range ( 1 , n+ 1 ): if (a[i][j] > max (a[i- 1 ][j], a[i][j- 1 ], a[i+ 1 ][j], a[i][j+ 1 ])): cnt+= 1 이런 식으로 푸는 건 별로인가요?

  • python
  • 코테 준비 같이 해요!
코딩왕 댓글 1 좋아요 1 조회수 350

안녕하세요 불린인덱싱에대해 질문드립니다

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요 위 그림과같이 cond1 , cond2, cond3의 조건을 모두 만족하는 행을 뽑아내셨는데 cond1 or cond2 or cond3 와 같은 조건을 한번에 뽑아내는 방법이 있을까요? & 대신 or을 집어 넣어 보았는데 오류가 발생하여 질문드립니다!

  • 머신러닝 배워볼래요?
  • 통계
  • python
iambyunghyun 댓글 1 좋아요 1 조회수 322

print(str_sl[1:4:2]) 질문

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

str_sl = "Nice Python" print(str_sl[1:4:2]) 하면 ie 가 나오는데, 4번째 글자가 아니라 3번째 글자에서 끊어야 하는거 아닌가요? 그래서 i 만나와야 하지 않나요?

  • python
댓글 3 좋아요 0 조회수 389

인기 태그

인프런 TOP Writers

주간 인기글