Express와 서버 공부하기

정글일지 48 날짜 2023년 6월 8일 목요일 계획 colyseus 코드 이해하기 팀원들한테 잘해주기 서버 구현 및 MongoDB 연결 회원가입 시 입력되는 유저 데이터 저장 기능 구현 Express 서버 구조 이해하기 결과 Express 서버에 대해 조금은 알게 됐다. 오늘 코치님과 면담을 진행했다. 현재 개선한 계획에 대해 아쉬움을 드러내셨다. 데이터를 어떻게 지칭(?)하는 지는 감을 잡았는데 실제로 어떻게 저장되는지 눈으로 확인하지 못했다. 회원가입과 관련된 HTML 을 대충 구현한 후 실제 가입 시 데이터가 저장되는지 확인해야 한다. TIL node.js 로 구현한 서버 ip : 일종의 대표번호 ...

2023년 6월 8일 · 3 분 · 배준수

백엔드 서버, DB 공부하기, 프로젝트 준비

정글일지 47 날짜 2023년 6월 7일 수요일 계획 node.js 서버 구현 공부 mongoDB 연결해보기 skyoffice 서버 공부 게임 기능 공부 프로젝트 계정 깃허브 개설 프로젝트 아이디어 재설정 및 구체화 출제용 알고리즘 문제 DB 찾아보기 TIL Node.js & express.js 를 통한 서버 구현 및 MongoDB 연결 terminal (나는 window라 powershell)에서 원하는 디렉토리에 npm init을 실행시켜 package.json 파일을 만들었다. 내용에는 내가 할 project에 관한 정보가 나와있고 내가 가져온 dependencies(mongoose, express 같은)가 나와있다. scripts에 "start":"node index.js" 코드를 추가시켜 index.js가 처음 시작되는 파일로 설정하였다. ...

2023년 6월 7일 · 3 분 · 배준수

초안 발표

정글일지 46 날짜 2023년 6월 6일 화요일 계획 초안 발표 TIL 발표 발표 자료는 초안 발표때 완성한 것에서 크게 바뀌는 것 없이 가도 괜찮다. 물론 추후에 추가해야 하는 내용은 추가해야 한다. 초안 발표때 변경해야할 사항을 발견하면 바로바로 수정하여 완성도를 높여놓자. 나중엔 디버깅하느라 바쁘다. 아이디어 현실성 아이디어에 대해 조사한다는 것은 그 주제애 대한 핵심 키워드가 반드시 나와야 한다는 뜻이다. 페어 프로그래밍 기획에서는 그 부분이 없었다. 페어 프로그래밍에서 핵심적인 기능도 없었고 그것을 위한 개념도 없었다. 좀더 자세하게 조사했어야 했다. ...

2023년 6월 6일 · 2 분 · 배준수

초안 발표 준비하기

정글일지 45 날짜 2023년 6월 5일 월요일 계획 대본 작성 및 완성 기술적 챌린지 내용 확정 PPT 내용 검수 및 흐름 파악 대본 암기 및 발표 연습 결과 주제 선정 배경이 생각보다 어려웠다. 적당히 타당성을 부여하면서 간결하게 표현하기 힘들었다. 기술적 챌린지는 아직 아무것도 모르는 상황에서 말하려니 어려웠다. 너무 쉽게 하기도 그렇고, 어려운건 이해하기 힘들고.. 시연 시나리오는 생각보다 중요한 것 같다. 모든 기능을 보여줄 수 없으니, 자연스럽게 핵심적인 기능을 녹일 수 있어야 한다. 오늘 배운 내용 nginx 멀티 플레이 환경에서 트래픽을 관리해야 한다. nginx는 로드 밸런싱을 통해 여러 대의 서버에 골고루 트래픽을 나누어 한 곳에 과부하가 발생하는 것을 방지해준다. ...

2023년 6월 5일 · 1 분 · 배준수

주제 관련 회의 및 공부하기

정글일지 44 날짜 2023년 6월 3일 토요일 계획 1번 주제 이해 및 설정 2번 주제 아키텍쳐 이해 및 설정 백엔드 관련 공부 및 이해 전반적인 초안 발표 흐름 파악 WebRTC 파악 Nginx 파악 Ducker 파악 백엔드 사용 언어 조사 1번 주제 PPT 피드백 2번 주제 PPT 피드백 결과 아키텍쳐에 대해 많이 이해했지만 내 이해가 맞는지 확신이 없다. PPT도 수정할 부분이 많이 보이고, 대본이 나와야 더 알맞게 구성할 수 있을 듯 하다. 오늘 배운 내용 WebRTC WebRTC는 다양한 언어로 구현된 프로젝트이다. 특정 라이브러리나 API의 개념이 아니다. 아키텍쳐를 이해하기 위해선 우리가 사용할 예정인 것들에 대한 정확한 이해가 필요하다. ...

2023년 6월 3일 · 2 분 · 배준수

프로젝트 주제 위한 조사하기

정글일지 43 날짜 2023년 6월 2일 금요일 계획 페어 프로그래밍 기술 스택 및 구현 가능성 관련 조사 페어 프로그래밍 아키텍쳐 관련 조사 메타버스 기술 스택 및 구현 가능성 관련 조사 메타버스 아키텍쳐 관련 조사 알고리즘 1문제 풀기 독서 명상 결과 오늘 기술 관련된 내용이 모두 파악될 줄 알았는데 생각보다 더뎠다. 적어도 내일은 90%는 완료해야 할 듯 하다. 오늘 배운 내용 다자간 화상 회의 알고리즘 WebRTC - Mesh 각자는 나머지 인원들과 개별로 주고받는다. ...

2023년 6월 2일 · 2 분 · 배준수

프로젝트 시작하기

정글일지 42 날짜 2023년 6월 1일 목요일 계획 팀 결성 규칙 제정 아이디어 회의 스프링 공부 명상 독서 알고리즘 1문제 풀기 결과 생각보다 아이디어 회의가 길어졌다. 대신 그만큼 모두가 집중하여 좋은 아이디어들이 많이 나왔다. 기획 관점보다 핵심 기능을 기준으로 생각했더니 결과가 훨씬 좋았다. 위치 기반, 대용량 데이터 처리, 메타버스, AR, 영상 관련, 동시 편집(동시성) 등등.. 스프링, 알고리즘 문제 풀기 등 개인 공부는 하지 못했다. Git repo 뿐만 아니라 Notion도 사용하여 훨씬 다양하고 편하게 기록을 남길 수 있게 되었다. 오늘 배운 내용 동시 편집 알고리즘 원격 문서 편집의 과정을 간략하게 살펴보자. JUNGLE 이라는 글자가 있을 때, BUNGLE로 바꾸고 싶다면? 우선 맨 앞에 ‘B’를 써서 BJUNGLE를 만들고 J라는 두번째 문자를 지워 BUNGLE을 완성하는 단계로 나누어 볼 수 있다. 이 과정이 순서에 맞게 차례대로 발생하면 문제가 될 것이 없다. ...

2023년 6월 1일 · 4 분 · 배준수

PintOS Project3-1 WIL

Project3. Virtual Memory 개요 기간 : 2023년 5월 9일 ~ 23일 주제 : Virtual memory 과제 Memory Management Anonymous Page Stack Growth Memory Mapped Files Swap In/Out 배경지 Page 가상 페이지라고도 불리는 페이지는 길이가 4096 바이트(page size)인, 가상 메모리의 연속된 지역이다. 페이지는 page-aligned 여서, page size로 공평하게 나눌 수 있는 가상 주소에서 시작된다. 따라서, 64-비트 가상 주소의 마지막 12 비트는 page offset(혹은 그냥 offset)이다. 상위 비트들은 곧 들어올 페이지 테이블 내 index들을 가리키는데 사용된다. ...

2023년 5월 23일 · 13 분 · 배준수

PintOS Memory Management WIL

WIL(23/05/16) Memory Management struct page : union union : C에서 다른 type의 data를 같은 메모리 위치에 저장하는 data type임. 여러가지중 한번에 하나의 value만 가질 수있음. 여기서는 struct uninit_page uninit struct anon_page anon struct file_page file 세가지가 있음. 즉 page는 3개 중 하나의 형태를 가지는데 처음에는 uninit이였다가 anon,file 둘중 하나로 갈라진다. enum vm_type VM_UNINIT(0, 초기화안됌), VM_ANON(1, 파일 없이 anonymous page), VM_FILE(2,파일 있음), VM_PAGE_CACHE(프4 내용) 맨 처음엔 UNINIT 상태로 시작. 그 후 ANON이나 FILE로 갈라지는듯. ...

2023년 5월 16일 · 1 분 · 배준수

PintOS Project3-3

Stack growth 질문 User programs are buggy if they write to the stack below the stack pointer, because typical real OSes may interrupt a process at any time to deliver a “signal,” which modifies data on the stack. However, the x86-64 PUSH instruction checks access permissions before it adjusts the stack pointer, so it may cause a page fault 8 bytes below the stack pointer. 유저 프로그램은 스택에 wtire 할 때 스택 포인터보다 아래에 하면 버그가 발생한다. 일반적으로 실제 OS들은 스택의 데이터를 수정하는 “신호"를 전달하기 위해 언제든지 process에 interrupt하기 때문이다. 하지만 x86-64 PUSH 인스트럭션은 스택 포인터에 적용하기 전에 접근 허가를 확인해서, 스택포인터보다 8바이트 아래에 page fault를 발생시킨다. ...

2023년 5월 16일 · 3 분 · 배준수