진짜 개인적인 잡담이며, 관련 내용은 별개의 정리 포스팅으로 올리고 있습니다. 디자인 패턴 공부하면서 조금 충격받은게 내가 inheritance와 access modifier조차 이해를 잘못하고 있었다는 사실이다. 단순한 예로 private으로 지정한 클래스 변수는 서브클래스에서 접근이 불가능할 뿐 상속은 되는 거였는데, 상속이 안되는걸로 착각을 하고 있었다. 내 프로그래머 인생이 몽땅 야매였다는 느낌을 받았다. private variable 또는 backing field를 서브클래스에서 어떻게…
[카테고리:] 기타
메인 카테고리 소속되지 않는 개발 관련 팁
Design Pattern: Decorator
Decorator pattern은 객체의 기능을 동적으로 확장하고자 할 때, 또는 상속받을 클래스가 상속이 불가능할 때 사용되는 디자인 패턴이다. 게임의 예를 들면 맵을 돌아다니다가 일시적으로 공격력이 강화되거나, 속도가 빨라지거나, 방어력이 강화되는 아이템을 먹는 경우를 생각해 볼 수 있다.이런 효과들은 중첩되어 적용도 가능하다. 또 익숙한 예로는 text editor를 생각해볼 수 있다. 볼드, 이탤릭, 칼라변경등 기본 텍스트를 꾸며주는 기능들이…
Unity: 매우 혼란스러운 Vector3 사용에 대한 이해
unity를 써보면서 기본적이면서도 당황스러운 녀석이 Vector3였다. transform.position.set()을 해도 먹히지가 않네? update()안에서 이렇게 new를 남발해도 되나? 같은 것들. 다른 언어들을 다루다보면, Vector는 당연히 객체로 다룬다. 거기다가 new까지 쓰고 있는걸? 당연하게 머리속에 있던 내용들이 혼란스러워진다. 답은 마음에 안들겠지만 의외로 간단한데, C#에서 Vector는 구조체 타입이다. 그리고 이 구조체 타입은 기본 타입인 int, float, char, enum등과 같이 value type이라서…
Unity: C# 문법에서 익숙하지 않은 부분만 모아보기
C#을 한 번 훑어보면서 익숙하지 않거나 다른언어와 헷갈릴만한 부분만 추려봤다. 이런게 있다고 언급하는 선이기 때문에, 모든 정보를 얻으려 하지말고 관련 키워드를 이용해 검색해보기 바란다. foreach 대부분 다 C/C++하고 같은데, 다른 언어에서 익숙한 foreach문이 추가로 있다. 추가로 있다고 하기에 좀 민망하긴 한데, C++ 11에도 추가되어 지원하고 있는 문법이다. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/foreach-in 참조. format string Kotlin, Python에서 자주쓰던 format…
Design Pattern: OOP Design에 대한 단상
C++을 처음 접할 때가 생각난다. 캡슐화, 상속, 다형성만 알면 OOP에 대해 될거 같았다. 아니었다. 이것들을 이용해서 어떻게 ‘잘’ 디자인할지를 훈련해야 했는데 못했다. 오랜기간 회사에서 개발자로 지냈지만, 그 때 못한 훈련이 계속 내 발목을 잡았고, 후회가 되었다. 그래서 뒤늦게 나마 디자인 패턴을 공부중이다. 나이를 먹어서인지, 경험적인 내용들은 머리에 들어오는데, 이론적인 얘기들은 휘리릭 빠져나간다. 그래서 경험적인 야매…