[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
안녕하세요. 루키스님^^ 루키스님 강좌를 토대로 열심히 게임개발을 공부하고 있는 직장인입니다. 다름이 아니고 개발 후 메모리 점유율이 높아지는 현상이 생겼는데요. 루키스님의 최종 프로젝트를 이용해 오라클 클라우드 서버 인스턴스에서 구동해보고 관찰을 해보았습니다. 메모리 점유상태가 50%를 지속적으로 잘 유지하는 것같다가도(몬스터 500마리) 이후에 몬스터를 다수 잡고난 뒤에 더이상 게임 접속없이 몇 일 결과를 지켜보니 메모리 점유율이 점차 높아지는 현상이 발생하였습니다. 플레이어의 접속이 없어도 메모리 점유율이 올라갑니당ㅠㅠ 몬스터 리젠과 관련된 부분으로 추측해서 열심히 뜯어봤는데 도무지 어디서 메모리 점유율이 계속 올라가는지 감을 못잡겠습니다. ㅠㅠ 어느 부분을 먼저 살펴보면 좋을지 몰라 힘트라도 얻고자 이렇게 글을 남기게 되었습니다.ㅠㅠ 그리고 유투브 구독신청과 좋아요 매번 누르고 있어용~ ㅎㅎ 영상 많이 올려주세용~
강의내용중 31:24초 부분에 해당하는 질문입니다. 다른 사이트 이미지를 마우스 우클릭후, '새탭으로 이미지 열기'로 보면 제대로 이미지가 새탭으로 출력이되서 보이는데, 이 프로젝트 코드는 새 탭으로 이미지 열기를 사용하는데 31:20초 /items/1 경로의 이미지처럼 나오지않고 문자형태로 출력이되는지 궁금합니다. 또한 이처럼 31:24초처럼 이미지가 문자형태로 출력되지 않고 다른사이트(구글,네이버)처럼 새탭으로 이미지를 열어도 정상적으로 이미지가 출력되게 하기위해선 어떻게 해야하나요?
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
int cache[100] 이 -1로 초기화 되고 업데이트 되는 부분이 없으니 // 구하기 for (int next = pos + 1; next < seq.size(); next++) { if (seq[pos] < seq[next]) ret = max(ret, 1 + LIS(next)); cache[pos] = ret; } 이렇게 코드를 추가해 주면 cache를 사용하게 되는거죠?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Spring이 런타임에서는 상품을 잘 저장하고, 불러오는 것도 정상적입니다. 그런데 스프링을 Re-Run 하게 되면, 상품이 전부 사라지네요. ddl-auto: create를 update로 바꿨더니 데이터가 안 사라지네요. 이거 말고 다른 이유는 없는 건가요?
"임베디드 톰캣을 실행하고 작동하는 소프트웨어를 확인합니다." 강의에서 RunCode5 실행이 되지 않습니다. The main resource set specified [/Users/blahblah/Desktop/java/code5/[APP_ROOT]/web] is not valid 라는 에러가 발생하는데, init.yaml 파일에서 [APP_ROOT] 를 empty string 으로 변경한 다음에는 java.lang.IllegalStateException: Unable to create the directory [/temp] to use as the base directory 와 같은 에러가 발생합니다. 강의처럼 실행되게 하려면 어떻게 해야 할까요?
안녕하세요 유익한 강의 감사합니다! 실무에서 사용하고싶은데 막상 사용하려니 어떤식으로 사용해야할지 모르겠어서 질문 남깁니다! 실무에서 강의에서 배운 내용들을 사용한다고 하였을때 미리 헬퍼함수로 L.map, L.filter curry, go, pipe 등 모아놓는 파일을 모듈로 분리하여 임포트해서 사용하는 방식으로 해야하는건가요?? 그리고 기존 어레이 프로토타입에 내장된 map, filter, reduce등을 사용하지않고 강의에서 사용된 새로운 map, filter, reduce를 정의해서 사용해야 하는것이구요 기존 js 내장함수들(map, filter, reduce)등을 사용하지 않고 같은 이름으로 재정의해서 사용하는 것이다보니 헷갈립니다 실무에서는 어떻게 사용되는지 조금 힌트를 얻을수 있을까요!?
안녕하십니까 기본 키 매핑 강의 23:37분에 IDENTITY 시퀀스 전략을 사용할 때, em.persist(member)를 할 때 키를 모르기 때문에 바로 Insert 문을 날린다고 하셨는데 그럼 이때 트랜잭션 커밋 한것 처럼 영속성 컨텍스트 상태에 있는 모든 상태가 적용되나요? 아니면 em.persist(member)만 적용되나요?
addNode 함수 구현 부분 관련 질문드립니다. 19분경 쯤 보시면 나와있습니다 root가 있을때 추가될 부모노드를 검색하는 부분에서 else{ cur = tp -> root; while(cur!=NULL){ parent = cur; if(node - > data < cur ->data) ~~~~~ } if(node->data < parent -> data){ parent -> left = node; } ~~ 이런식으로 진행해 나가잖아요 node를 parent 함수의 오른쪽이나 왼쪽에 붙여야 하는데 node 데이터를 결정하는 if함수 입장에선 parent = cur; 이라고 확정 지을 수 없는 상황 아닌가요?? 혹시나 cur == NULL인 상태로 올 수도 있는 상황이라 생각하는데 잘못된 생각인지 궁금합니다!
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
현재 fpga를 시작하려고 vitis 설치를 하려고 하니 약 250기가더라구요... 현재 512기가(실질적 용량차이+윈도우 및 기본 프로그램 용량포함 450기가)짜리 노트북을 사용중인데 우분투에서 약 160기가를 먹고있어서 아무래도 wls를 포함한 전체적인 리눅스를 삭제해야할 것 같은데 어떻게 생각하시는지 여쭙고 싶습니다...
보드 앱은 안만들었습니다. 그냥 포스트 작성할 때 섬머노트를 적용하려고 하는데요. Specifying both 'fields' and 'form_class' is not permitted. 에러가 발생합니다. blog / form.py from django import forms from . models import Post from django_summernote . widgets import SummernoteWidget class PostForm ( forms . ModelForm ): class Meta : model = Post fields = [ 'title' , 'content' ] widgets = { 'content' : SummernoteWidget () } blog / models.py class Post ( models . Model ): title = models . CharField ( max_length = 50 ) content = models . TextField () created_at = models . DateTimeField ( auto_now_add = True ) updated_at = models . DateTimeField ( auto_now = True ) author = models . ForeignKey ( User , null = True , on_delete = models . SET_NULL ) category = models . ForeignKey ( Category , null = True , blank = True , on_delete = models . SET_NULL ) tags = models . ManyToManyField ( Tag , blank = True ) def __str__ ( self ): return f ' { self . pk } / { self . title } :: { self . author } ' def get_absolute_url ( self ): return f '/study/ { self . pk } /' blog / views.py class PostCreate ( LoginRequiredMixin , UserPassesTestMixin , CreateView ): model = Post fields = [ 'title' , 'content' , 'category' ] form_class = PostForm def get_context_data ( self , ** kwargs ): context = super ( PostCreate , self ). get_context_data () context [ 'categories' ] = Category . objects . all () context [ 'no_category_post_count' ] = Post . objects . filter ( category = None ). count () return context # UserPassesTestMixin를 만족시키기 위한 함수 def test_func ( self ): return self . request . user . is_authenticated or self . request . user . is_staff # 유효성 검사 def form_valid ( self , form ): current_user = self . request . user if current_user . is_authenticated and ( current_user . is_staff or current_user . is_superuser ): form . instance .author = current_user response = super ( PostCreate , self ). form_valid ( form ) # 1. PostCreate라는 클래스가 Submit 버튼을 통해서 POST 형태로 전송될 때 get을 해서 특정 값을 가져온다. # 그리고 그것을 tags_str에 담는다. # 2. get('tags_str')이 html 파일에서 태그를 입력한 input 태그의 name과 같은 값이어야 한다. # 3. 입력된 tag 값을 포매팅 후 리스트에 담는다. # 4. 반복문을 통해서 태그를 구분하고 태그를 기존 태그와 아닌 것으로 구분 후 아니라면 새로 생성한다. # 5. 새로 생성한 태그는 slug를 직접 입력 후 저장한다. # 6. 생성된 객체에 태그를 추가한다. tags_str = self . request . POST . get ( 'tags_str' ) if tags_str : tags_str = tags_str . strip () tags_str = tags_str . replace ( ',' , ';' ) tags_list = tags_str . split ( ';' ) for t in tags_list : t = t . strip () tag , is_tag_created = Tag . objects . get_or_create ( name = t ) if is_tag_created : tag .slug = slugify ( t , allow_unicode = True ) tag .save() self . object .tags.add( tag ) return response else : return redirect ( '/study/' ) 코드 내용은 이렇습니다.. 오늘 부트스트랩 안쓰고 UiKIT 써서 한다고 하다가 crispy 적용시킬 때 안되가지고 구글링 미친듯이 하면서 forms 사용법 배우다가 결국 못했는데 포기하고 부트스트랩 적용시키고 나서 이번엔 섬머노트 적용시키려고 하니까 이번에도 form이 절 괴롭히네요...12시간 코딩해서 막히는 구간 뚫었을 때는 정말 기쁜데 이렇게 또 막히고 답을 모르니 막막하네요...ㅠ 답변 좀 주시면 감사하겠습니다.. forms.py 에서 fields를 field로 적으면 오류가 납니다. django.core.exceptions.ImproperlyConfigured: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form PostForm needs updating.
안녕하세요 강의 잘보고 있습니다. 다름이 아니라 해당 강의을 전부 보고 궁금한 점이 생겼습니다. hello-form.html로 클라이언트가 접속을 하면 서버는 해당 정적 파일을 보내주는데 이때 전송이라는 버튼을 누르면서 action이 발생하게 되면 서버내부에 /request-param로 맵핑되어있는 파일을 보여주는것을 이해하면 될까요?