728x90

정글 128

24.04.10 서버 프로그래밍

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의..

24.04.08 서버 프로그래밍, 백준

게임 서버 프로그래밍 교과서 3장 소켓 프로그래밍 온라인 게임 프로그래밍에서 소켓은 파일 핸들 방식과는 약간 다르다. 게임 서버에서는 다루어야 하는 소켓 개수가 많다. TCP를 이용해서 통신하는 경우 클라이언트 개수만큼 소켓이 있어야 한다. 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 한다. 디스크를 읽거나 쓸 때 사용하는 read(), write() 함수는 호출 후 실행이 완료될 때 까지 리턴하지 않는다. 소켓을 이용해서 읽기/쓰기를 하는 함수를 호출 했는데 즉시, 리턴하지 않는다면 이들을 호출한 메인 스레드는 사용자 입장에서 일시정지 하는 것 처럼 보인다. 이러한 이유 때문에 네트워크 프로그래밍에서 소켓은 보통 비동기 입출력(Asynchronous I/O) 상태로 다룬다. 소켓을 비동기 입출..

24.04.04 회고

회고 하쿠나마타타 오늘 발표를 마무리하고, 새로운 주제를 받았다. 각 스택에 대한 준비와 알고리즘을 다시 해보는 주간이다. 나와 여러명의 사람들은 게임을 하고 싶어했고, 정글의 극 초반부터 게임을 해보자라고 말한 상태였기에, 코치님에게 유니티를 활용해서 게임을 만들어도 괜찮을지 여쭈어보고, 그에 대한 좋은 답변을 얻었다. 하지만 원장님이 반대 수준이 아니라 혼을 내실거라는 말을 해주셨다. 게임에 대한 프라이드. 우리들은 게임을 쉽게 보고 결정한 것이 아니다. 5주만에 재미있는 게임이라는 것 자체가 오히려 더 어려운게 아닐까?? 물론 나는 웹을 해본적이 없기 때문에 비교해 볼 수 없지만, 게임이 5주만에 뚞딱뚝딱 하고 만들어지는게 아니라는 것은 알고있다. 그러기 때문에 더 당당하게 말할 수 있다. 게임을 ..

24.04.03 PintOS

야호!!!!!! 성공적으로 project3를 끝마친 것 같다. 생각보다 너무 잘했고, 힘들었지만 그만큼의 성취감도 있었다. 야호~ PintOS bool file_backed_initializer(struct page *page, enum vm_type type, void *kva) { /* Set up the handler */ page->operations = &file_ops; struct file_page *file_page = &page->file; file_page->aux = page->uninit.aux; return true; } swap in을 위해서 page->uninit.aux를 file\_page->aux에 받아왔다. static bool file_backed_swap_out(str..

24.04.01 운영체제, PintOS, 백준

아니 벌써 4월임..ㄷㄷ 이거 신기한거시와요 하와와 어느새 4월이 왔슴니다.. 어느새 2분기가 시작했다구욧!! 시ㅣㄴ나기한거시에요… 운영체제 34. 분산시스템 웹브라우저가 지구상 어딘가에 있는 웹 서버에 접속하면 클라이언트/서버 분산 시스템이라는 구조에 한 구성원이 된다. 분산 시스템의 핵심 사안은 실패와 고장의 극복이다. 개별 구성요소들은 자주 고장나지만 기계들은 고장없는 시스템처럼 보이도록 만들 수가 있다. 또 다른 중요한 문제가 있다. 시스템 성넝은 매우 중요한 요소이다. 분산된 시스템들을 연결하는 네트워크에서는 시스템 설계자들은 주어진 목적을 달성하는데 많은 신경을 써야한다. 마지막으로 보안 역시 매우 중요한 요소이다. 원격 사이트를 접속할 때, 접속한 사이트가 진짜 원했던 사이트인지를 확신할 수..

24.03.31 운영체제, PintOS

운영체제 33. 데이터 무결성과 보호 33.1 디스크 오류 모델 디스크는 완전하지 않으며 오류가 발생할 수 있다. 현대의 디스크들은 정상적으로 동작하는 것처럼 보이지만 블럭들을 읽는데 실패하는 경우가 있다. 우리가 살펴볼 만한 것은 두 가지 종류의 단일 - 블럭 오류가 있다. 각각은 숨어있는 섹터 에러(Latent Sector error, LSE)와 블럭손상(block corruption)이다. LSE는 디스크 섹터가 어떤 이유로든 손상되었을 때 발생한다. 예를들어, 디스크 헤드가 표면에 어떤 이유로 닿았다면(head crash, 일반적인 상황에서는 일어나면 안된다) 표면을 망가뜨릴것이고 비트들을 읽을 수 없게 만든다. 강한 방사선도 역시 비트를 반전시켜서 내용을 부정확하게 만들 수 있다. 다행스러운 것..

24.03.30 운영체제, PintOS

운영체제 32. 크래시 일관성 : FSCK와 저널링 여타 자료구조와는 다르게 파일 시스템의 자료구조는 안전하게 저장되어야 한다. 파일 시스템이 가진 가장 큰 어려움은 전력 손실이나 시스템 크래시가 발생하는 상황에서도, 어떻게 안전하게 디스크 상의 내용을 갱신하는 가에 대한 문제이다. 전력손실이나 크래시 때문에 디스크 상의 자료구조를 안전하게 갱신하는 것은 상당히 까다로운 작업이 된다. 파일 시스템은 크래시 일관성(crash - consistency)라는 새롭고 흥미로운 문제에 직면한다. 어떤 특정 작업을 위해 자료구조 A와 B를 갱신해야 한다고 했을 때 디스크는 한 번에 하나의 요청만 처리할 수 있기 때문에 두 요청 중 하나의 요청이 먼저 디스크에 도달할 것이다. 하나의 쓰기 작업만 완료한 상태에서 시스..

24.03.29 운영체제, PintOS

운영체제 31. 지역성과 Fast File System 구형 파일 시스템의 장점은 단순하다는 것이며, 파일 시스템의 가장 기본적인 개념인 파일과 디렉터리만을 제공한다. 31.1 문제 : 낮은 성능 문제는 성능이 형편없다는 것이다. 구형 파일 시스템의 핵심 문제는 디스크를 마치 임의 접근 기억 장치(RAM)처럼 사용한다는 것이다. 데이터를 저장하는 매체가 디스크라는 사실을 무시하고 여기저기에 데이터를 저장하고 있기 때문에 디스크 헤드를 이동시키는데 많은 시간이 소요된다. 더 안좋은 것은 파일 시스템이 빈 공간을 효율적으로 관리하지 않기 때문에 결국에는 공간이 단편화된다. 빈 공간들이 디스크 전역에 흩어져 있으며, 새로운 블럭 할당시 무조건 리스트에서 다음 빈 블럭을 할당한다. 그 결과 파일을 순차적으로 읽..

24.03.28 운영체제, PintOS, 백준

운영체제 30. 파일 시스템 구현 30.1 생각하는 방법 파일 시스템에 대해 학습할 때, 두 가지 측면에서 접근할 것을 권장한다. 첫 번째는 파일 시스템의 자료구조이다. 즉 파일 시스템이 자신의 데이터와 메타 데이터를 관리하기 위해 어떤 자료구조가 있어야 하는지 여러 파일 시스템은 배열과 같은 간단한 자료구조로 표현하지만 SGI의 XFS와 같은 파일 시스템은 좀 더 복잡한 트리 기반 자료 구조를 사용한다. 두 번째 측면은 접근 방법(access method)이다. 프로세스 호출하는 명령들은 자료구조와 어떤 관리이 있는가? 특정 시스템 콜을 실행할 때 어떤 자료구조들이 읽히는가 파일 시스템의 자료구조와 접근방법을 이해하였다면, 실제 동작 방식에 대한 개념 모델을 제대로 정립하는 것이다. 30.2 전체 구성..

10Weeks_CoffeeChat

CoffeeChat 주제 : 이력서 이력서의 목적 종이만으로 나를 알리는 것이다. 나를 선택하게 만드는 수단. 신입에게 기술스택이나 프로젝트가 신뢰가 잘 가지 않는다. 다른 것을 보여주어야 하지 않을까.. ← 다른것이 무엇이 있을까? —>>> 트러블 슈팅관련 내용 이력서의 내용 집중해야하는 부분 → 이 회사가 원하는 부분, 이 회사의 인재상 내 능력이 당신 회사의 이런 이런 부분에 도움을 줄 수 있을 것 같다. 그 회사가 필요로 하는 부분을 공략해라 이 회사가 무엇을 하고 있고, 무엇을 원하는지 잘 체크해야 한다. 수많은 이력서 중 잘 눈에 띄게 하는 것이 좋다. >> 글보다 이미지 같은 것을 넣어도 좋다. 보는 사람의 입장에서 이력서를 적어라. 친절하게 이해할 수 있게 좋은 이력서는 좋은 경력을 가지고..

728x90