Computer Guy

Computer Guy

  • 분류 전체보기 (33)
    • CS (9)
      • 운영체제 (3)
      • 네트워크 (0)
      • 데이터베이스 (4)
      • 시스템 설계 (2)
    • Algorithm (11)
      • Greedy (4)
      • kakao (1)
      • 프로그래머스 (6)
      • 백트래킹 (0)
      • BFS (0)
      • DFS (0)
      • Dijkstra (0)
      • DP (0)
      • Stack (0)
    • Server (7)
      • Spring (2)
      • Java (1)
      • 디자인패턴 (2)
      • 소켓프로그래밍 (2)
    • 후기 (5)
    • Test (0)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

Computer Guy

컨텐츠 검색

태그

누출 버킷 tcp Whatever blocking java ps greedy 복합데이터베이스 이코테 이동 윈도 로그 샤드키 DBMS 디자인패턴 Spring 소켓프로그래밍 고정 윈도 카운터 key event notification 이동 윈도 카운터 udp GDG

최근글

댓글

공지사항

아카이브

CS(9)

  • 처리율 제한 장치의 설계

    네트워크 시스템에서 처리율 제한 장치는 클라이언트 / 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치입니다.요청 횟수가 제한 장치에 정의된 threshold (임계치)를 넘어서면 추가로 도달한 호출은 처리가 중단됩니다.예시는 다음과 같습니다.사용자는 초당 2회 이상 새 글을 올릴 수 없다.같은 IP주소로는 하루에 10개 이상의 계정을 생성할 수 없다.같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없다.이를 테면, 수강 신청 서비스의 연속 클릭(따닥) 또한 비슷한 맥락이라고 할 수 있습니다.문제 이해 및 설계 범위 확정이러한 처리율 제한 장치의 구현을 위해선 여러가지 알고리즘을 활용할 수 있고, 각각의 방법은 장단점을 가지고 있습니다.책에서는 면접관-지원자 구조로 요구사항을 이끌어 내고 있습니..

    2024.11.18
  • 개략적인 규모 측정

    규모 추정규모 추정이란 보편적인 사고 실험을 통해 추정치를 계산하는 행위입니다. 어떤 설계가 요구사항에 부합하는지 확인하기 위해 진행합니다.이를 위해서 프로그래머는 2의 제곱수, 응답지연 값 등을 잘 이해하고 있어야 합니다.기본적으로 메모리의 최소 단위는 1byte입니다. 1 byte = 8bit로 이루어져 있습니다. 2의 x 제곱근사치이름축약형101천 (Thousand)1 Kilobyte1KB201백만 (Million)1 Megabyte1MB3010억 (BIllion)1 Gigabyte1GB401조 (Trillion)1 Terabyte1TB501000조 (quadrillion)1 Petabyte1PB 현대의 저장용량은 급속도로 발전되어 왔기 때문에, 테라바이트까지는 익숙합니다. 프로그래머가 알아야 하는..

    2024.11.11
  • 운영체제 - (2)

    프로세스다음에 실행할 명령어의 PC를 가지고, 관련된 자원이 있는 실행 중인 프로그램즉, 실행 중인 프로그램의 인스턴스로서, PC와 관련된 자원을 포함하고 있습니다.프로세스는 다음과 같은 구성 요소를 가지고 있습니다.Stack : 함수를 호출할 때 임시 데이터 저장장소 (Top -> Bottom)Heap : 프로그램 실행 중 동적으로 할당되는 메모리 (Bottom -> Top)Data : 전역 변수Text : 실행 코드프로세스 상태프로세스는 다음과 같은 상태를 가질 수 있습니다.New(생성) : 프로세스가 새로 생성 중인 상태입니다Ready(준비) : 프로세스가 CPU에 할당되기를 기다리는 상태입니다. 이 상태에서 프로세스는 스케줄러에 의해 CPU 할당을 대기하며, 디스패처가 CPU 제어권을 넘겨주면 실..

    2024.11.07
  • 운영체제 - (1)

    컴퓨터의 하드웨어 자원을 효율적으로 관리하는 운영체제는 자원 관리, 프로세스 관리, 메모리 관리 등의 다양한 역할을 수행합니다. 인터럽트와 시스템 콜을 통해 빠른 입출력 처리를 가능하게 하며, DMA를 활용해 CPU 사용을 최적화합니다.       운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어입니다.응용 프로그램을 위한 기반을 제공하고, 시스템 자원을 관리, 스케줄링하며 효율적으로 사용할 수 있도록 합니다.컴퓨터 관점에서 운영체제는 하드웨어와 가장 밀접하게 연관되어 자원 할당자의 역할을 수행합니다.일반적으로 CPU는 코어당 1개의 물리(하드웨어) 스레드를 지원합니다. 이는 프로세서(코어)와 직결되므로 매우 빠르고 귀중한 자원입니다. 현대의 하드웨어 아키텍처는, 이렇게 귀중한 자원을 효율적으로 사용하기 ..

    2024.10.31
  • Blocking / Non-Blocking, Synchronous / Asynchronous

    동기와 비동기 ? Blocking Non-Blocking?개발을 공부하다 보면 동기 / 비동기라는 단어를 자주 접하게 됩니다. 또한 이 둘과 혼동될 수 있는 Blocking , Non-Blocking 개념도 종종 들을 수 있습니다. 미묘하게 다른 두 개념을 함께 살펴보겠습니다. BlockingOS관점의 블로킹은 프로세스가 어떤 작업을 위해 OS에 기능을 요청했는데 ( System Call ) OS가 해당 태스크를 바로 처리할 수 없을 경우, thread 를 “sleep” 혹은 “blocked” 상태로 변경합니다. 즉, CPU 큐에서 내려오고, 작업이 완료될 때 까지 대기합니다. 요청된 작업이 완료된 후에 OS는 thread를 깨웁니다.이렇게 스레드를 sleep 상태로 만들 수 있는 함수를 “blockin..

    2024.01.20
  • Transaction

    Transaction 해당 교재에서 트랜잭션은 ‘Single Logical Unit of Work’ 으로 규정하고 있습니다. 일상생활의 예를 들자면, 제가 다른 친구에게 돈을 송금할 때, DBMS 내부에서는 제 계좌의 돈을 차감 후 , 전달받는 친구 계좌의 돈을 증가 시키는 절차를 가집니다.이러한 연산들은, 장애가 발생해도 처리가 가능해야 합니다. 돈을 송금하는 도중에 서비스에 장애가 발생해서 제 계좌의 돈만 차감된다면, 돈이 증발하는 꼴이 됩니다. 데이터베이스는 트랜잭션을 통해 작업의 원자성, 일관성, 고립성, 내구성을 보장합니다.Basic Concept of Transaction트랜잭션은 여러 값에 접근하여 값을 변경시키는 프로그램 실행의 단위입니다.위에서 제시한 송금 시나리오를 의사코드로 작성해보겠..

    2024.01.16
이전
1 2
다음
github linkedin gmail
© 2024 hyunw9. All rights reserved.

티스토리툴바