본문 바로가기
✨ 서울대생이 면접 떨어지고 6개월간 삽질하며 정리한 'CS 정리 노트', 지금 무료로 풀립니다!

Computer Science85

데이터베이스 모델링 기초 옛날에는 어떤 프로그램을 작성할 때, 계획하고 분석하기 보다는 일단 코딩해보는 습관때문에 결국 문제가 발생하여 모든 프로그램을 삭제하고 처음부터 다시 코드를 짜게 되는 일이 많았다. 이는 분석과 설계 작업을 등한시하는 소프트웨어 분야의 고질적 문제점이었다. 이러한 문제점 해결을 위해 '소프트웨어 개발 방법론'이 나타나고 이 분야를 '소프트웨어 공학'이라고 부르게 되었다. 소프트웨어 공학에서 가장 전통적으로 사용되는 모델은 폭포수 모델이다. 프로젝트 계획 - 업무 분석 - 시스템 설계 - 프로그램 구현 - 테스트 - 유지보수 이 모델에서 가장 핵심적인 부분은 업무 분석과 시스템 설계로, 전체 과정 중 50프로 이상을 차지한다. 데이터베이스 모델링은 분석과 설계 단계에서 가장 중요한 작업중 하나다. 데이터베.. 2021. 4. 1.
[자료구조] 큐queue 정의 및 데크deque와 힙큐heapq 사용법 큐는 시퀀스의 한쪽 끝에는 엔티티를 추가하고, 다른 반대쪽 끝에는 제거할 수 있는 엔티티 컬렉션이다. 큐는 FIFO(First-In-First-Out) 선입선출의 구조를 가진다. 간단히 말하면 선착순이다. 맛집에서 줄을 서는 것과 같다. 큐는 스택과 마찬가지로 리스트로 큐의 모든 연산을 구현할 수 있다. 하지만 동적 배열인 리스트는 큐연산에 적합하지 않아서 데크(deque)라는 별도의 자료형을 써야 좋은 성능을 낼 수 있다. 데크 : 더블엔디드큐(Double Ended Queue)의 줄임말로, 양쪽 끝을 모두 추출할 수 있는, 큐를 일반화한 형태의 추상자료형이다. 데크는 pop( )과 popleft( ) 모두 시간복잡도 O(1)을 가지므로 매우 성능이 좋은 자료형이다. import collections .. 2021. 3. 31.
[자료구조] 스택(stack) 정의 및 사용법 스택: 요소의 컬렉션으로 사용되는 추상 자료형이다. 주요 연산으로 push( )와 pop( )이 있다. 스택은 LIFO(Last-In-First-Out) 후입선출 구조를 가진다. 이는 쌓아둔 접시를 떠올리면 쉽게 알 수 있다. 접시는 가장 위에 있는, 즉 가장 나중에 쌓아올린 접시부터 꺼내 사용한다. 프링글스를 가장 나중에 들어간 것부터 먹는 거랑 같은 원리. 리스트가 스택의 모든 연산을 지원한다. 연결리스트를 아용하여 스택을 구현할 수 있지만, 리스트가 스택의 모든 연산을 지원하기 때문에 리스트를 그냥 쓰면 된다. Class Node: def __init__(self, item, next): self.item = item self.next = next Class Stack: def __init__(se.. 2021. 3. 31.
[자료구조] 연결리스트(리스트 변환, 뒤집기) by 파이썬 연결리스트는 데이터 요소의 선형 집합으로, 데이터의 순서가 메모리에 물리적인 순서대로 저장되지는 않는다. 특징 - 동적으로 새로운 노드를 삽입하거나 삭제하기 간편 - 배열과 달리 특정 인덱스에 접근하기 위해서는 전체를 순서대로 읽어야 하므로 상수시간에 접근할 수 없다. 즉 탐색에 O(n)이 소요. 반면 시작 또는 끝 지점에 아이템을 추가/삭제/추출하는 작업은 O(1)에 가능 유용하게 쓰일 코드 스니펫들을 작성해보았다. Class ListNode(): def __init__(self, val=0, next =None): self.val = val self.next = next # linkedList --> List def nodeToList(head): lst = .. 2021. 3. 29.
[DB-01] DBMS와 SQL의 뜻 DBMS(Database management system): 데이터베이스를 관리하고 운영하는 역할을 하는 소프트 웨어. DBMS에 데이터를 구축하고 관리하기 위해서 사용되는 언어를 SQL(structured query language)라고 한다. SQL을 사용하여 DBMS를 통해 주요 정보를 관리 및 추출한다. DBMS와 데이터베이스는 다음의 중요한 특징을 가진다. 1. 데이터의 무결성 데이터에는 오류가 없고 일관성이 보장되어야 함 2. 데이터의 독립성 데이터베이스 크기를 변경하거나 데이터 파일의 저장소를 변경해도 기존의 응용프로그램에는 영향을 끼치지 말아야한다. 3. 보안 접근이 허가된 사람만 데이터에 접근할 수 있어야 한다. 4. 데이터 중복 최소화 동일 데이터가 여러 군데 중복으로 저장되는 것을 방.. 2021. 3. 26.
2의 보수란?? 쉬운 설명으로 궁금증 해결.. (비트 연산) 2의 보수: 컴퓨터가 음수를 저장하기 위해 사용하는 방법 중 하나.예를 들어 4비트 머신을 생각해보자. 이 머신은 0000부터 1111부터 표현이 가능하다. 총 16개. 양수만을 저장하고싶다면 숫자 0부터 15까지 차례대로 대응시켜 저장할 수 있겠지만,문제는 음수도 저장이 필요하다는 점!그래서 16개 중 절반을 음수를 위해 할당한다. 따라서 -8부터 7까지의 숫자를 저장하게 된다.그리고 맨 앞의 비트는 부호 비트로 사용한다. 맨 앞의 비트가 0이면 양수고 1이면 음수.십진수2진수십진수2진수-8100000000-7100110001-6101020010-5101130011-4110040100-3110150101-2111060110-1111170111그럼 다음과 같은 궁금증이 생긴다. Q1) 십진수를 2진수로 .. 2021. 3. 17.