본문 바로가기

분류 전체보기

(502)
4. 클라이언트에서 서버에 연결 요청하기 - connect() 1. header #include 2. function int connect(int socket, const struct sockaddr *server_address, socklen_t addrlen); 1) int socket : 서버와 연결할 소켓 2) struct sockaddr *server_address : 서버의 주소를 가지고 있는 sockaddr 구조체의 포인터 3) socklen_t addrlen : server_address 포인터가 가르키는 구조체의 크기 4) return : 성공 실패 0 -1 3. 사용 #include #include #include #include #include int main() { const int port = 80; int sock = socket(AF_IN..
[Unity] UGUI Multiple Sprite 만들기 + 이미지 자동으로 자르기 UGUI를 쓰다보면 Sprite 하나에 여러개의 이미지가 붙어 있는 것을 보게됩니다. 요것을 만들어 보겠습니다. 1. 이미지 파일 Multiple Sprte로 만들기 우선 Multiple Sprite 로 만들 이미지를 프로젝트에 추가시켜 줍니다. 한개의 이미지에 1부터 4까지의 숫자가 들어가 있는 이미지를 사용해 보겠습니다. 클릭해서 Inspector창을 열어줍니다. 제일 위에 있는 Texture Type을 Default에서 Sprite (2D and UI) 로 바꿔줍시다. 그 다음 Sprite Mode를 Multiple로 바꿔주고 Apply 해줍니다. 이제 Sprite Editor로 Sprite를 여려개로 잘라주시기만 하면 됩니다. 1,2,3,4 를 각각 드레그 해줘서 4개의 이미지로 만들어 줬습니다...
Git LFS (Large File Storage) - 100MB 이상의 파일을 깃허브에 올리기 git에는 LFS (Large File Storage)라는 기능이 존재합니다. LFS란? git에서 크기가 큰 파일을 다루기 위해서 github에서 만든 오픈 소스 입니다. 용량이 큰 파일을 외부 스토리지에 올리고 git에는 LFS (Large File Storage)라는 기능이 존재합니다. LFS란? git에서 크기가 큰 파일을 다루기 위해서 github에서 만든 오픈 소스 입니다. 용량이 큰 파일을 외부 스토리지에 올리고 리포지토리(Repository)에서는 포인터로 관리합니다. github link : https://github.com/git-lfs/git-lfs/releases/tag/v2.7.2 git-lfs/git-lfs Git extension for versioning large files..
[Unity] GraphicRaycaster (UGUI 레이캐스팅 하기) 유니티의 UGUI는 Canvas의 Render Mode가 'Screen Space - Overlay' 일 경우 카메라를 사용하지 않고 렌더링 과정에서 그려진 오브젝트들 위에 덧그려진다. 이때 UI에 Raycast를 사용하려면 어떻게 해야 할 까? UGUI 오브젝트를 생성하면 자동으로 Canvas가 생성된다. 이때 Canvas를 살펴보면 Graphic Raycaster가 달려있는것을 볼 수 있다. 유니티 메뉴얼에 따르면 Graphic Raycaster는 캔버스 안을 검색하는 Raycaster이며, EventSystem이 이벤트를 검출하는 수단으로 사용된다는 것을 알 수 있다. 하지만 메뉴얼에는 Graphic Raycaster를 어떻게 써야하는지 스크립트 예시가 적혀있지 않다. 그래서 예시를 만들어 두려고 ..
[에픽스토어 무료배포] City of brass 에픽 스토어의 이번주 무료 배포게임 City of brass 입니다. City of brass는 아라비안 나이트 풍의 1인칭 액션 게임입니다. 링크 : https://www.epicgames.com/store/ko/product/city-of-brass/home City of Brass - 무시무시한 이빨을 드러낸 도시 BioShock의 시니어 개발자들이 만든 1인칭 액션 어드벤처 게임, City of Brass에서 대담한 절도범이 되어 플레이해보세요. 초승달과 변신 채찍으로 무장하여, 채찍질, 칼로 베어 버리기, 미끼 놓기, 함정 파기 등의 기술로 아라비안 나이트 분위기의 화려한 메트로폴리스의 중심부로 진입합니다. 단, 시간이 지체되면 죽음을 맞습니다. www.epicgames.com
3. 클라이언트의 접속요청 확인하기 - listen() 1. header #include 2. function int listen(int socket, int backlog); 1) int socket : 클라이언트의 접속요청을 받도록 설정 할 소켓 디스크립터. 2) int backlog : 대기 메시지 큐의 개수 3) return : 성공 실패 0 -1 3. 사용 #include #include #include #include #include #define PORT 80 int main() { int sock = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in addr; socklen_t len = sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(P..
[코딩인터뷰 완전정복] 4.5 BST 검증 Q : 주어진 이진 트리가 이진 탐색 트리인지 확인하는 함수를 작성하라. ...더보기 //Node.h template class TreeNode{ public: T data; TreeNode* parent; TreeNode* left; TreeNode* right; TreeNode(T data) { this->data = data; } }; #include #include "Node.h" bool isBST(TreeNode* top, int low, int high) { if (top == NULL) return true; if (low != NULL && top->data data >= high) return false; bool left = isBST(top->left, low, top->data);..
[코딩인터뷰 완전정복] 4.4 균형 확인 Q : 이진 트리가 균형 잡혀있는지 확인하는 함수를 작성하라. 이 문제에서 균형 잡힌 트리란 모든 노드에 대해서 왼쪽 부분 트리의 높이와 오른쪽 부분 트리의 높이의 차이가 최대 하나인 트리를 의미한다. ...더보기 // Node.h template class TreeNode{ public: T data; TreeNode* parent; TreeNode* left; TreeNode* right; TreeNode(T data) { this->data = data; } }; #include #include "Node.h" int checkBalanced(TreeNode* top) { int left = top->left == NULL ? 1 : checkBalanced(top->left) + 1; int ri..