평범한 일상 / 하기 싫은 일 하는 방법 / Unity와 Photon
1. 평범한 일상
2. 하기 싫은 일 하는 방법
3. Unity와 Photon
평범한 일주일이었다. 저녁에 강남곱에서 회사사람들이랑 모둠곱창이랑 맛있는 볶음밥 먹고 어김없이 옥상 나들이하고 사촌오빠도 만나고 유행하는 라벨 테스트도 했다.
그 유명한 강남 곱! 야근 안 하려다가 곱창 먹는다 그래서 야근했다. 맨날 웨이팅 때문에 다른 집 갔는데 이 날은 사람이 별로 없어서 좋았다. 이름이 치즈계란밥인가 얘도 되게 맛있었다.
이번 주는 미세먼지 대잔치라 옥상에 오래 못 있었지만 꽃은 예쁘더이다!
요새 유행하는 라벨 테스트를 해봤다. 솔직히 있는 질문마다 애매해서 고민하다가 선택했는데 뭐, 얼추 맞다. ‘나도 안 할 테니까 너도 강요하지 마’가 제일 공감 가고 Why? 는 뭐 개발자라면 달고 사는 말이니까 맞고 내가 나라서 좀 좋은 것도 맞고 그 밖에 내용들은 크게 공감은 안되는데 어떤지 모르겠다! 아 근데 Bad가 낫띵인 건 조금 뿌듯 헤헤
거의 몇 년 만에 사촌오빠를 만나 근황 얘기를 들었다. 오빠가 되게 아팠었다. 엄마에게 대충 들었던 내용과 비교가 안될 만큼 힘겨운 시간들을 버텨왔었다. 오빠가 한 마디 한 마디 할 때마다 탄식과 함께 어떻게 버텼냐는 말이 절로 나왔다. 너무 고생했겠다 싶어 밥도 잘 안 넘어갔다. 그 힘든 고비들을 잘 넘기고 나랑 밥 먹는 게 너무 고맙고 다행이었다. 오빠 이제 진짜 아프지 말어 8ㅅ8
주말에 연남동에 다녀왔다. 일요일에 맡은 일이 많아지면서 토요일 약속을 잘 안 잡는 경향이 있었는데 연남동에서 네일 받은 친구가 불러내주어 아주 오랜만에 바깥을 다녀왔다. 사람구경도 하고 옷 구경도 하고 예쁘게 꾸미고 설레는 마음으로 약속 자리에 나온 사람들을 보니 나도 왠지 모를 설렘이 들었다. 참 연남동에서 버스 타고 책 읽으면서 오다가 종점까지 가버린 거 비밀.
저번 주에 딴생각하지 말고 맡겨진 일에 충실해야겠다고 마음을 먹었다. 그때도 새로운 일에 스트레스받겠다 예상은 했는데 역시나 새로운 언어 새로운 일은 어렵고 힘들었다. 하던 일, 익숙하고 편한 일 하고 싶다는 생각이 자꾸 들었다.
이럴 때 내가 취하는 방법은 ‘그냥 하기’다
하기 싫은 일을 하는 방법이 그냥 하기라니 말이 좀 이상해 보이지만 내 경험상 그냥 하기가 최고의 방법이다.
하기 싫은 이유를 가만히 생각해 보면 익숙한 일만큼 쉽게 안되니까 하기가 싫은 거다. 그럼 답은 간단하다. 익숙해질 때까지 그냥 하면 되는 거다. 잘하려고 애쓰지 말고, 하다 보면 자연스럽게 잘해지는 거다.
하기 싫은 일을 잘하려고까지 하면 더 하기 싫어진다. 생각 없이 뇌 빼고 해 보자. 그럼 어느새 익숙해져 있는 나를 발견할 수 있을 것이다. 하기 싫을 땐 그냥, 그냥 하자!
예제를 따라 만들면서 뭐 하는 함수지 했던 몇 개의 함수를 리마인드 해보려고 한다. Document에서 발췌해 온 내용인데 그냥 내가 느끼고 이해한 대로 좀 써보려고 한다.
MonoBehaviour.Awake
얘는 스크립트가 포함된 GameObject가 초기화 됐을 때나 비활성 상태였던 GameObject가 활성화 됐을 때, Object.Instantiate로 생성된 GameObject가 초기화 됐을 때 불린다고 한다.
개인적으로 리액트에서 useEffect(()=>{}, []) 같은 느낌이 들었다. 이 함수도 애플리케이션이 시작되기 전 변수 및 states를 초기화할 때 사용하면 된다.
GameObject.GetComponent<T>
지정된 GameObject에서 T타입의 Reference를 가져온다.
ScriptableObject
클래스 인스턴스에 독립적이면서 큰 양의 데이터들을 save 할 수 있는 데이터 컨테이너이다. 이건 드롭다운 만들 때 드롭다운에 들어갈 string이 프로젝트 검색으로 안 찾아지길래 뭐지? 했더니 ScriptableObject로 만들어서 Unity에서 Asset파일을 추가해 주는 형태로 프로젝트 내 데이터들을 save 할 수 있게 해 주었다. constant한 값들을 이런 방식으로 저장하면 좋겠다.
그밖에 게임 서버 운영 방식에 세 가지가 있다는 것도 알았다. Photon Fusion 서버를 이용해서 Multiplayer 게임을 테스트해보고 있었는데 이때 Host는 그럼 누가 만들지? 싶었다. 마침 백엔드 선배님이 공유해 주신 자료에 이에 대한 내용이 있어 쉽게 이해할 수 있었다.
종류 세 가지는 전용서버, 리슨서버, P2P 서버이다.
그중 전용서버가 가장 대표적이고 일반적으로 사용된다고 한다. 이는 전용서버가 호스트로서 방을 파놓고 클라이언트는 방에 들어가 플레이하면 되므로, 연산은 서버가 맡아서 하고 개인의 컴퓨터는 쾌적하게 플레이할 수 있는 것이다. 단점이라면 연산을 담당하는 서버의 고정비용이 발생한다는 것.
리슨서버와 P2P 서버는 둘 다 전용서버가 아닌 플레이어가 호스트를 담당한다는 공통점이 있다. 서버에 대한 고정비용이 들지 않는 장점 또한 둘 다 가졌다는 뜻이다. 다른 점은, 리슨서버는 플레이어 중 한 명이 호스트를 맡고 P2P는 모두가 호스트를 맡는 점이 다르다.
리슨서버는 한 명이 호스트를 맡기 때문에 호스트의 기기 성능에 따라 품질이 달라질 수 있고 호스트가 게임을 종료할 경우 일시정지 하고 다시 다른 플레이어에게 호스트를 넘겨주는 과정이 필요하다는 단점이 있다.
P2P서버는 리슨서버의 단점이었던 일시정지하고 다른 플레이어로 호스트를 넘겨주는 과정이 필요가 없다. 서로 이어져있기 때문이다. 하지만 서로 이어져있기 때문에, 플레이어가 많아지면 연산이 기하급수적으로 늘어난다. 따라서 이 서버를 사용할 땐 통상적으로 16명을 넘기지 않는다고 한다.
여기까지 이번 주 일기 끝! 확실히 월요일보다 금요일에 일할 때 편했다. 5일 만에도 확실히 익숙해졌는데 시간 지날수록 더 좋아지겠지. 스트레스 너무 받지 말고 아자아자ㅏ!