GarlicDipping's tech blog
RSS Feed

Articles

  • nGrinder SSLHandshakeException 에러 대응하기

    서론

    로드 테스트 용도로 nGrinder를 유용하게 쓰고 있던 중, 얼마 전 AWS의 Cloudfront를 붙이면서 SSLHandshakeException 문제가 발생했다.

    Cloudfront에서 https 옵션을 사용할 경우 기본적으로 TLSv1.2를 지원하는데 ngrinder의 HTTPClient 코드는 이를 지원하지 않아 발생하는 것으로 보인다.

    nGrinder 공식 문서나 각종 예제에서 이용하는 HTTPRequest (net.grinder.plugin.http.HTTPRequest) 클래스 대신 아파치 HttpClient를 래핑한 groovy 플러그인인 http-builder를 이용하면 급한 불은 끌 수 있다. 보다 근본적으로는 nGrinder의 HTTPRequest 클래스 코드를 고치는 것이 최선이겠지만, 아파치의 HTTPBuilder 관련 클래스를 이참에 사용해 보는 것도 나쁘지 않을 것이다.

    Read More »

  • 2019년 7월 2주차 스크랩

    서버

    Read More »

  • 유니티 realtimeSinceStartup 대체하기 - 모바일 환경에서의 Monotonic Time 구현 및 분석

    서론

    유니티의 Time.realtimeSinceStartup은 이런저런 용도로 쓸 곳이 많다. timeScale의 영향을 받지 않기도 하고, 게임이 백그라운드로 내려간 상황에서도 시간을 카운트하므로 실시간 서버를 사용할 수 없는 환경에서 시간을 시뮬레이션하는 용도로도 이용 가능하다.

    하지만 2017.4.26f1 버전 기준으로 안드로이드에서는 치명적인 버그가 있다. 앱을 백그라운드로 내리는 부분은 괜찮은데, 앱을 띄운 상태에서 화면을 껐다가 다시 켜면 realtimeSinceStartup이 제대로 카운트되지 않는 문제다.

    도당체 무슨 로직으로 이 놈이 돌아가나 알 수만 있으면 좋겠는데, 유니티는 오픈 소스 프로젝트가 아니니 Time 클래스를 뜯어보고 싶어도 뜯어 볼 수가 없다…

    없으면 만드는 법, 앱이 백그라운드로 내려가더라도 정상적인 Elapsed Time을 받아올 수 있도록 네이티브 코드를 짜기 위해 Time에 대해 이런저런 조사를 하며 알게 된 부분들을 적어둔다.

    Read More »

  • 2019년 6월 5주차 스크랩

    유니티

    코드

    기타

    Read More »

  • Swift로 유니티 iOS 네이티브 플러그인 만들기

    현재 개발중인 게임의 개발 마무리 단계가 다가오면서, 미뤄뒀던 구현 사항들을 슬슬 하나둘씩 매듭지어야 하는 시기가 왔다.

    그 중 하나가 공지사항을 띄우기 위한 용도로 이용할 웹뷰였다. 이런저런 유니티 웹뷰 플러그인들이 있지만 아마 gree에서 공개한 gree-webview가 가장 널리 쓰이는 물건이 아닐까 싶은데, 솔직히 말하자면 단순 공지 웹페이지 Get 용도로만 사용할 플러그인으로서는 기능이 지나치게 많고 무거웠다.

    프로그래밍을 배운 뒤 처음으로 프로젝트를 제작했던 플랫폼이 안드로이드였기도 했고, 트위터 로그인 연동을 위해 얼마 전 iOS용 Swifter 프로젝트를 유니티로 연결했던 경험도 있었다 보니 웹뷰 플러그인을 직접 만들기로 결정했다. (레이아웃 만들어서 웹뷰로 꽉 채워버리면 땡이라 제작에 그리 오래 걸리지도 않았다.)

    해당 플러그인은 GarlicWebview-Unity 라는 이름으로 깃허브에 올려두었습니다. 관심 있으시면 한번 확인해 보세요!

    다만 코딩 편의성을 위해 Objective-C 대신 Swift로 플러그인을 제작했다 보니 유니티 공식 문서의 가이드라인만 보고 연동하기가 쉽지 않았었는데, 그 부분에 대해 적어보고자 한다.

    Read More »