본문 바로가기

전체 글154

[운영체제] 메인 메모리 (Main memory) Main memory 프로세스의 메모리 공간 보호 base register & limit register BR pages page table을 이용해 page와 frame을 매핑 Internal fragmentation 문제 TLB를 통해 page table 접근을 빠르게 CPU가 TLB에 먼저 접근하여 page address를 확인 있으면 바로 물리 주소에 접근 없으면 page table에 접근 Memory protection 연속 할당에서는 base/limit register를 통해 프로세스 메모리 보호 불연속 할당에서는 page table에 protection bit을 이용 (valid-invalid) Shared pages Shared code (I/O 프로세스 등) Private code and.. 2021. 1. 21.
[Node.js] 패스포트 (passport) 사용법 - 로컬 인증 방식 패스포트 사용법을 간단히 알아보겠습니다. 원리는 다루지 않고 구현하는 코드에 대해서만 다룰 것입니다. 목차 패스포트 초기 설정 로그인과 회원가입 설정 패스포트 초기 설정 먼저 필요한 모듈을 설치합니다. 차례대로 passport 모듈, 로컬 인증 방식 사용을 위한 passport-local 모듈, flash 메시지를 전달하기 위한 connect-flash 모듈입니다. npm install passport --save npm install passport-local --save npm install connect-flash --save 다음은 패스포트를 사용하기 위한 코드입니다. // 패스포트 사용 var passport = require('passport'); var flash = require('conn.. 2021. 1. 21.
2020년 개발자 회고록 2020년은 코로나로 인해 활동이 적어지다보니 느낌상 많은 일이 있었던 거 같진 않았다. 하지만 사진첩을 정리하다보니 2020년은 개발을 본격적으로 시작한 해이기도 하고, 나의 개발 인생에서 꽤나 큰 도약을 한 시기였다는 것을 깨닫게 되어 적어보려 한다. 첫 팀 프로젝트 1학년 겨울방학인 1월부터 약 한달간 두개의 프로젝트를 진행했다. 하나는 2학기때부터 간간히 모이던 미티어 소모임에서 웹 프로젝트를 한 것이고, 다른 하나는 이니로에서 방학동안 코틀린 안드로이드 스터디를 하고 진행한 안드로이드 프로젝트였다. 미티어 소모임은 학과에서 소규모로 개설된 동아리인데, 한 스타트업 대표님께서 meteor.js를 통한 웹 개발을 알려주셨다. 겨울 방학동안엔 2인 팀으로 프로젝트를 진행했는데 이것이 나의 첫 프로젝트.. 2021. 1. 21.
[운영체제] 교착상태 (Deadlocks) Deadlocks 교착 상태 프로세스나 스레드가 결코 일어날 수 없는 특정 이벤트를 기타리는 것 대부분의 교착 상태는 전용 자원을 차지하려는 경쟁에서 발생 순환 대기는 교착 상태에 있는 시스템의 특징 교착 상태 성립 조건 상호 배제 조건 : 자원은 한 번에 한 프로세스에서만 배타적으로 점유 대기 조건 : 자원을 최소 1개 갖고있으면서 다른 자원을 기다리는 상태 비선점 조건 : 시스템이 프로세스의 제어를 빼앗을 수 없음 순환 대기 조건 두 프로세스 이상이 순환 고리 상태 각 프로세스는 고리 안에 있는 다음 프로세스가 점유하고 있는 자원을 대기 교착 상태 해결책 교착 상태 방지 대기 조건 거부 자원을 요청할 땐 어느 자원도 소유하고 있지 않아야함 단점 : 자원의 낭비 비선점 조건 거부 하나 이상의 자원을 소.. 2021. 1. 20.
[IntelliJ] 파일 형식에 맞지 않게 인식할 때 문제 webstorm에서 local_login.js 파일을 추가해야 됐는데, local_login 파일을 추가해서 위와 같은 팝업이 나왔습니다. 이때 바보같이 읽지도 않고 file pattern 부분을 이름 변경하는거라 생각하고 local_login.js로 변경후 ok를 눌렀습니다... ok를 누르기 전에 아마도 openmatching files in webstorm을 체크한거 같습니다. 이후에 파일을 삭제하고 다시 생성해도 local_login.js 파일은 계속 인식을 못했습니다. 막 누르고 보니 local_login.js 파일을 text 파일 타입으로 인식하게 설정해서 그런거 같더군요. 해결 preferences(setting ctrl+alt+S) -> Editor -> FileTypes 에서 Tex.. 2021. 1. 20.
[운영체제] 동기화 (Synchronization) Synchronization Shared data : 여러 프로세스들이 공유하는 데이터 (Critical data) Critical section (임계구역): 공유 데이터를 접근하는 고드 영역 Mutual exclusion : 둘 이상의 프로세스가 동시에 임계구역에 진입하는 것을 막는것 임계 구역 문제 누가 먼저 공유데이터에 접근? 공유 데이터에 누가 접근하고 있는지? 공유 데이터를 어떤 순서로 접근할지? 솔루션 Mutual Exclusion - 쓰고있으면 다른 프로세스는 못 들어옴 Progress - 누군가 기다린다면, 대기 시간이 무한이되면 안됨 Bounded Waiting - 임계 구역 진입 횟수를 제한하여 독점하지 못하도록 Peterson's Solution sw 수준 two process so.. 2021. 1. 19.
[운영체제] 스케줄링 (Scheduling) Scheduling 보다 효율적인 자원의 활용을 위해 어떤 작업을 메모리에 올리고 어떤 작업에게 자원을 할당 해야하는 지 결정 CPU-burst : CPU 자원을 많이 요구하는 작업 I/O-burst : I/O 사용이 많은 작업 Non-preemptive : 프로세스가 스스로 자원을 반납하는 방식 Preemptive : 프로세스가 스스로 자원을 반납하기 전에 강제로 회수할 수 있는 방식 스케줄링 알고리즘 성능 판단 기준 CPU Utilization - cpu를 최대한 바쁘게 Throughput - 시가 단위안에 실행이 완료되는 프로세스의 수 Turnaround Time - 하나의 프로세스가 시작에서 종료까지 걸리는 시간 Waiting Time - 하나의 프로세스가 레디큐에서 기다린 총 시간 Respons.. 2021. 1. 18.
[Node.js] 익스프레스로 웹 서버 만들기 2 - 자주 쓰이는 미들웨어 익스프레스로 웹 서버 만들기 1에서 미들웨어를 사용해 보았고, 미리 만들어진 미들웨어를 사용하여 서버의 기능 구현을 쉽게 할 수 있다고 했습니다. 이번 글에서는 그러한 미들웨어들을 알아보겠습니다. 목차 static 미들웨어 body-parser 미들웨어 router 미들웨어 cookie-parser 미들웨어 express-session 미들웨어 static 미들웨어 static 미들웨어는 서버에있는 특정 폴더의 파일들을 특정 패스로 접근할 수 있도록 만들어 줍니다. % npm install serve-static --save 명령어로 해당 모듈을 설치합니다. 다음은 path로 같은 경로에있는 public 폴더에 접근할 수 있도록 하는 예제입니다 var express = require('express');.. 2021. 1. 15.