SOLID 원칙, 의존성 역전 원칙, 의존성 주입, Hexagonal Architecture, DDD
시험성적같이 순위가 한 번만 정해지는 경우 외에 실시간 경기처럼 시간에 따라 등락하는 순위를 추적해야하는 경우가 있다. 이 경우 어떤 방법을 쓰는 것이 좋은지 알아보자. 이 글은 최근 코테에서 삽질을 하는 바람에 다시는 반복하지 않으려 기록해 놓는 것이다.. > 미리
숫자가 적힌 카드로 게임을 한다.번갈아 가며 카드를 내는데 상대가 내는 카드보다 큰 카드를 내야하며, 낼 수 있는 카드 중에 가장 작은 카드를 내는 전략을 사용한다.내가 가진 카드의 종류와 상대가 내는 카드의 순서가 입력으로 주어질 때내는 카드의 순서를 출력한다.한 번
그동안은 TIL을 쓰면서 배운 일자마다 글을 썼었다.그런데 일자별로 쓰니까 같은 주제여도 너무 파편화 되어 앞으로는 주제마다 글을 써야겠다.아래 내용은 TIL로 이미 올라온 CSAPP의 내용들을 하나로 합친 것으로 빠진 챕터들이 꽤 있다.책을 내가 이해한 내용으로 적은
1. 개요 1.1. 배경 크래프톤 정글 입소 직후 시작된 3일 간의 미니 웹 프로젝트입니다. 동기들끼리 서로의 교육장 입실 여부와 공부 시간을 확인하며 공부 의지를 북돋우자는 취지로 만든 웹서비스입니다. 1.2. 작업 기간 7. 1.- 2024. 7. 3. 3인 팀 개발 1.3. 사용한 기술 Flask, Jinja2, Bulma 2. 기능 출석을 체크하고...
1. 개요 사내 메신저에 이모티콘 관련 부가기능을 제공하는 파이썬 프로그램 1.1. 배경 사내 메신저에는 이모티콘의 수가 극히 적었습니다. 수동으로 추가할 수 있었으나 복잡하고, 상대방도 같은 방식으로 추가해야만 사용할 수 있었습니다. 모두가 쓸 수 있도록 쉽게 추가
비관계형 DB 중 키-값 DB는 관계형 DB와 비슷해 보인다.차이점에 대한 chatgpt의 답변:관계형 데이터베이스(RDB)와 키-값 데이터베이스의 차이는 주로 데이터 구조, 쿼리 방식, 확장성, 유연성 등에서 나타납니다. 아래에서 주요 차이점을 설명할게요.관계형 데이
세그멘테이션 또는 페이징을 적용하여 동적 재배치에 비해 내부 단편화를 줄였다.그럼에도 불구하고 실제 시스템에서는 여러 프로세스들이 사용하는 페이지를 모두 물리 메모리에 탑재하기에는 물리 메모리 공간이 모자란 경우가 대부분이다.이런 물리 메모리 공간의 한계를 극복하기 위
페이징 방식의 가장 큰 단점은 페이지 테이블을 참조하는 과정에서 다시 메모리에 접근해야 한다는 것이다.즉, 페이지 테이블에 접근->물리 주소로 번역->메모리에 접근과 같이 원하는 메모리에 접근하기 위해 메모리를 적어도 두 번 참조해야 하며 이는 큰 성능 저하를 유발한다
세그멘테이션과 페이징을 설명하기 전 먼저 고전적이고 기초적인 가상주소할당방식을 이야기해야 한다.동적 재배치 dynamic relocation 또는 베이스와 바운드 base and bound라고 불리는 방식은 베이스 레지스터와 바운드 레지스터를 이용해서 가상 주소공간을
세마포어로 자식스레드가 종료되기까지 대기하도록 구성했다.스레드 exit에서는 새로 스케줄링하기 전에 세마포어를 up시켜서 대기하는 부모스레드가 스레드가 종료되었음을 알 수 있도록한다.자식스레드가 모두 종료되기 전, 세마포어를 up하면서 부모스레드로 cpu를 양보하는 상
핀토스 프로젝트2 시스템콜 구현 중시스템 콜 구현 중 파일 읽기 시 lock을 사용한 코드를 보았다.Pintos에서는 lock이 굳이 필요가 없을 것 같아서 생각을 정리해보았다.lock이 필요한 이유: 프로세스 내에서 파일 디스크립터마다 위치가 존재한다. read함수는
PintOS(핀토스)는 교육 목적으로 설계된 운영 체제(OS) 커널이다.정글 8주차부터는 핀토스에서 필요한 기능을 구현하며 운영 체제의 핵심 개념을 학습한다.\[\[CSAPP출처: https://eun-jeong.tistory.com/17 흔들리며 피는 꽃:티
핀토스는 아직은 단일 프로세스로 진행된다.main 함수라는 하나의 문맥 안에 멀티쓰레드로 프로그램을 실행한다.즉, os는 여러 개의 쓰레드를 관리해야한다.핀토스는 한 번에 하나의 스레드만을 실행하기 때문에 실행되는 스레드를 제외하고는 모두 비활성화된다. 다음 실행할 스
UDP와 TCP는 모두 전송 계층에서의 프로토콜로, 전송 계층부터는 각 프로세스가 직접 통신할 수 있다.하위 계층을 거쳐 호스트까지 도착한 데이터가 어떤 프로세스로 찾아가야 하는지 구분하기 위해서 포트 번호를 사용한다. 포트 번호는 16비트 길이의 부호 없는 정수이다.
모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초한다.이 모델에서 응용(Application)은 한 개의 서버 프로세스와 여러 개의 클라이언트 프로세스로 구성된다.^11-1클라이언트-서버 모델에서 근본적인 작업은 트랜잭션 transaction이다.트랜잭션은 클