반응형 전체 글346 2021-11-12 passport Strategy에 대해 코드를 작성했다. 가능하면 내일 로그인 파트를 구현! 로그인하는 local Strategy, JWT를 받고 이후 API 접근 권한을 확인하는 jwt Strategy를 작성 먼저 passport가 어디서 토큰을 가져온다던지, 어떤 필드에서 변수를 가져올지 설정하고 이후에 로직 작성 내일은 시간이 많이 없으니 부디 빠르게 오류 없이 구현 가능하길.. https://github.com/happysubin/prisma_-_passport/commit/1688e8cac7dfd4a8b96f6befbe2d2a9ed1911130 passport Strategy 작성 · happysubin/prisma_-_passport@1688e8c Permalink This commit doe.. 공부 일지 2021. 11. 13. 2021-11-11 Password를 만드는 함수를 구현. 노드 내부 모듈 crypto를 이용! 애초에 prisma를 사용. salt와 hash화 된 패스워드를 DB에 저장. 작성한 함수는 salt를 생성하는 랜덤 함수와 hash 패스워드를 구현하는 함수와 그 hash 패스워드를 체크하는 함수 개인적으로 Promise 구문을 복습할 수 있어서 의미가 있었다. crypto.pbkdf2 와 crypto.randomBytes 사용법 알아두기. https://github.com/happysubin/prisma_-_passport/commit/8933941a528ec06ed4587c2a98c6753337b515bf make password part · happysubin/prisma_-_passport@8933941 Permalin.. 공부 일지 2021. 11. 12. 물리메모리 관리 2023. 1.1 21:30 복습 및 수정 시작 2023. 5.22 19:30 복습 및 재수정 시작 메모리 관리자 메모리 관리는 메모리 관리자가 한다. 정확히 말하면 메모리 관리 유닛(Memory Management Unit, MMU)이 맡는다. 메모리 관리자는 반입 정책, 배치 정책, 대치 정책을 수립해 그 정책에 따라 메모리를 관리한다. 반입 정책: 프로그램을 메모리로 언제 가져와서 실행할지 결정하는 정책. 배치 정책: 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책. 대치 정책: 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책. 메모리 주소 메모리 주소의 개념에는 물리적 주소와 논리적 주소가 존재한다. 물리적 주소는 말 그대로 실제 메모리에 저장된 주소.. OS 2021. 11. 12. TCP 2023. 02.05 13:00 복습 TCP TCP(Transmission Control Protocol)는 트랜스포트 레이어의 프로토콜이다. 핸드셰이크를 먼저 진행하므로 연결지향형이며 end 호스트 간 논리적인 연결을 가지게 한다. (1대 1, 점대점) 신뢰성 있으며 순서에 맞춰 메시지를 전달한다. 기본적인 동작 방식은 파이프라이닝이다. TCP 연결은 full-duplex 서비스, 즉 양방향 서비스를 제공한다. TCP 성능저하의 원인은 주로 혼잡 제어다. Three-way-handshake 또한 TCP의 연결 설정 절차는 흔히 "세 방향 핸드 셰이크" (three-way-handshake)라 부른다. TCP 세그먼트 헤더에서 가장 중요한 필드 두 가지는 순서번호 필드와 확인 응답 번호 필드이다. 즉 s.. Network 2021. 11. 11. Transport Layer 2023. 02.04 10:00 정리 Transport Layer 트랜스포트 계층 프로토콜은 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적 통신을 제공한다. 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다. 송식 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를, 인터넷 용어로는 트랜스포트 계층 세그먼트인 트랜스포트 계층 패킷으로 변환한다. TCP와 UDP UDP는 애플리케이션에게 비신뢰적이고 비연결형인 서비스를 제공한다. 에러 복구는 애플리케이션 계층에서 이뤄진다. TCP는 애플리케이션에게 신뢰적이고 연결지향형 서비스를 제공한다. 다중화와 역다중화 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업을 역다중화라고한다. 출.. Network 2021. 11. 8. 회복과 병행 제어 2022. 12. 13. 23:30 수정 및 복습 시작 데이터베이스 관리 시스템은 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데, 그 중심에는 트랜잭션이 있다. 트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능해져, 결과적으로 데이터베이스가 일관된 상태를 유지할 수 있다. 트랜잭션 트랜잭션은 하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다. 트랜잭션은 데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다. 데이터베이스의 무결성과 일관성을 보장하기 위해 작업 수행에 필요한 연산들을 하나의 트랜잭션으로 제대로 정의하고 관리해야 한다. 트랜잭션의 특징 트랜잭션의 특성으로.. Database/Database 기초 2021. 11. 8. CPU Scheduling 2 단일 CPU에서 멀티스레드 처리 개념은 병행성이다. 다중 CPU에서 멀티스레드 처리 개념은 병렬성이다. 스레드 모델에는 1:1 모델, n : 1 모델, n : m 모델이 있는데 모델에 따라 스케줄링 방식이 달라진다. 다중 프로세서 스케줄링에는 Asymmetric Multi Processing (AMP)와 Symmetric Multi Processing (SMP) 방식이 존재한다. AMP는 마스터 프로세서, 슬레이브 프로세서가 존재하며 마스터 프로세서가 스케줄링을 진행한다. SMP는 모든 프로세서가 동등하다. SMP 스케줄링 알고리즘에서 4가지를 알아보겠다. 부하공유 스케줄링 전용 프로세서 할당 스케줄링 갱 스케줄링 동적 스케줄링 부하공유 스케줄링은 모든 CPU가 공유하는 1가지 큐가 존재한다. 큐 안의 .. OS 2021. 11. 6. SDN 2023. 02.03 17:00 복습 시작 SDN SDN은 Software defined Network의 약어다. SDN은 개방형 API(오픈플로우)를 통해 네트워크의 트래픽 전달 동작을 소프트웨어 기반 컨트롤러에서 제어/관리하는 접근방식이다. 트래픽 경로를 지정하는 컨트롤 평면과 트래픽 전송을 수행하는 데이터 평면이 분리되어 있다. 따라서 네트워크의 세부 구성정보에 얽매이지 않고 요구사항에 따라 네트워크를 관리할 수 있다. SDN 구조의 4가지 특징 플로우 기반 포워딩: 패킷 포워딩 규칙은 스위치의 플로우 테이블에 기록되며, SDN에서는 모든 네트워크 스위치들의 플로우 테이블 항목들을 계산하고 관리, 설치하는 일들이 모두 SDN 제어 평면의 임무다. 데이터 평면과 제어 평면의 분리: 데이터 평면은 네트.. Network 2021. 11. 1. 정규화 2022. 12. 13. 22:40 수정 및 복습 시작 정규화 정규화는 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다. 두 가지 설계 방법(관계 데이터 모델 기반 데이터베이스 설계, 정규화)은 데이터베이스 설계 결과물이 비슷한 수준이다. 상황에 따라 적절한 방법을 선택하면 된다. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있다. 이러한 부작용을 이상 현상이라고 한다. 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정이 정규화다. 이상 현상 (3가지) 삽입 이상: 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제. 갱신 이상: 중복 투플 중 일부만 변.. Database/Database 기초 2021. 11. 1. CPU Scheduling 2022. 12. 28. 11:50 복습을 위한 수정 시작 CPU 스케줄러 CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 여러 개의 프로세스가 하나의 프로세서(CPU)를 효율적으로 공유하려면 적절한 스케줄링이 필요하다. CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 스케줄링을 위한 기초적인 개념으로는 처리율과 이용률이 있다. 처리율을 극대화하고 이용률을 극대화해야만 CPU를 열심히 일하게 만드는 것이다. CPU가 열심히 일하는 것이 OS의 목표이다. 처리율과 이용률 먼저 1초 실행, 1초 유휴를 진행하는 프로세스 P1, P2가 있다. 각 프로세스는 60초 동안 작동한다. 먼저 첫 번째 상황이다. P1 프로세스가 .. OS 2021. 10. 29. Git 원격 저장소 원격(서버) 저장소는 로컬 저장소의 코드를 복제한 복사본이라고 할 수 있다. 서버를 이용하면 코드를 안전하게 보관할 수 있고, 또 서버에 있는 소스 코드는 다른 사람들과 공유하고 협업하여 개발을 진행할 수도 있다. 원격 저장소가 있다면 언제 어디에서든지 개발을 이어 할 수 있다. 사무실에서 개발 중인 코드를 서버에 저장하고, 집에 와서는 사무실에서 작업하고 서버에 올린 코드를 자신의 컴퓨터에 동기화할 수 있다. 이처럼 사무실, 집, 다른 여러 컴퓨터에 코드를 동기화하고 연속된 작업을 이어 갈 수 있다. 깃은 분산된 저장소 여러 개를 하나로 통합하고, 최신 코드를 배포할 수 있다. 서버 저장소는 여러 컴퓨터에 동일한 깃 저장소를 복제하고, 작업한 결과물을 다시 서버로 통합한다. 원격 저장소로는 깃허브를 골.. Git 2021. 10. 28. Git commit 오늘은 커밋에 관해 실습하고 공부해보겠습니다. 먼저 git init 명령어를 이용해 저장소를 만든다. mkdir practice cd practice git init code hello.js 위와 같은 명령어를 이용해 워킹 디렉터리에 파일을 생성했다. git status 명령어를 통해 현재 깃의 상태를 알 수 있다. 그러면 위의 이미지와 같이 출력된다. Untracket files 표시 부분을 확인할 수 있다. 추적되지 않은 파일은 git bash에서 붉은색으로 표현한다. 이렇게 깃은 워킹 디렉터리에 새 파일이 추가되면 상태를 감지하고 향후 이력을 추적할지 여부를 결정한다. 우리는 이전 포스팅을 통해 워킹 디렉터리와 커밋 사이에 스테이지 영역이라는 것이 존재한다는 것을 공부했다. 이 스테이징 영역을 바탕.. Git 2021. 10. 27. 이전 1 ··· 24 25 26 27 28 29 다음 반응형