2024-09-11(수) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
막상 글을 쓰려고는 하는데 냉정하게 글을 쓰기가 어려울 것 같다.솔직하게 말하면 지금까지 공부하면서 오늘만큼 참담한 심정을 느껴본 적이 없었다.찾아가는 방법까지도 다 맞췄는데, 정작 이걸 볼 줄을 몰라서 찾지를 못하고 있다.다른 사람들은 하루도 안걸리거나 하루만에 찾아내는 반면에 나는 이틀을 쏟아부어도 찾아내질 못했다.자신의 능력이 부족하다는 것을 알고 있었지만 오늘은 그게 더 뼈저리게 느껴졌다.뭐라고 해야할지 모르겠다.그렇다고 이걸 안하고 손을 뗄 수는 없으니 내일은 온종일 여기에 다시 몰두하는 수 밖에 없다.안되면 될 때까지 해야한다.그것 말고는 지금 생각나는 것은 없다.
2024-09-10(화) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
요즘 들어서 제때 자고 제때 일어나는 것이 생각처럼 쉽지가 않다.자려고 하면 조금이라도 더 해보자고 하다가 늦게 잠들고.그러면서 일어나는 시간은 빠르면 30분, 늦으면 1시간 정도를 더 늦게 일어난다.차라리 좀 더 일찍 잠들었으면 어땠을까 하는 생각이 최근 들어서는 많이 들게 된다. 오늘은 락 프리 스택에 대한 문제를 파악하는데 하루를 쏟아부은 것 같다.어제도 이야기했던 바가 있지만 멀티스레드에서는 파일 입출력으로 로그를 찍는 것이 의미가 많이 없어진다.그래서 메모리 상에서 상태를 찍어두고 이걸 확인할 수밖에 없다.특히나 동기화 객체도 쓰지 않는 락 프리 알고리즘이 적용되었다면 더더욱 그럴 것이고.락 프리 알고리즘과 관련해서 가장 대표적인 ABA 문제를 직접 맞닥뜨리게 되었다.처음에는 로그를 보는 것이 ..
2024-09-09(월) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
결국 또 밤을 샜다.아무래도 해야 할 것이 있는데 이걸 그대로 내려놓고 잠에 들기에는 맘이 편하질 않았다.새벽 동안 해결은 하지 못했지만, 생각을 하면서 어느 정도 해결해야 할 방향은 잡을 수 있었다. 학원에 도착해서 생각했던 것들을 다시 정리해가며 코드로 옮겨 구현을 했다.결과는... 처음보다는 나아졌지만 또 다른 문제를 맞이했다.데드락 문제는 해결이 됐지만 잔상이 남는 것이 문제였다.점점 만들면서도 코드가 기괴해지는 것을 느끼면서 이게 맞는가 싶기도 했는데.여기서 뭔가가 더 부족했던 모양이다.이 부분의 원인을 찾아서 고치고 나면 또 어떤 문제가 생길지는 모르겠지만 말이다.그래도 계속해서 개선되고 있다는 점에 의의를 두기로 했다. 오늘 수업에서는 락 프리에 대한 개념을 익히기 시작했다.일단은 스택부터 ..
2024-09-08(일) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
멀티스레드가 참 어려운 이유는 뭐 하나를 해결했다 싶으면 또 다른데서 뭔가가 터진다는 점이다.이전에 메세지, 패킷을 날리는 부분에서 잘못한 부분은 동기화 문제도 아니었고 로직 문제였기 때문에 차라리 나았다.지금은 동기화와 관련한 문제가 생겨서 이 부분을 해결해야 하는 상황이다.이동이나 공격 관련해서 메시지가 오고 가는 것은 이제 문제가 없다. 다만 이동 중에 3개의 스레드에서 동시에 락을 얻으려는 상황이 생기면서 데드락이 발생하는 문제가 있다.아마 어딘가에서 잘못한 것이 확실하기 때문에 이 부분을 해결해야만 한다.분명히 어느 정도 흐름 선에서는 이게 맞겠다는 결론이 섰고 그걸 구현을 하는 것까지는 좋다.단지 실제로 구동을 했을 때는 내 생각처럼 되지 않는다는 것이 문제다. 멀티스레드로 뭔가를 만들고 잘 ..
2024-09-07(토) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
주말에도 생활 습관을 잡으려고 조금 일찍 자려다보니 어제 글을 쓰는 것을 잊고 있었다.주말만 되면 주중에 쌓였던 피로를 풀고 싶어서 그런지 거의 정오가 다 되어서 일어나게 된다.그렇게 늦게 일어나면 너무 많이 잔 것이 아깝다고 생각을 하게 되고.결국 더 잔만큼 늦게 잠들려고 하다보니 일요일이 되면 거의 밤을 새다가 월요일 아침에 학원을 나가게 된다.한 주의 시작을 항상 효율적이지 못하게 보내다보니 악순환이 계속 되어서 이걸 깰 필요가 있었고.이걸 깨려면 결국 토요일부터 조금씩 고쳐나가는 수밖에 없어서 일찍 자기 시작했다. 문제라면... 이제 곧 추석이라는 점이지만 말이다.연휴라고 해서 분위기에 사로잡혀 놀 여유는 없다고는 하지만 내 뜻대로 될 것이라고 볼 수도 없고.최대한 내가 생각했던 방향으로 연휴를 ..
2024-09-06(금) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
오늘은 수업은 없는 날이다.아무래도 진도를 따라가기 위해 약간의 시간을 주고자 하는 원장님의 배려가 아니었을까 하는 생각도 한다.수업이 없다고 해서 쉴 이유는 없으니 학원에서 구현하던 것을 마저 구현하기로 했다.어제 실마리를 찾지 못했던 것을 오늘은 어떻게 해서라도 찾아야 했기 때문이다.그래도 천만 다행이었던 것이 계속해서 비슷한 패턴이 재현이 됐다는 것이다. 어디서 문제가 있을까 하고 봤는데...동기화 문제도 아니었고, 자료구조의 문제도 아니었다.순전히 내가 로직의 구현을 잘못해서 벌어진 일이었다.가만히 잘 생각을 해보니 이미 완료가 되어서 다 없어진 곳에다가 집어넣으면 당연히 이상하게 되는 것인데.그걸 미처 생각하지 못하고 예전에 쓰던 코드를 그대로 갖다가 쓰려다보니 벌어진 참사였다.생각을 더 했어야..
2024-09-05(목) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
아직도 평소에 비해서 일어나는 시간이 30분 정도는 늦춰졌지만 어느 정도는 돌아온 것 같다.이제 매일마다 조금씩 앞으로 당기면서 예전 생활 패턴으로 돌아가기만 하면 된다.물론 잠드는 시간을 앞당겨서 자는 시간을 더 확보하는게 가장 좋겠지만. 오늘도 멀티스레드 구조의 MMO 서버를 구현하는데 하루를 꼬박 보냈다.일단 전체적인 기능은 다 완성을 했는데 문제는 버그가 있다는 것이다.싱글스레드일 때는 맛보지 못했던 분신술부터 시작해서 보냈던 메시지가 꼬이는 등 문제가 하나 둘이 아니었다.동기화 문제인지, 아니면 내가 로직을 잘못짠 것인지에 대한 확신이 서질 않아서 고생을 많이 했다.지금도 답을 내리지는 못한 것이 더 씁쓸하지만. 그래도 멀티스레드 공부를 한다는 생각으로 문제가 생기는 부분들을 확실히 짚고 넘어가..
2024-09-04(수) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
밤을 새고 들쭉날쭉 했던 생활이 길었던 탓인지 아직은 늦게 일어나는 편이다.엄청 늦은 것도 아니지만 엄청 빠르게 일어난 것도 아닌 애매한 시간대에 눈을 뜨게 된다.그래도 원래 일어나려던 시간에 점차 가까워지고 있으니 개선되고 있다는 것에 의의를 두는 것이 좋을 것 같다. 어제에 이어서 오늘도 MMO 서버를 멀티스레드 구조로 바꾸는 것으로 하루를 보냈다.기존에 만들었던 것에서 일부 변경해야 하는 점들도 있다보니 바로 이식하는 것이 쉽지는 않았다.쉽지 않다고 해서 안되는 것은 또 아니었고.하나씩 천천히 옮겨가면서 만들다보니 접속과 이동 처리까지는 어떻게 끝이 났다.문제는 동기화 부분에서 문제가 있다는 점이지만.이 부분은 아마 내일, 지금 글을 쓰고 있는 오늘 쯤에야 다루게 될 것 같다.여기만 확실히 된다면 ..
2024-09-03(화) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
생활 패턴이 조금씩은 돌아오고 있는 것 같아서 다행이다.물론 아직 일어나는 시간이 많이 늦기는 하지만, 전보다는 나아졌다는 것에 의의를 둘까 한다.어제에 이어서 만들었던 MMO 서버를 멀티스레드로 바꾸는데 하루를 보냈다.이전에 만들어뒀던 것이 있으니 금방 하겠거니 싶었는데 생각처럼 쉽지는 않았다.아무래도 싱글스레드 구조를 멀티스레드로 바꾸면서 생각해야 하는 부분들이 문제였다.전에는 락을 걸고 푸는 과정이 없었기 때문에 흐름이 바로 이해가 됐는데.여러 스레드에 의해서 처리가 되는 것을 생각해야 하다보니 어디서 문제가 생길지 쉽게 떠오르질 않았다.어제 수업 때도 다뤘던 것들이긴 하지만 막상 구현을 하려고 하니 어떻게 해야할지 감이 쉽게 오지도 않았고.아직도 큰 그림이 쉽게 그려지지 않는 것도 문제였고.우선은..
2024-09-02(월) 하루를 회고하며
·
게임 서버 개발자를 꿈꾸며/매일마다 회고하기 (2024년)
어찌저찌 수업 진도를 나갔던 곳까지 구현하는 것은 따라가는데 성공했다.그나마 다행인 것은 이번에 추가하는 것은 생각처럼 어렵지는 않았다는 것이 다행이었다는 점이다.물론 만드는 중에서도 잘못 만든 부분들을 계속해서 찾고 고치는 것은 여전하지만 말이다.지금까지 만들었던 것들이 알고 보니 제대로 만든 것이 아니었다는 문제들이 생각보다 많았다.정신을 차리고 만들었어야 했는데 왜 그런 실수를 했나 싶은 것들이 많았다.완성하는 데에만 급급하다보니 중요한 것들을 항상 잊고 지나가는 것 같다. 이제 할 일은 기존에 구현했던 MMO 서버를 만들었던 IOCP 네트워크 라이브러리를 적용하는 것이다.전에 만든 MMO 서버가 있기 때문에 별도로 고생은 많이 하진 않겠지만, 만들면서 또 분명히 터지는 부분들이 있을 것이다.아직도..
sevenshards
게임 서버 개발자를 꿈꾸는 사람