본문 바로가기

전체 글11

코인 모의투자 프로젝트(1) - 개요 SSAFY 과정을 진행하면서 여러 프로젝트들을 진행했는데, 전부 큰 문제점이 있었다. 바로 유저가 없으면 백엔드 서버가 논다는 것이다.(모든 서비스들이 그렇긴 하다..) 그래서 든 생각은 유저의 적어도 서버가 많이 일하게 하는 방법은 없을까..? 하다가 코인 모의투자 프로젝트를 생각하게 되었다. 마침 Upbit에서도 Websocket을 통해서 데이터를 받을 수 있었다. https://docs.upbit.com/docs/upbit-quotation-websocket 계산해보니 체결 건만 1초에 약 10개정도의 데이터를 받게 되었다. 그 말은 유저의 주문 1개당 1초에 최대 10개의 DB query를 날리게 되는 것이다. 이거 재미있겠는데..? 하는 마음으로 프로젝트를 시작하게 되었다. 아키텍처는 다음과 같.. 2024. 4. 16.
GitHub Flow Intellij 로 수행하기 지인과 약 한달동안 프로젝트를 진행했는데, 브랜치 전략을 한번 사용해 보았다. Git Flow, GitHub Flow 두개가 자주 사용하는 전략이었는데, Git Flow는 조금 복잡해 보였다. 이번 프로젝트 인원이 두명이기 때문에 소규모 프로젝트에 간단하고 빠르게 진행할 수 있는 GitHub Flow로 프로젝트를 진행하기로 했다. Github Flow with intelij 1. 왼쪽 아래의 main브랜치 클릭 후 New branch를 통해 생성. 생성하면 자동으로 그 브랜치로 이동한다. 2. 코드를 작성한 후 여러차례 커밋과 푸쉬 진행. 3. 기능이 완성되었으면 Pull Request를 통해 팀원들과 코드리뷰, 상의 후 Merge 결정 오른쪽 위의 +모양 클릭 Reviewer: 리뷰를 요청할 사람 As.. 2023. 1. 6.
CPU 스케줄링 CPU and I/O Bursts in Program Execution 시스템은 I/O Burst, CPU Burst가 빈번하게 일어난다. 이는 프로그램의 종류에 따라서 상이하다. 특히 사람이 관여하는 프로그램일수록 번갈아 가면서 계속해서 일어난다. CPU-burst Time 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다 Interactive job에게 적절한 response 제공 요망 CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스의 특성 분류 I/O-bound Process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts CPU-bound Process 계산 위주의 job fe.. 2022. 12. 4.
프로세스 매니저 프로세스 생성(Process Creation) Copy-on-write(COW) 부모프로세스(Parent process)가 자식 프로세스(children Process)생성 프로세스의 트리(계층구조)형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료될때까지 부모가 기다리는 모델 주소 공간(Address space) 자식은 부모의 공간을 복사함(binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 fork() 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사(OS data .. 2022. 12. 4.