03/04
또 한번 돌아온 반성회.. 이때도 다같이 회의실에 모여 개발하며 신경써야 하는 것들을 체크
Async 의 문제
이건 무슨 문제였나면... async => await => promise 로 이어지는 구조에서, await 걸어놓은 상태로 객체가 없어진다거나 하는 경우, 그 이후 부분들이 전부 대상을 찾지 못해 에러가 발생하는 문제였다.
심지어 await 가 돌아오기까지 어떻게든 돌아가는 것 처럼 보이는게 더 문제라서.. JS 엔진에는 존재한다고 나타나는 상태여도, 또 cocos 에는 이미 지워진 상태이기도 하고 디버깅을 어렵게 만드는 문제도 있었다. 이건 또 v8엔진의 가비지 컬렉터 문제이긴 한데.. 아무튼 총체적 난국이 발생한다는 뜻.
그래서, await 이후로는 항상 async 걸어놓았던 것들이 존재하는지 여부를 확인하는 것이 좋다. 개발하면서 디버거를 계속 붙여 놓고 하면, 저런 exception 오류들을 잡기에도 더 쉬워지니, 어느 쪽이든 습관을 잘 들이는 것이 바람직한 문제.
MVC 원칙
mvc 패턴이 뭔지는 착한 프로그래머들은 다 알고 있을 거라고 생각하지만, 간단하게만 설명하면
Model - View - Controller 로 구성 요소를 세 가지 역할로 분리하여 관리하는 방식이다.
Model 은 데이터와 비즈니스 로직 담당. View 나 Controller 에 의존하지 않는 독립적인 형태.
View 는 UI 담당. Model 에서 데이터를 받아 표기하며, 변경은 수행하지 않는다.
Controller 는 사용자의 입력을 받아 요청을 처리하여, Model 의 데이터를 변화하고 View 의 내용을 결정한다.
설명은 애플리케이션에 가깝지만, 모든 개발에 대부분 적용할 수 있다. 그 편이 관리와 확장 용의성에서 유리하기 때문.
내용은 클라이언트 UI 코드에서, 존재하는 정보들을 수정하는 경우들이 발생하는 경우였다. View 에 해당하기 때문에, 해당 정보를 참조할 뿐 아니라 수정하는 곳이 존재하여, 문제 발생시 어디서 어떤 식으로 수정되고 있는지 확인하기가 어려워 지는 문제.
변수 같은 경우 getter 와 setter 를 만들어서 수정하고 관리하는 것이 권장되고,
기타 다른 항목들도, 필요에 의해 수정하는 부분들을 Model 에 함수로 빼서 수정하는 것이 권장된다.
'공부 > TIL•기타' 카테고리의 다른 글
| DeepLink (0) | 2026.01.10 |
|---|---|
| 정적 / 동적 라이브러리 (0) | 2025.12.18 |
| CGI (0) | 2025.12.10 |
| ORM Document / Docset (0) | 2025.12.01 |
| Breakpoint (0) | 2025.11.25 |