본문 바로가기

전체 글

(16)
SOLID 원칙 SOLID 원칙이 필요한 이유와 이점SOLID 원칙은 객체 지향 프로그래밍에서 코드를 더 견고하고 유지보수하기 쉽게 만들기 위한 다섯 가지 설계 원칙입니다.SRP(Single Responsibility Principle, 단일 책임 원칙)클래스는 하나의 책임만 가져야 한다.아래와 같은 코드가 존재한다고 할 때, User가 데이터베이스에 사용자 정보를 저장하고, 이메일도 발송하는 여러가지 책임지고 있음을 볼 수 있다. 이렇게 하나의 클래스가 여러가지 책임을 가지면, 한 책임의 변경이 다른 책임에 영향을 미칠 수 있고, 코드의 복잡도가 증가하고 유지보수가 어려워질 수 있다. AS-ISclass User: def __init__(self, name, email): self.name = nam..
힙 자료구조 힙 자료구조 이해하기소개힙(Heap)은 특정한 규칙을 만족하는 트리 기반 자료구조로, 우선순위 큐, 그래프 알고리즘(예: 다익스트라 알고리즘), 정렬(예: 힙 정렬) 등에 널리 사용됩니다. 힙에는 두 가지 주요 유형이 있습니다:최소 힙(Min-Heap): 부모 노드는 항상 자식 노드보다 작거나 같습니다.최대 힙(Max-Heap): 부모 노드는 항상 자식 노드보다 크거나 같습니다.힙의 특징힙은 보통 이진 힙(Binary Heap)으로 구현되며, 완전 이진 트리(Complete Binary Tree)의 형태를 가집니다.루트 노드는 항상 최소값(최소 힙) 또는 최대값(최대 힙)을 포함합니다.삽입 및 삭제 연산 시 힙 속성을 유지해야 합니다.힙 연산1. 삽입(Insertion)새 요소를 트리의 마지막 위치에 삽..
프로세스와 스레드: 차이점과 멀티스레딩의 성능 향상 프로세스란? 프로세스는 운영 체제에서 실행 중인 프로그램을 말합니다. 이를 좀 더 구체적으로 말하자면, 프로그램이 메모리에서 실행되는 단위로, 자체적인 주소 공간과 시스템 자원을 할당받고 독립적으로 실행됩니다. 각 프로세스는 자신만의 메모리 공간을 가지고 있어 다른 프로세스와의 충돌을 방지하고, 독립적으로 실행됩니다.특징- 독립적인 메모리 공간: 프로세스는 자체적인 메모리 공간을 가지고 있으며, 다른 프로세스와 메모리를 공유하지 않습니다.- 자원 할당: 각 프로세스는 운영 체제로부터 독립적인 자원(CPU 시간, 메모리, 파일 등)을 할당받습니다.스레드란?스레드는 프로세스 내에서 실행되는 작업의 단위로, 프로세스 내에서 실행되는 여러 흐름 중 하나입니다. 스레드는 프로세스와는 달리, 같은 메모리 공간을 공..