목록분류 전체보기 (363)
나만의 작은 도서관

사건의 발단: 갑작스레 늘어난 청구 비용부트캠프 다닐 시절에 만들었던 EC2 인스턴스와 RDS 인스턴스를 다시 설정하기 귀찮다는 이유로 계속 방치해 두었다. 정확히는 ‘새로운 프로젝트에서 재사용할 거니까 굳이 삭제하지는 말자’는 마인드였다.그렇게 매달, 지금까지 방치해 두었던 인스턴스들로 인해 10,000원 안팎의 비용이 발생하고 있었다. 인스턴스 자체는 프리티어라 과금이 발생하지 않지만, 인스턴스를 여러 개 사용하기도 했고, Elastic IP도 사용하고 있었던 터라 추가 요금이 발생하고 있던 것이다.그런데 갑자기 6월 청구 비용이 10,000원이 아닌 67,000원이 찍힌 것이다. 건드린 게 하나도 없는데 67,000원이라니… 무엇 때문인지는 모르겠지만 더 이상 인스턴스를 방치해 둘 수 없었다. 결국..
주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. https://pledge24.tistory.com/531 [AWS] 모든 리전에 대해 비용이 발생한 리소스들을 찾아서 지우는 법사건의 발단: 갑작스레 늘어난 청구 비용부트캠프 다닐 시절에 만들었던 EC2 인스턴스와 RDS 인스턴스를 다시 설정하기 귀찮다는 이유로 계속 방치해 두었다. 정확히는 ‘새로운 프로젝트에서 재pledge24.tistory.com

주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. DB 처리 함수는 동기 함수이다.어느 DB를 사용하던, DB에 접근하여 쿼리나 트랜젝션을 처리할 때는 항상 커넥션 객체를 통해야 한다. 그래서 서버는 커넥션 객체의 멤버 함수를 사용하여 쿼리문을 보내고, 그 결과를 확인한다./* 서버 */ /* DB */[커넥션 객체] -----쿼리-----> [테이블]문제는 쿼리를 보내거나 트랜젝션을 보내는 함수는 대부분 동기 함수라는 것이다. 예시로 윈도에서 SQL문으로 작성된 쿼리를 보내는 SQLExecDirect 함수가 있는데, 이 함수는 동기함수라서 함수를 호출한 서버는 DB에서 해당 SQL문에 대한 처리가 완료될 때까지 다음 코드를 진행할 수 ..

주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. 안 해봤지만 유추해 보는 로스트아크 서버 아키텍처현재 게임 시장에서 MMORPG는 메타에서 많이 벗어난 장르이다. 캐릭터의 성장을 위해선 시간을 많이 태워야하고, 돈도 많이 들기 때문에 간단하게 찍먹하기 좋은 모바일 수집형 게임들에 비해 접근성이 낮기 때문이다.그럼에도 불구하고, 우리나라에는 로스트아크와 메이플스토리처럼 MMORPG 장르라고 부를 수 있는 게임들이 남아있다. 오늘은 이 중 로스트아크의 서버 아키텍처 일부를 유추해보고자 한다. 로스트아크의 특이한 점: 엄청 많은 채널의 개수 로스트아크는 다른 MMORPG 게임들에 비해 유독 채널의 개수가 많다. 최근에 하는 게임인 라테일만 봐도 월드 서버당(하나밖에 안 남긴..

주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. AABB의 한계이전 글에서 AABB의 충돌 판정을 하는 법에 대해 알아보았다. AABB의 충돌 판정을 처리하는 알고리즘은 굉장히 빠르며, 게임에서 활용하기 좋다는 장점이 있었다.문제는 AABB만으로 모든 게임 장르에 등장하는 충돌 판정을 처리할 수 없다는 것이다. 어디까지나 충돌체의 회전 개념이 없을 때에 한정되어 사용할 수 있는 것이지, 로스트아크, 탕탕 특공대와 같이 탑다운 방식의 게임에선 투사체의 발사 방향과 상관없이 충돌체 도형을 AABB로 고정시킬 순 없다. 결국, AABB 만으로는 탑다운 방식의 게임에선 회전된 사각형 충돌체에 대해 처리해야 한다. OBB(Oriented Bounding Box)의 충돌 처리 방..

주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다. 온라인 게임에서 피격 판정은 클라이언트, 서버 중 어디에서 해야 할까?2명의 유저가 통신을 통해 싸우는 격투 게임을 한다고 가정해 보자.(예로, kof나 철권 등이 있다) 랭크 전을 돌린 여러 유저들 중 비슷한 등급을 가진 유저 A와 유저 B가 매칭되었고, 이 둘이 게임을 한다면 서로가 내지른 주먹에 의해 상대방이 맞았다는 판정을 서로의 클라이언트에 두고 서버가 판정을 그대로 적용하면 될까?당연히 안된다. 게임에 참여한 클라이언트가 핵 유저라면 어떻게 할 것인가? 극단적인 예시로, 핵 유저가 게임에 참여해서 핵을 난무한다면 같은 기술을 1초에 10번 넘게 상대방을 맞췄다고 뻥을 쳐서 상대방을 순살 시킬 수도 있을 것이다...