[DS] deque 모듈
·
카테고리 없음
파이썬 deque 모듈 - double-ended queue (양쪽 끝에서 데이터를 삽입/삭제할 수 있는 큐) - collections 모듈에 포함되어 있고, 내부적으로 이중 연결 리스트(doubly linked list) 로 구현되어 있어 양쪽 끝에서 O(1) 시간에 삽입/삭제가 가능 - 파이썬 리스트(list)는 맨 앞쪽에서 요소를 삽입/삭제할 때 O(n)시간이 걸리지만, deque는 O(1) 성능을 보장 deque 모듈에 주요 메서드 삽입/삭제append(x) : 오른쪽(뒤)에 요소 추가appendleft(x) : 왼쪽(앞)에 요소 추가pop() : 오른쪽(뒤) 요소 제거 후 반환popleft() : 왼쪽(앞) 요소 제거 후 반환 확장extend(iterable) : iterable을 오..
[Web] Node.js
·
카테고리 없음
Node.js는 Chrome의 V8 JavaScript 엔진 위에서 동작하는 서버 사이드 JavaScript 런타임 환경원래 웹 브라우저에서만 동작하던 JavaScript를 브라우저 바깥,즉 서버나 로컬 컴퓨터에서도 실행할 수 있도록 해주는 플랫폼 새로운 패키지 생성npm init 이후, package.json 파일 생성을 위한 여러 질문을 차례대로 입력 (패키지 이름, 버전, 설명 등) 빠르게 생성하려면 (기본값으로 자동 설정)npm init -y Node.js 환경에서 자바스크립트 파일 실행 터미널 명령어node index.js 패키지 스크립트(package script)package.json 파일의 "scripts" 항목에 정의되어 있으며,주로 터미널에서 실행할 수 있는 명령어 모음 이렇..
[Web] JavaScript 비동기 처리
·
카테고리 없음
Web APIs: 웹 브라우저가 직접 관리하는 별도의 영역 비동기 처리의 핵심 구성 요소 1. 자바스크립트 엔진 (런타임 / Call Stack) - 자바스크립트 코드를 한 줄씩 실행하는 공간 - 동기 코드는 여기서 처리됨console.log("A"); // 실행됨 → Stack에서 빠짐 2. Web APIs (브라우저가 제공) - setTimeout, fetch, DOM 이벤트 리스너 등을 처리 - 이 작업들은 자바스크립트 엔진이 아니라 브라우저가 처리함setTimeout(() => { console.log("비동기 실행");}, 1000); - setTimeout 함수는 엔진이 아니라 Web API 영역으로 보내짐 - 1초가 지난 뒤, 콜백은 Callback Queue로 이동 3. Callb..
[Multicore] Final
·
Multicore
OpenMP is a framework for shared memory parallel computing Raytracing: graphics rendering technique by tracing the path of light from the view camerathrough the 2D viewing plane, out into the 3D scene, and back to the light sources GPU provides much higher insturction throughput and memory bandwidth than CPUGPU is designed for highly parallel computations andtherefore designed such that more tra..
[OS] Memory #2
·
Operating system
1. Fetch Policy Demand Paging페이지에 접근이 있을 때만 메모리에 적재하는 방식처음엔 페이지 폴트가 많지만 지역성 원리에 따라 점차 줄어든다. Prepaging: 필요한 페이지 외에 근처 페이지도 미리 적재하는 방식적재된 페이지가 사용되지 않으면 비효율적 2. Placement Policy 세그먼테이션에서는 중요하지만(처음 어떻게 배치되느냐에 따라 컴팩션 달라질 수..)페이징에서는 별로 중요하지 않다 3. Replacement Policy Frame Locking: 교체를 방지하기 위해 프레임에 잠금을 설정하여 메모리에 유지되도록 하는 것 Optimal: 가장 나중에 참조될 페이지를 교체 대상으로 선정 (미래를 다 알아야 하기 때문에 현실적으로 불가능)LRU(Least Recent..
[SE] 소프트웨어 테스팅
·
Softeware engineering
소프트웨어 테스트의 목적• 잠재적 오류와 결함의 발견• 요구사항의 준수 여부(기능/비기능) 확인• 소프트웨어 신뢰성 등 품질 확인 오류를 발견하기 위한 활동으로, 테스팅이 오류가 없음을 확인시켜 주지는 않음 테스팅의 원칙 - 개발자가 자신의 프로그램을 직접 테스팅하지 않음 - 테스팅의 목적은 결함이 존재함을 밝히는 것 - 완벽한 테스팅은 불가능 - 개발 초기에 테스팅 시작 살충제 패러독스동일한 테스트를 반복하면 새로운 결함을 찾기 어려워, 테스트 케이스를 주기적으로 개선해야 한다. 테스트에 대한 시각검증: 개발 단계의 산출물이 설정된 조건을 만족하는 지 평가 (소프트웨어 프로세스가 잘 진행되는 지 평가)확인: 요구사항들을 만족하는 지 평가 테스트의 목적회복 테스트: 고의적 실패 유도보안 테스트: 불법..
[SE] 소프트웨어 관리
·
Softeware engineering
1. 위험 관리 위험 관리 절차 1. 위험 식별(일반적인 프로젝트 위험 리스트 + 이전 유사 프로젝트 위험 리스트)=> 브레인 스토밍, 조사, 인터뷰=> (현재 프로젝트 위험 리스트: 분야, 위험 요소, 원인) 2. 위험 계량화식별된 위험 요소들은 발생 확률과 영향도에 따라 구분 (상, 중, 하) 3. 위험 우선순위 선정우선순위를 설정하여 대응책을 만들고 위험을 관리 4. 위험 관리 계획위험 관리 계획에는 위험을 언제, 어떠한 방법으로 관리할 것인가에 대한 내용 등이 포함 5. 위험 해결위험은 어느 시점에나 문제로 발생할 수 있으므로, 위험 관리는 프로젝트 초반부터 프로젝트 종료 시까지 수행해야하고주기 별로 식별된 위험 요소에 대한 평가가 수행되어야 함 6. 결과 측정 및 문서화대응 방안에 ..
[SE] 소프트웨어 구조 설계
·
Softeware engineering
소프트웨어 설계요구사항 명세서를 토대로 소프트웨어의 뼈대를 이루는 구조를 정의해 구현의 기반을 만드는 것요구사항 명세서는 What 관점, 설계는 How 관점 상위 설계 (=아키텍쳐 설계) - 구성 모듈들의 관계로 표현되는 시스템 전체 구조 - 시스템 구조도, 외부 피일 및 DB 설계(ERD), 인터페이스 설계하위 설계 (=모듈 설계) - 모듈의 내부 구조, 동적 행위등을 결정 - 모듈 설계, 알고리즘 설계등 포함 좋은 설계: 모듈이 독립적이어야 하고, 모듈 간의 결합이 낮게 설계되어야함 프로세스 지항 설계: 처리 절차를 중심으로 설계 (기능, 데이터 분리) 객체 지향 설계: 객체 요소를 중심으로 설계 (기능, 데이터 객체 단위로 뭉쳐짐) 설계 원리 (1) 추상화필요 정보만 추출하여 강조하고, 관련 없..