본문 바로가기

개발일지30

시간복잡도와 공간복잡도 시간복잡도와 공간복잡도는 알고리즘의 성능을 평가하는 두 가지 중요한 척도입니다. 시간복잡도 (Time Complexity)시간복잡도는 알고리즘이 실행되는 데 걸리는 시간을 입력 크기와의 관계로 표현한 것입니다. 보통 Big-O 표기법으로 나타내며, 가장 자주 사용되는 표기법 중 몇 가지는 다음과 같습니다:O(1): 입력 크기에 상관없이 항상 일정한 시간이 걸리는 경우입니다. 예: 배열의 첫 번째 요소에 접근하는 경우.O(n): 입력 크기에 비례해서 시간이 증가하는 경우입니다. 예: 배열의 모든 요소를 한 번씩 방문하는 경우.O(n^2): 입력 크기의 제곱에 비례해서 시간이 증가하는 경우입니다. 예: 이중 루프를 사용하는 경우.O(log n): 입력 크기의 로그에 비례해서 시간이 증가하는 경우입니다. 예:.. 2024. 6. 1.
DOCKER 1. 도커에 커널이 없어도 되는 이유는 뭘까도커는 OS 수준에서 가상화를 제공하는 컨테이너 기반의 오픈소스 플랫폼입니다. 이는 가상 머신(VM)과는 달리 각 컨테이너가 자체 OS를 가지고 있지 않다는 것을 의미합니다. 이러한 특성으로 인해 컨테이너는 더 적은 리소스를 사용하고 더 빠르게 시작되며 더 많은 애플리케이션을 같은 하드웨어에서 실행할 수 있습니다. 그럼 왜 도커에서는 커널이 없어도 되는 걸까요? 그 이유는 도커 컨테이너가 호스트 OS의 커널을 공유하기 때문입니다. 도커 컨테이너는 호스트 시스템의 커널과 직접적으로 상호작용하며, 각 컨테이너는 독립적인 사용자 공간을 가집니다. 이렇게 되면 컨테이너는 가볍고 빠르게 실행될 수 있으며, 각 컨테이너가 자체 커널을 필요로 하지 않게 됩니다. 즉, 도커 .. 2024. 2. 3.
node 21 WSL 문제 node 21 최신버전을 사용했을 때 npm run start:dev 가 실행되지 않는 문제가 있다. node 20으로 다운그레이드하면 해결된다. (nvm use 20)node 21을 사용하기 위해서는 WSL2를 사용해야 할 수도 있다. 2024. 1. 16.
aws storage, database 스토리지 종류블록데이터를 일정 크기의 블록으로 나누어 저장호스트에서 파일 시스템을 생성 storage area network [san] 파일디렉토리 구조로 파일을 저장스토리지단에서 파일 시스템을 생성network attached stroage [nas] 오브젝트rest기반의 api호출을 통해 데이터 접근  데이터를 저장하기 위한, 백업하기 위한, read, write,   오브젝트 스토리지[s3] 주로 사용다양한 오브젝트 스토리지 클래스가 존재하기에 잘 선택하여 사용하면 된다. 블록 스토리지캐시처럼 사용하는 느낌이 든다.호스트 컴퓨터에 물리 연결되어 잇기에 매우 바르지만, 복제 설정이 되어잇지 않기에 문제가 생겼을 경우 다시 찾을 수 없을 가능성이 잇다. ebs백업가능, 증분 백업을 하기에 저렴한 비용/.. 2024. 1. 4.
aws general immersion day networking 2 computing on awsaws global 인프라region: 데이터센터를 클러스터링 하는 물리적 위치availability zone[az] 가용영역, aws리전에 중복전력, 여러 개의 데이터 센터로 구성되어 있다. aws region 설계 /디자인region은 고가용성, 높은 확장성 및 높은 내결함성을 위해 복수개의 가용영역[az]으로 구성됩니다.application과 data는 실시간으로 서로 다른 az로 실시간 복제 및 배포되어 고가용성 및 내결함성을 유지합니다. aws vpcamazon virtual private cloud 개요;사용자가 정의한, 논리적으로 격리 된 가상의 프라이빗 네트워크 환경가상 네트워크 제어 기능- ip 주소 범위, 서브네팅[잘게 나누기], 라우.. 2024. 1. 4.
pintos를 마무리하며...[크래프톤 정글] 입소 후 지금까지 많은 문제들을 만나며 고민해 보는 시간을 가졌었다.  하지만 어떠한 문제들보다 pintos에서 만난 문제들이 더 직접적으로 느껴졌다. 다른 코드들보다 더 깊숙이, 정말 코드 끝까지 파고들어 가는 느낌이 강하게 들었던 프로젝트였다. 이런 시간들을 보내고 나니 많은 코드를 읽고 사용하는것에 조금은 익숙해진 듯하다. OS 개념을 글로 배우는 것과 개념을 직접 구현하는 것은 완전히 다른 것이다. 핀토스를 하게 되면 많은 것을 얻을 수 있다. 하지만 많은 오류들을 마주하게 되어 그것들을 마주하고 분석하고 디버깅하는 힘이 필요하다. 2023. 12. 30.
728x90