본문 바로가기

전체 글

(918)
스프링 부트 코딩 공작소 이 책은 스프링 부트로 제작된 코드를 관리하게 돼서 보게 되었습니다. 스프링을 기본으로 알고 있다는 전제로 쓰인 책입니다. 책 후반부에 가면 여러 클라우드에 배포하는 방법과 부록들이 있습니다. 이 부분은 낭비라고 생각되었지만, 스프링 부트 시작과 유닛 테스트, 구성, 액추에이터 부분은 확실히 잘 설명한 책 같습니다. 유닛 테스트 테스트 코드를 작성할 때, 실제로 운용 중인 서버에서 테스트를 실행하는 방법이 제일 확실하지만 매 테스트마다 서버가 로드되는 시간이 있어 불편합니다. 이 부분에 대해서 스프링 부트에서는 어떻게 해결하고 있는지 설명하고 있습니다. 엑추에이터에 대해서 개발 및 배포 단계에서 운용 중인 앱의 상태 확인이 필요하다고 느꼈는데, 이 부분에 영감을 얻을 수 있었습니다. 여러 환경에서 운용되..
데드락 디텍터(deadlock detector) : 순환대기(Circular wait) 제거 말머리 코드 변경이 될 수 있으므로 되도록 링크로 가져 가시길 바라지만, 꼭 그렇게 하지 않으셔도 됩니다. 6년 전쯤 저의 코드에서 데드락이 발생 된 적이 있었습니다. 그때 락을 위에서 아래로 내려가게 걸면, 데드락에 빠지지 않는다고 알려 주신 분이 있었고, 저는 아이디어를 좀 더 보태서 코드로 데드락 디텍터(deadlock-detector)를 만든 것입니다. 모쪼록 모두 도움 되었으면 좋겠습니다. 서론 데드락-디텍터(deadlock-detector)란 말 그대로 "데드락 탐지기" 입니다. 데드락이란 제가 정의 하기에 락 자원 획득 시도가 무제한 대기하는 상태를 뜻하는 합니다. 데드락 디텍터(deadlock-detector)는 이러한 상태를 탐지하는 장치입니다. 데드락이 생기는 이유를 알면, 데드락 회피..
넥서스7 1세대, 롤리팝 업데이트 후 느려짐 현상 수정(버벅임) 넥서스7 1세대를 2013년경에 구입하여 쓰고 있었습니다. 새로운 버전이 나오면, 항상 최신으로 올려서 쓰고 있었는데, 요즘 이상하게 너무 느려져서 이상하다고 생각했습니다. 그래서 검색했습니다. 다음과 같은 방법이 있었고, 실제 효과가 있었습니다.모두들 효과가 있었으면 좋겠습니다.첫째, 넥서스7 캐시 파티션 초기화넥서스7 전원을 끈다.전원 + 볼륨아래 버튼을 누르고, 부트로더로 진입한다.부트로더에서 리커버리 모드로 이동한다. 명령어가 없습니다 라고 뜨면, 전원 버튼을 누른 뒤 볼룸 위 버튼을 한번 누른다. wipe cache partition 을 선택 실행한다.5번이 다 끝나면 "reboot system now" 을 실행한다. 둘째, 넥서스7 기능 끄기(실제 효과 있는 부분)자동회전 기능을 끈다(저의 경..
유니티3D에 자바 라이브러리 Jar 연동하기 (How to link Jar in Unity3D) 포스팅 목적기록정보 공유포스팅을 남기게 된 계기 유니티3D(Unity3D)에서 개발하다 보면, 자바 라이브러리만(네트워크 라이브러리 등) 따로 사용해야 할 때가 있습니다. 하지만 처음부터 사용해야 할 라이브러리를 연결 테스트 하다 보면, 빌드하는데 많은 노력이 필요할 수 있습니다. 그래서 라이브러리 연결만 테스트 하기 위한 샘플이 필요하게 되었습니다. 해당 샘플을 만들다 보니, 간단히 정리할 수 있을거 같아, 포스팅을 남기게 됩니다. 유니티3D(Unity3D)에 자바 라이브러리 Jar 를 연결하는 방법먼저 유니티3D(Unity3D)를 안드로이드 빌드 되는지 확인한다.(검색을 통해 찾아 보세요.)자바 라이브러리 Jar 파일을 만든다.(검색을 통해 찾아 보세요.) package com.test.include..
유니티3D를 위한 인 게임 디버그 콘솔 넣기 (In-game debug console for Unity3D) 포스팅 목적기록정보 공유인 게임 콘솔(Console)에 대하여유니티3D(Unity3D)에서 개발하다 보면, 유니티3D(Unity3D) 에디터가 아닌 플랫폼(모바일 디바이스, 설치한 PC 등)에서 로그를 봐야 할 때가 있습니다. 이때 로그를 보려면, 인터넷에 연결시켜 로그를 보내거나 해당 PC에 가서 로그 파일을 열어봐야 합니다. 이러한 절차는 간단히 로그만 확인하려 해도, 매우 귀찮은 작업이 되어, 개발 의욕을 떨어뜨릴 수 있습니다.그래서 유니티3D(Unity3D) 에디터가 아닌 플랫폼에서 게임 플레이 도중 로그를 확인하는 간편한 방법이 있어야 합니다. 그 방법 중 제가 제일 좋아 하는 방법이 게임씬에 콘솔(Console)이 같이 보이게 하는 방법입니다. 하지만 유니티3D(Unity3D) 에서 콘솔(Co..
유니티 암호화 2편, 외부 DLL 암호화 포스팅 목적기록피드백을 받기 위해공유개발 이유유니티로 컴파일 하여 배포한 APK 를 루팅한 기기(스마트폰 등)에서 APK 를 뽑아와 해체하면, 손쉽게 외부 DLL 에 접근이 가능합니다. 이렇게 접근 한 뒤 후킹 가능한 DLL 로 바꿔치기 하여, 다시 APK 로 묶으면, 손쉽게 해킹이 가능합니다. 또한 ILSpy 로 코드를 디스어샘블하여 볼 수 있습니다.그래서 외부 컴파일된 DLL 을 암호화 하여, 동적 로드 하여, 사용한다면, 조금이라도 해커를 귀찮게 할 수 있습니다. 이 내용은 다음 링크에서 확인 할 수 있습니다.링크http://unitystudy.net/bbs/board.php?bo_table=newwriting&wr_id=356http://www.slideshare.net/williamyang391..
디자인 패턴, 행위 패턴, 스트래티지 패턴(Strategy Pattern) 이 패턴은 생성(Creational), 구조(Structural), 행위(Behavioral) 패턴으로 나눌 수 있는 디자인 패턴 중 행위 패턴에 속합니다. 포스팅 이유무엇인가 이해하려 할 때, 다른 관점에서 이해 한것이 도움이 될 수 있습니다. 이해를 기록해 두기 위해 남깁니다.관련 링크http://hyeonstorage.tistory.com/146http://arabiannight.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%ED%8C%A8%ED%84%B4-1%EC%8A%A4%ED%8A%B8%EB%9E%98%ED%8B%B0%EC%A7%80-%ED%8C%A8%ED%84%B4Strategy-Pattern http://blog.naver.com/yeji_rang?Redirec..
유니티 암호화 1편, PlayerPrefs 암호화 포스팅 목적기록하기 위해피드백을 받기 위해. 버그 있을 때, 수정 할 수 있습니다. 링크도 가져 가세요. 공유 - 불펌 개념이 없으니, 마음데로 사용하세요.개발 이유 게임 정보를 서버에 다 저장해서 쓰려고 했는데, 회의 중 인터넷이 끊어져도 게임하는데 지장이 없어야 한다는 결론이 내려졌습니다. 그래서 로컬에 데이터를 저장해야 하는데, 유니티가 기본 제공하는 PlayerPrefs 은 손 쉽게 변조가 가능하기 때문에, 변조를 못하게 막아야 할 필요가 있었습니다. 그래서 유니티 보안 문서들을 보았고, 그 중에 PlayerPrefs 먼저 할 필요가 있어서, 기존에 다른 사람이 만든 코드를 찾아 보았습니다. 하지만 키를 숨기는 개념이나 value 암호화 개념을 사용하는건 찾지 못했습니다. 그래서 직접 개발(짜집기..