개념글 모음

요약

(1) 소스파일 정리 완료

(2) 의상 시스템도 정리 완료 + 제대로 붙는 것 확인 완료

(3) MVC 패턴이라는걸 공부해서 적용할려고 하는 중...인데, 여기서 막혀있음


상세

(1) 소스파일 정리 완료

- 저번까지의 작업량은 지나치게 이론적으로 소스코드를 작성하다보니까

  객체의 캡슐화, getter/setter준비, @property 데코레이터 사용등....너무 복잡해서 감당이 안되는 상황이 발생함

- 결국 어차피 getter/setter 준비해서 쓸거면 굳이 캡슐화가 필요가 없는 것들이 워낙 많아서 몽땅 정리했음...

  이 부분은 현대 객체지향 프로그래밍 가이드에서도 권장하는 부분이라서 싹 다 정리했음

- 겸사겸사 불합리한 구조도 정리해서 기존대비 소스파일 크기가 전부 절반정도로 줄었음

- 그러면서 전역변수의 import처리때문에 제대로 인식이 안되는 상황이 많아서 전역변수를 매개변수로 받는 방식으로 개조함

- 다만 그러면 매개변수가 너무 많아지니 전역변수를 모두 담고 있는 SYSTEM이라는 클래스를 준비해서, 초기 시작시에 만들어지는

  이 클래스 객체를 통해 관리되도록 설계함

  겸사겸사 CSV로부터 읽어들인 명칭을 반환하는 ABLNAME(index)형태의 메서드도 요 객체에 잔뜩 준비함

  결과적으로 SYSTEM객체를 받아오기만 하면 불필요한 모듈의 import처리가 줄어서, 좀 더 안정성이 높은 구조로 개선되었음


(2) 의상 시스템도 정리 완료 + 제대로 붙는 것 확인 완료

- 이건 뭐...그냥 옮겨오는 과정이라서 사실 별 다른 건 없음

- 그냥 잘 되었다, 그 이상, 그 이하도 아님

- 그리고 "구멍이 뚫려있다" 는 개념은 아이디어가 떠오르지 않아서....우선순위는 최하위로 밀려버렸음

- 대신 기존의 TEQUIP쪽에서 관리하던 조교아이템(클리캡/유두캡/바이브 등)을 EQUIP쪽으로 옮겨서

  일상생활중에도 착용이 가능하도록 설계할려고 아이디어를 적용시켜놓았음


(3) MVC 패턴이라는걸 공부해서 적용할려고 하는 중...인데, 여기서 막혀있음

- Model/View/Controller의 약자이고, 대부분의 웹기반 앱들의 백엔드쪽 설계로 적용되어 있는 개념임

- Model은 처리하고자 하는 자료들과 이에 대한 처리방식이고, 여기서는 등장인물(즉, 캐릭터)과, 상호작용 코드(이동/야스/청소 등)임

- View는 화면에 보여주는 것이고, 여기서는 tkinter(GUI)임

- Controller는 사용자가 입력한 명령어를 수신하여 이를 확인하고

  적절한 처리요청을 Model에게 넘기고 View에게 화면갱신을 요청하는 등, 최초의 사용자입력을 받는 인터페이스 파트임

  근데, 이 부분은 잘 모르는 분야이다보니 계속 쳐다보고 있는데 예시코드를 보면서 이해할려고 노력중인데......진전이 없음

- 현재 생각하고 있는 에라의 경우, 기존 에라와의 차이점으로 생각하고 있는 핵심포인트가 바로 DAYEND가 없는 구조라는거임

  무슨 말이냐? 잠자고 일어났다고 해서 캐릭터들 상태가 초기화되는 것도 아니고, 잠도 편히 못잔다는 소리임

  홍마관NTRproto하면서 아쉬웠던게, 도망치고 싶거나 좆됐다 싶으면 그냥 빨리 깨고 빨리 자면 된다는거임

  근데 버젓이 아직 방문자가 돌아가지도 않았는데, 이 방문자들이 아나타가 자는데 가만히 있다고......? 라는 생각이 든 거임

  즉, 아나타가 잠들어도 계속 캐릭터들은 정해진 패턴/랜덤한 패턴에 의거하여 알아서 할 일을 계속 해야 한다는 거임

- 그래서 기존 에라가 사양이 낮아도 돌릴 수 있는 정도였으면, 요건 실시간으로 실행되는 부하가 상당히 큰 에라가 되는거임

  상정한 타임은 게임내 시간으로 3분 또는 5분마다 9 + @개 캐릭에 대한 행동선택/동작수행 패턴이 반복되는 구조임

  만약 7시간을 잘 경우 5분 기준 시간당 12회의 선택을 조작 캐릭터빼면 8 + @개가 하는거니 총 600번 이상의 선택이 발생함

  물론 동작은 매번 선택하는 것은 아니고 선택한 동작이 다 끝나고 다음 선택에 들어가니 실제 부하는 더 낮을 예정임

- 그리고 다시 말하지만, 이게 제대로 되어야 내가 할 일이 줄고, 동시에 나중에 캐릭터들끼리 알아서 물고 빨고 하는 것이 가능함

  각 캐릭터별 전용인터페이스의 구현은 너무 비효율적이고, 범용성이 낮고, 재활용도 안되는 구성임

  이 상황에서 성능문제가 터진다? 저 MVC패턴의 Model쪽을 최대한 효율적으로 구성해야 된다는거임

- 근데 내가 빡대가리라서 미안하다...여기서 막혀서 지금 진전이 없다....

  아직도....

  이해할려고 쳐다보다는 중 + 이해가 안되서 갸우뚱 + 어떻게 설계해야 효율적이지?

  로 계속 빙글빙글 도는 중임

  다만, 적어도 기존의 전형적인 MVC패턴으로는 무리라는 결론에 도달중임


PS

- 이번달은 주말에 현생을 살고, 평일은 시간이 넉넉해서 주말 연재는 없음

- 진짜 도저히 안되거나 무리라고 판단되면 작업하던거 올린 뒤에, 글 올려서 런치게 되었다고 말할거임

  비명횡사가 아닌 이상 갑자기 아무 말 없이 잠수/런치는건 내가 쪽팔려서 안함

- 조언이나 아이디어, 간단한 개념 설명같은 도움은 대환영임

  다만, 혹시나이지만 지금 내가 하는 작업에 참가하고 싶다는건 거절임

  먼저 기본틀이 전부 완성되고 나서 받고 싶음

  이건 내 스스로의 동기부여 및 능력 향상을 위한 프로젝트라서 다른 사람이 대신 코드를 짜는 순간 의미가 없어짐