본문 바로가기

Anything

Unity C# Singleton 구현 4가지. Unity나 UE4 같은 게임 `엔진`에서, 혹은 대규모 프레임워크를 도입, 활용할 때 Singleton 패턴은 유용하긴 하지만, Life-Cycle과 어긋나 골을 울리는 주범으로 꼽힐 때가 제법 있습니다. 그 상황에서 활용가능한 4가지 Singleton 패턴의 변형을 알아봅니다. 1. Game Instance를 구성하고, Main Scene에 사전에 배치하여, 스크립트 컴포넌트를 Static Member에 올린 후 그 객체에 필요한 Singleton 클래스들을 MonoBehaviour 컴포넌트로 줄줄이 매달아 놓는 방법. * 이 구현은 여러개의 Scene을 Additive로 로드하여 게임을 구성할 때 유효한 구현입니다. * 단, Editor 상에서 애셋, 데이터들을 셋팅해줘야 하는 경우엔 이 방법은 적.. 더보기
오늘따라 UEFI가 말썽을... 저가형 삼성 노트북을 구입, 리눅스 민트를 깔아서 쓰던 중 아무리 그래도 이 퍼포먼스는 좀 아니다 싶었다. 흐흐 아,...... 밀어야지 흐흐 했으나 UEFI가 말썽을 일으키네?... 부팅 순서가 안바뀌는 버그(라고 해야할지...)가 있다. 그래도 grub에서 USB를 인식할 때 hd0로 첫번째로 잡는 걸로 봐서 아주 안바뀐건 아닌듯 하다.. 결론, 해결 방법은 심플하게 grub 커맨드 쉘을 활용하면 된다.GPT랑 MBR 모두 다 테스트 해봤으나 둘다 안되서 그냥 UEFI 호환 MBR에 FAT32로 USB 셋팅했다. (딴거는 UUID가 넘 길어서 손가락이랑 눈이 아프므로 FAT32가 좋다) > search (hd0, [TAB키 두번 눌러서 UUID 8자리를 확인해야한다]..................... 더보기
이더넷 디버그쉘 만들기 IP가 할당되지 않아도 이더넷 케이블만 있으면 라즈베리파이에 접근할 수 있고 라이브러리 의존성이 낮은 툴이 필요해서 그냥 만들었습니다. 귀찮아서 대충 만들었더니 코드가 병맛이 되어버렸네요. 크크 --> jaehoon@jaehoon-rasp:~ $ sudo make install 이렇게 명령을 주면 /usr/jaehoon 디렉터리에 설치됩니다. 당연하게도 절대경로를 입력하게끔 바꿔야되고 chmod 700 /usr/jaehoon/dbgeth 로 권한 조정해줘야되요. 그리고 나서 아래처럼 /etc/rc.local을 수정해주시면 되겠습니다. 이렇게 해주면 디버깅용으로 사용할 PC에서 "sudo ./dbgeth enx00e04c377596 -s 'sleep 1; ssh jaehoon@192.168.10.10'" .. 더보기
Raspberry Pi 3 최초 설정하기! 14년도 초에 라즈베리 파이 초기 모델을 가지고 놀았던 기억이 나서 이번에 3를 구매하게 되었습니다. 뭐, 블루투스랑 와이파이가 내장되서 편해진듯 합니다. USB 동글 안꼽아도 블루투스, 와이파이가 된다니! 흐흐!! USB as Serial TTY 기능이 있으면 더욱 좋겠지만 그런거 따위 있을리가 없죠. ㅋ HDMI를 지원하는 모니터는 있는데 여분 키보드가 없어서 애를 좀 많이 먹었는데 이걸 안해도 되게끔 하는 방법을 소개드리겠습니다. 저는 라즈베리 파이3 최초 셋팅할 때 블루투스 키보드는 있는데, 그 블로투스 페어링을 시켜줄 방법이 없는 황당한 경험을 했습니다. 아무 생각없이 미니미니한 블루투스 키보드를 "우오~~ 이거 귀여운데? 이거 사야겠다" 이러고 샀죠... 아무 생각없이...ㅋㅋ CLI도 GUI.. 더보기
리눅스 민트에 카카오톡 설치하기 + 자동화 스크립트 우선, 기반 OS 리포지터리에 들어있는 와인 버젼은 좀 많이 낮습니다. 그래서, 시작하기 앞서서 Wine 최신 안정버젼을 설치해야 합니다.여기에 설치 방법도 다 나와있지요. jaehoon@jaehoon ~ $ sudo dpkg --add-architecture i386jaehoon@jaehoon ~ $ wget "https://dl.winehq.org/wine-builds/Release.key" -O - | sudo apt-key add - jaehoon@jaehoon ~ $ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'jaehoon@jaehoon ~ $ sudo apt-get install --ins.. 더보기
구글 크롬 설치 후 PGP 키 에러가 발생하는 경우 W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used.GPG error: http://dl.google.com/linux/chrome/deb stable Release:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6494C6D6997C215EW: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpgThe followin.. 더보기
폰을 바꾼다. 하하 Samsung Galaxy S8! + 후기 거의 5년째 LG 옵티머스 뷰2를 써왔는데, 그게 드디어 맛이 가버렸어요. 이번에 랩톱 바꿀까 싶은데, 이정도 품질이면 삼성 울트라북도 괜찮을 것 같다는 근거없는 신뢰(?)가 생기네요. S8이냐 S8+냐를 고민한 끝에 별로 기능차이도 없는 주제에 비싼 S8+보다 S8이 낳다고 생각했습니다. 크기와 배터리 용량 빼고 달라진게 없어서... 그래서 그냥 S8을 선택함 ㅅㄱ! 후기 (2017-08-02) 아직 저 비닐을 제거하지 않았습니다. 강화유리(?) 글라스? 여튼 그거 하기 전에 기스가면 보기가 안좋을 것 같아서 저건 남겨뒀지요. 참고로 요즘 SKT 서비스 품질이 좀 뭐 같아서 KT로 갈아탔어요. 개통상 문제가 있는지 "요빅스비~ 엄마한테 문자 보내줘"이걸 못한다는... (어디서 본건 있어서 써보고 싶었음.. 더보기
Spinlock과 Read-Write Spinlock을 구현해보았다. 위 그림이 나타내는 것은 가장 단순한 형태의 상호 배제 개체입니다. 커널에서 특정 리소스를 보호하기 위해서 사용하는 가장 기본적인 방법입니다. Spinlock 스핀락은 위 상태 머신에서 나타내는 동작을 구현한 개체입니다. 단순한 카운터가 동시에 실행되면 안되는 어떤 흐름을 차단하기 위해서 사용된 케이스죠. 대표적으로 어떤 메모리 영역에 대해서 동시에 읽기와 쓰기가 일어나게 되면 흐름이 깨지게 되는 경우를 막기 위해 사용됩니다. 스핀 락을 얻기 위한 과정은 아주 간단하게 아래처럼 구현할 수 있습니다.acquire:push ebpmov ebp, esp push ebxpush esipush edi mov ebx, 1mov esi, [ss:ebp + 8]mov edi, [ss:ebp + 8]xor eax, ea.. 더보기
음, ... 리눅스에서 돌릴 수 있는 php 개발환경! 1. KDevelop php 확장jaehoon@jaehoon ~ $ sudo apt-get install kdevelop-php 2. Aptana Studio 3http://www.aptana.com/products/studio3.html (주의: 다운로드 속도가 좀 많이 느립니다) 다른게 더 있나요? 저는 개인적으로 Aptana Studio가 제일 편했었던 것 같네요. 자바스크립트, HTML, CSS, PHP 전부를 지원한다는 점이 정말 좋았습니다. 뭐, 위지위그를 지원하지 않는다는게 흠이라면 흠인데... JetBrain의 WebStorm은 빼버렸습니다. Netbeans는 뭔가 업데이트가 좀 느린것 같고... 가장 안타까운건 Aptana가 업데이트되지 않은지 좀 오래되었다는 것? 그게 제일 아쉽습니다... 더보기
커스텀 액션 메뉴 어플릿 - 원클릭 동작 수행! 얼마전에 제가 vsftpd로 파일을 주고 받는 것에 대한 포스팅을 했습니다. 거기서 vsftpd를 필요할 때에만 사용하시라고도 말씀을 드렸지요. 그러나 그건 너무 번거로운 과정이 아닐수가 없습니다. 이번에는 그것에 대한 포스팅을 해볼까 합니다.이런식의 메뉴를 출력해주는 어플릿이 있습니다. 이 메뉴는 완전히 "커스터마이징"이 가능합니다. 아래 스크린샷을 보실게요. 중사 계급 아이콘을 한 어플릿을 우클릭하면 아래 메뉴가 뜹니다.빨간색으로 하일라이팅된 저걸 눌러주시면 됩니다.이 파일의 내용을 편집해서 원하는 기능을 수행하는 것도 가능하지요. vsftpd를 끄고 켜는 스위치 만들기를 한번 해봅시다.vsftpd 끄기=gksudo "service vsftpd stop" vsftpd 켜기=gksudo "service.. 더보기