전체 글 561

[운영체제] 운영체제 개요

운영체제 개요 운영체제의 역할 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 사용자가 컴퓨터의 하드웨어(CPU, 메모리 등)를 어떻게 관리하는 지 몰라도 편하게 사용할 수 있도록 하드웨어를 관리하며 사용자에게 편리한 인터페이스를 제공 한 대의 컴퓨터에서 여러 프로그램이 실행 되더라도, 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상(illusion)을 제공 ex) 음악을 들으면서 게임을 하고, 인터넷 창으로는 뉴스를 읽는 경험 컴퓨터 시스템의 **자원을 효율적으로 관리 (자원: CPU, 메모리, I/O(입출력) 장치 등)** 효율성 : 주어진 자원으로 최대한의 성능을 내도록 어떤 방법으로? 메모리는 CPU의 작업 공간인데, 프로그램이 ..

CS스터디 2023.06.07

NodeJS+MongoDB Part1

Express 라이브러리 설치 VScode 터미널 열기 npm init 어떤 라이브러리를 설치했는지 기록하기 위해 package.json에 기록하는데 자동으로 생성시켜줌 entry point만 내가 원하는 파일명으로 작성 { "name": "nodejs_mongodb", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo \\"Error: no test specified\\" && exit 1" }, "author": "", "license": "ISC", } npm install express 로 설치 dependencies에 express가 추가됨 { "name": "nodejs_mongodb", ..

NodeJS+MongoDB 2023.06.04

[프로그래머스] 짝지어 제거하기

# 정답 코드 def solution(s): stack = [] for i in s: if not stack: stack.append(i) else: if stack[-1] == i: stack.pop() else: stack.append(i) return 0 if len(stack) else 1 # 오답 코드 # stack으로 풀지 않고 # 리스트를 슬라이싱을 통해 계속 변경하는 방법을 사용하니 # 배열을 계속 탐색해야 하기에 시간초과 문제가 발생. def solution(s): answer, s = -1, list(s) while s: flag = False for i in range(len(s)-1): if s[i] == s[i+1]: s[i:i+2] = '' flag = True break if ..

알고리즘 2023.06.04

디자인 패턴 - 싱글톤 패턴(Singleton Pattern)

디자인 패턴이란? - 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것. 싱글톤 패턴이란? - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수는 있지만, 단 하나의 인스턴스를 만드는 패턴으로 중복되는 인스턴스 즉 같지 않은 인스턴스를 만들지 않는것으로, 보통 데이터베이스 연결 모듈에 많이 사용. - 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 생성 비용이 줄어드는 장점이 있지만, 의존성이 높아지는 단점이 있다. // JavaScript Singleton Pattern class Singleton { construct..

CS지식 2023.06.03

코드 리펙토링

필요한 경우 기능 구현이 우선이고, 정상 작동이 되는지 확인 후 진행 한번에 하나의 작업에만 집중, 기능 구현과 동시에 하지 않는다 어떻게? 개발 프로세스에서는 코드 리팩토링 할 시점을 결정하는 것이 매우 중요하다 한 번에 한 가지 명확하고 구체적인 목표를 가지고 진행하는 것이 중요하다 리팩토링 유형 신규 기능 추가를 대비한 `준비를 위한 리팩토링` 현재 구조를 살펴보고 추가되는 코드가 기존 코드에 녹이기 어려운지 확인 구조를 다듬어서 새 기능을 쉽게 적용할 수 있도록 변형 동일한 코드가 반복된 경우 -> 별도의 함수로 분리하여 호출 의미가 유사한 함수가 두 개 이상 존재 -> 매개변수를 이용하는 것으로 함수 통합 모든 분기마다 동일한 로직을 구현 -> 분기 밖으로 해당 로직을 이동시켜 한 번만 작성 높..

CS지식 2023.06.03