차장님의 이야기 (28) 썸네일형 리스트형 C++의 offsetof 매크로 뜯어보기 C++에서 Reflection을 구현하기 란 내용을 보던 중, 신기한 함수가 있어 바로 XCode를 열고 코드를 확인을 할려고 하였으나 "?" 란 문자가 나오면서 나는 몰라... 라고 하는 XCode를 보았다.. 그래서 조금만 더 검색해서 데이터를 결국엔 찾았다. Cppreference.com 에서 정의는 The macro offsetof expands to an integer constant expression of type size_t, the value of which is the offset, in bytes, from the beginning of an object of specified type to its specified member, including padding if any. 이라고 .. C#의 UdpClient 생성자 및 동작 조금 더 자세하게 분석을 하고 글을 작성하고 싶었으나, 나의 실력의 부족인 문제로... 못하게 되었다. UdpClient..! 이름만 들으면 네트워크 프로토콜 중 UDP 를 사용 할 수 있게 해주는 클래스로 보인다. 맞다. UdpClient는 Udp 통신을 통괄 하는, 사용이 가능하게 해주는 객체이다. Udp 통신을 해주는 클래스는 UdpClient이름만 보고 UdpServer도 있을것 같지만 Server기능 또한 Client에 들어가 있다. 그래서 C#에서 Udp 서버를 만들려면 UdpClient를 사용한다. 본 글은 UdpClient를 아무 생각 없이 사용 했을 때 발생할 수 있는 버그를, 오류를 작성 하였다. 특정 장비에서 인바운드, 아웃바운드 포트를 맞춰 줘야지, 데이터를 읽을 수 있는 특수 장비.. 유니티의 CBD(Component-Based Development) 구현 해보기 게임 개발을 할 때, 또는 무언가를 개발 할 때 OOP 기반으로 개발을 주로 하는데 OOP의 단점이 상속을 계속 하게 되면 내용이 비대 해지고 관리가 힘들어 지며, 거대한 코드가 되고 만다. 그래서 상속(수직적) 구성이 아닌, 컴포넌트(수평적) 기반으로 새로운 패턴이 나왔다. 상속을 하는것이 아닌, "컴포넌트" 단위로 개발을 하는것이고, 새로운 기능을 추가 할 때 마다 "컴포넌트"를 만들어서 추가 하면 된다. 실제로 동작하는 방식이나, 코드를 보면 엄청 쉽게 이해가 된다. 코드 작성은 C++로 하였고, 공부용으로 사용 했다. #include #include #include class component; class object; class userComponent; class adminComponent; .. Swift에서 Udp 사용하기 성공! Swift에서 네트워크 통신을 어떻게 하는지 검색을 정말 많이 했다. 대표적으로 SwiftIO, SwiftSocket, Alamofire, Moya 등등 많이 검색을 해 보았지만 계속 연결을 실패 했다고 알림이 떠서... 하아.. 왜 도대체 안되는거지 하고 생각을 했는데 결국엔 원인을 찾아 냈다. 그 이유는 프로그램이 샌드박스 형식이여서 권한을 주지 않으면 무조건 실패 했다.. Info.plist 권한을 추가해보기도 하고 다 안되었는데 결국에 된 방식은 Project -> Signing & Capabilities -> App SandBox -> Network에 권한을 In, Outgoing을 추가해주면 되었다..! UDP 통신으로 통신을 성공적으로 하는 모습이다. 개발하면서 느꼇던 부분이지만 전에 맥의 .. IOS에서 Itunes에 파일 목록에 나오게 하기. 개발을 하던 도중 파일이 제대로 만들어졌는지, 파일이 제대로 돌아가는지를 확인 하기 위해서 디버깅을 할려고 하고 있는데. PC에서 확인하기가 너무 어려운것이다.! 그래서 Itunes에서 파일 목록을 뜨게 하는 방법을 검색 했더니 바로 나왔다. 파일 경로는 : .documentDirectory 에서 .userDomainMask 에 있는 경로 이다. Directory와 DomainMask가 각각 어떤 의미를 하는지 공부를 해야할것 같다. 결과는 아래이며, 폴더 또한 나올것 같다. 만드는 방법은 놀랍게도 매우 간단했다. Info.plist에 Application supports iTunes file sharing 권한을 True, 즉 Yes로 권한을 주기만 하면 된다. SwiftUI에서 MapKit 사용하기 SwiftUI에서 MapKit을 사용 하는 방법을 찾아보고 있었는데. UIKit을 사용해야지만 가능하다고 한다. 그 이유를 보니 SwiftUI는 모든것을 다 구현하지 않았으므로 UIKit을 사용하라고 하고, 기존의 호환성을 위하여 UIKit을 함께 사용 하는 방법을 제공해주고 있었다. UIViewRepresentable 를 상속 받으면 SwiftUI에서 쉽게 사용이 가능하다고 한다. struct GPSView : UIViewRepresentable { let locationManager = CLLocationManager() let view = MKMapView() func makeUIView(context: UIViewRepresentableContext) -> MKMapView { view.shows.. IOS 13.5 업그레이드 시 테스팅이 불가능한 이유. 놀랍게도 이유가 XCode 11.4 버전에 IOS 13.5 버전의 SDK가 없어서 아이폰이 빌드조차 안되었고, 아이폰으로 설치 조차 안되었던 것이다! 해결방법은 XCode 베타버전으로 올리는 방법밖에 없다고 한다.. https://stackoverflow.com/questions/61863826/iphone-is-not-available-please-reconnect-the-device iPhone is not available. Please reconnect the device I'm on iOS 13.5 and using Xcode 11.4 to build on to it. I'm getting this error message: Yes, my iPhone is called KBlackberry :).. Visual Studio For Mac의 WinForm 프로젝트 관련 문제 Visual Studio For Mac 버전에서 개발을 하다 문제가 있어 글로 쓰게 되었다. 해당 문제의 심각도는 중 이라고 본다. 그 이유는 빌드 또는 Nuget 패키지가 모든 프로젝트에 영향을 주기 때문이다. 솔루션 파일 안에 Visual Studio 2019 (Windows) 버전에서 작업하던 .Net Core 기반의 WinForm 과 .Net Core 콘솔 프로젝트를 다수 만들어서 개발을 하고 있을 때 윈도우 환경에서는 정상적으로, 문제 없이 빌드, 또는 누겟 패키지 매니저가 정상적으로 동작을 한다. 하지만 Mac버전일 때는 상당히 다르게 결과물이 나오게 된다. 결과물은 Build Fail. 사유는 MSBuild 또는 패키지를 복원할 수 없다고 출력이 된다. 왜 이런 현상이 생기나 하면서 테스트를.. 이전 1 2 3 4 다음