int 와 float는 똑같은 4byte의 크기인데 왜 표현가능한 수의 범위가 다를까? 이 문제에 대한 해답을 간략하게 설명하고자 한다. 1. int와 float의 구조 다들 알다시피 int와 float는 4byte 즉, 총 32비트로 구성되어있다. 하지만 float는 int와 달리 굉장히 큰 범위를 가지고 있다. 그러한 이유는 다음과 같다. int는 단순한 32비트 구조이기 때문에 2^-31 ~ 2^31 - 1 의 범위를 갖는다. 하지만 float는 32비트가 int처럼 단순하게 하나로 구성돼있는 것이 아닌 부호비트(1bit) * 지수(8bit) * 유효자리비트(23bit)의 32비트로 구성되어있다. 그렇기 때문에 int는 대략 42억의 수를 표현할 수 있는 반면에 float는 1.175494351 E..
TIL/잡담
우선 팀원들과 확고하게 어떤 장르로 게임을 만들지 정했기에 계획을 세우는 부분에 있어서 굉장히 수월하게 진행됐다. Figma나 기능명세서를 이용하여 본인의 역할과 게임을 어느 방향으로 어떤 기능을 만들지 탄탄하게 세웠다. 하지만 예상과는 반대로 많은 변수들이 있었는데 이러한 것들을 통해 느낀점을 말하고자 한다. 1. 처음부터 너무 큰 틀을 잡으면 안된다 위에서 말했듯이 디펜스 게임을 목표로 설정하고 계획을 세우고 있었다. 그 중에서 디펜스를 멀티로 하면 어떨까? 아이템은 이러이러한 것들을 해서 하면 어떨까? 이러한 질문들이 마구 쏟아져 나왔다. 이를 모두 수용하고 개발을 하기도 전에 거의 다 계획에 넣었다면 변수가 생겼을 때 대처하기 어렵다. 보통 기능을 분담할 때 연관된 기능을 묶어서 배정하는데 만약 ..
오늘은 이번 주 팀 프로젝트를 대비해서 정리한 노션 목록을 설명하고자한다. 1. 프로젝트 기획 팀원들과 무슨 주제로 어떠한 것을 만들 것인지 회의를 한 내용을 적는 곳이다. 주로 프로젝트 명과 프로젝트 내용이 있고 이러한 내용을 정리해놓으면 프로젝트의 방향성을 나중에도 알 수 있어서 만들어놓았다. 2. 프로젝트 규칙 팀 프로젝트라면 빠질 수 없는 폴더와 깃허브 규칙이 들어가있다. 폴더 규칙을 정해놓으면 팀원 끼리 폴더 명이 뒤죽박죽 되어서 헷갈리는 일을 방지할 수 있다. 깃허브 규칙은 커밋과 브랜치/머지 규칙이 있는데 커밋과 브랜치/ 머지는 팀 협업에 있어서 굉장히 중요하다. 팀원들간의 작업목록이 분별되지 않고 그 상태에서 머지를 진행한다면 프로젝트는 결국 터지고 말 것이다. 이러한 부분에 있어서는 확실..
이번주는 팀원들과 같이 콘솔로 게임을 만드는 프로젝트를 진행했다. 팀은 총 4명으로 팀장인 나와 팀원 3명으로 구성됐다. 팀원들은 우선 협업과 코딩이 미숙하다고 먼저 답해주었다. 그 후 팀원과 대화를 나누며 프로젝트를 어떻게 진행할지 생각해봤다. 고민했던 점 1. 클래스를 하나로 두고 기능을 담당하는 함수를 모두 적을까 ? -> 그렇게 되면 Git에서 병합을 할 때 엄청난 충돌과 너무 많은 코드 양 때문에 오히려 프로젝트 진행이 안좋아질 수 있다. 2. 그러면 싱글톤 패턴을 적용해서 클래스를 세분화하여 관리할까? -> 그렇게 하면 클래스와 인터페이스를 이용해서 간단하고 깔끔하게 관리할 수 있고 객체의 불안정성을 해결할 수 있다. 하지만 코딩이 미숙한 팀원이 싱글톤 패턴을 이해하고 잘 사용할 수 있는지에 ..