본문 바로가기

전체 글304

개발자를 위한 팟캐스트 추천(공개 예정) 보호되어 있는 글 입니다. 2023. 4. 23.
5천억 원짜리 SW버그 해당 기사의 링크는 다음과 같다. https://zdnet.co.kr/view/?no=20131118093913 5천억원짜리 SW버그가 주는 메시지 버그는 프로그래머의 숙명이다. 김밥을 마는 손에 밥풀이 묻는 것처럼, 비트와 바이트를 만지는 손에는 버그가 달라붙는다. 다익스트라(Dajikstra) 같은 사람은... zdnet.co.kr 해당 사건에 대해 간단히 요약하면, 나이트 캐피털(Knight Capital)이라는 회사에서 8대 서버 중 마지막 8번 서버에서 사용되지 않던 레거시의 변수가 새 버전의 소프트웨어를 출시하면서 활성화되어 45분만에 5천억 원의 손해를 입게 된 것이다. 여기서 우리는 사용되지 않지만 존재하고 있는 코드에 대한 위험성을 알 수 있다. 이러한 코드를 삭제하지 않고 오랜 시간이 .. 2023. 4. 16.
우당탕탕 포켓몬 스칼렛/바이올렛 고정 난수 이슈 작년에 포켓몬 스칼렛/바이올렛이 출시되고, 3일만에 1천장이 판매되고, 일본 내 판매량이 450만장을 기록하면서 판매 신기록을 세웠다. 그렇지만 프레임 드랍, 다양한 버그들이 존재하는 게임이기도 하다. 다양한 버그 중, 랭크 배틀 이전에 해결해야 했던 고정 난수 이슈에 대해 간단히 글을 작성해 보겠다. 한 줄로 요약하면 모든 배틀에서 똑같은 고정 난수를 이용했다는 것이다. 포켓몬은 배틀시 명중률 시스템을 채용하고 있는데, 이 고정 난수 때문에 기술 적중 여부가 확률로 정해지는 것이 아닌 직전에 어떤 기술을 사용했는지에 따라 고정된다. 즉, 다음 기술이 맞을지 맞지 않을지가 정해져 있어서 해당 기술의 명중 여부를 스스로 결정할 수 있다. 예를 들어 특정 기술 뒤에 30% 명중률인 기술을 쓰면 100% 명중.. 2023. 4. 9.
메모리 구조 글 +a 메모리 구조에 대해 발표자료를 만들면서 5분 내로 이야기해야 해서 빠진 내용이나, 궁금한 내용들을 추가로 찾아본 게시글이다. 1. memory pool? 1.1. 정의 고정된 크기의 블록을 할당하여 malloc, c++의 new와 같은 연산자와 유사한 메모리 동적 할당을 가능하게 해주는 전략. 1.2. 목적 malloc, new는 다양한 블록사이즈 때문에 단편화를 유발시키고, 파편화된 메모리들은 실시간 시스템에서 사용하기 어렵기 때문이다. 또한, 사용해야 할 리소스는 많지만 메모리 용량은 한정되어 있을 경우에 필요하다. 시스템 콜, 메타 데이터도 메모리 풀의 이용 목적이 된다. 그래서 memory pool이라는 동일한 사이즈의 메모리 블록을 할당해 놓는다. 그 결과, 응용 프로그램은 실행 시간에 핸들에 .. 2023. 4. 9.