분류 전체보기 검색 결과, 74
VS Code로 C++ 디버깅
VS Code로 C++ 디버깅 동기 서버 만드는 도중에 테스트할 때마다 테스트 프로젝트를 키는게 귀찮다. gcc로 하는 것도 나쁘지는 않지만, 가벼운 IDE같은게 있으면 좋겠다. 그리고보니 VS Code로도 가능하겠다. 이용해보자. 계획 VS Code로 디버깅을 해보자. 난관 컴파일은 쉬운데, 디버깅에서 시간을 많이 잡아먹었다. json으로 gcc 쉘을 참조해서 하는 것같은데, 이 설정과 단계가 이해가 안갔다. 과정 컴파일 당연하지만, 우선 gcc를 설치해야한다. 우리는 자주 사용하는 Mingw를 이용할 것이다. Mingw로 gcc를 설치후 환경변수에 gcc를 입력한다. 정상적으로 gcc를 설치했다면, 우리는 vs code에 c++를 이용하기 위한 확장을 설치해야한다. 설치할 확장은 C/C++ 혹은 Co..GitHub와 VS의 연동 문제
GitHub와 VS의 연동 문제 2018년 1월 23일 동기 노트북에 pull받은 버전을 vs로 띄우니 갑자기 에러가 떴다고 메시지가 떴다. 로그는 xml로 남겨놨다갈래 들어가보니... 라는데 무슨 소린지 모르겠다. 그래도 에러는 많이 봤으니 이럴 때에는 침착하게 에러를 읽어야한다는걸 안다. "A MEF Component threw an exception at runtime" 뭔지는 몰라도 MEF라는 컴포넌트가 문제인가보다. 찾아보니... 계획 MEF를 재설치하면 될 것같다. 내 생각엔 파일이 깨진게 아닐까싶다. MEF는 "어플리케이션과 컴포넌트의 재사용성을 높일 수 있는 프레임워크다"라고한다. 기존의 정적어플리케이션은 새로운 빌드버전은 기존 어플리케이션과 확장된 기능간에 종속적인 관계로 이 기존의 어플..VS Code로 Markdown 편집하기
VS Code 사용하기 동기 데탑을 새로 맞췄더니 MarkdownPad가 윈도우 10을 지원해주지 않는다. 새로운 마크다운 에디터가 필요하다. 계획 1.이번에도 마크다운을 지원하는걸로 쓰기로 했다. 마소는 지원을 안하는게 없나? 성능은 둘째치고.. 여튼 이름은 바로 VS Code(Visual Studio Code). 단순히 마크다운 에디터가 아니라, 크로스플랫폼 오픈소스 프로젝트. 비슷한 IDE로는 Vim과 sublime Text가 있다. sublime은 예전에 한 번 써봤는데, VSC와 비슷한 느낌. 마크다운을 편집할 때, 우측에 실시간으로 프리뷰를 제공한다. 이걸 가장 원했다..요새 안해주는 곳이 없긴하지만. 좀 느리거나 불편하면 그냥 sublime이나 atom으로 바꿔버리자. 과정 마소답게 과정이 ..VS를 깃허브에 연동
VS를 깃허브에 연동 데탑을 2주에 걸쳐서 이제 조립을 완성했다... 처음하는 조립이라서 헤맨 부분도 있었지만, 오래걸린 이유는 메인보드 초기불량... 아는 형님의 도움을 받아서 조립의 팁을 몇 개받았다. 그 형님이 아니었으면 난 지금쯤 반쯤 정신놓고 아직도 고치고있지 않았을까? 뭔가 2주동안 짜증은 났지만 그래도 재미는 있었고, 다음에 또 조립해보고 싶다. 동기 집에서는 데탑으로 코딩하고, 밖에서는 노트북으로 코딩하고 싶다. 두 개를 연동해서 어디서든 코딩하고 싶다. 계획 일단 마소에서 VSTS로 Git을 지원해주는 것같다. 이걸 이용해보면 될 것같다. 연동이 잘 안되거나 불편하면 그냥 USB나 외장하드에 저장하고 다녀야겠다. 어쩃든간에 어제 하루는 데탑 조립하고 셋팅하는데에 하루를 보냈다. 특히 이번..Close()와 Shutdown() 함수 차이
close와 shutdown ㄱClose()와 Shutdown()의 차이 Close와 Shutdown, 둘 다 Socket을 닫고 통신을 종료하는 함수이다. 차이점은 소켓을 닫는 방식에 있다. int close(int sockfd) 소켓을 닫고 통신을 종료하는 함수다. 매개변수는 닫을 소켓이다. 성공하면 0을, 실패하면 -1을 반환한다. 내부적으로는 소켓에대한 참조카운트를 1감소하고, 참조카운트가 0이 되면 소켓을 닫는다. 만약 당신이 다중스레드 서버에서 close를 사용할 때, 이 참조카운트를 신경써야한다. 게임서버는 대부분 recv한 후에 send하는 에코서버가 아니기에(recv없이 send할 수 있다), 언제든지 참조카운트가 2이상이 될 수가 있다. 만약 참조카운트가 2이상이라면, 소켓을 close..Command 패턴 (1)
New Document 2. 커맨드 패턴 (Command Pattern) 2-1. Introduce 요청을 객체로 캡슐화한다. 그렇게함으로서 유저들은 다른 요청, 큐(Queue), 혹은 로그 요청으로 클라이언트를 매개변수화하고, 실행할 수 없는 명령을 서포터한다." -Game Programming Pattern 커맨드 패턴의 핵심은 추상화이다. 이 패턴은 객체의 함수 호출을 리얼 타임에서 구체화해서 실행시킨다. GOF에서는 "커맨드는 콜백의 객체기반 대체품이다"라고 소개한다. 2-2. Motivation 게임에는 여러가지의 입력에 반응하는 코드가 어딘가에는 존재한다. 이 코드들은 유저의 입력을 게임 월드에서 유의미한 액션으로 바꾼다.예를들어, 유저는 A, B, X와 Y버튼을 가지고, 각각 무기변경(Swa..Lowpoly
게임 서버 프로그래머 지망생