1. 인터럽트란?? 인터럽트는 컴퓨터의 CPU가 현재 실행 중인 프로세스를 일시 중단시키고, 특정 이벤트(예: 입/출력 요청, 오류 발생 등)를 처리하기 위해 다른 작업(인터럽트 서비스 루틴, ISR)으로 제어를 전환하는 메커니즘입니다. 인터럽트가 처리된 후, CPU는 중단되었던 작업을 재개합니다. 인터럽트가 발생하는 원인 오류: 0으로 숫자를 나누는 산술 연산 오류, 프로세스 오류 등 IO디바이스를 사용할 때의 인터럽트: 키보드, 마우스 등 우선순위가 높은 프로세스의 발생 CPU는 메모리에 있는 명령어(instruction)을 순차적으로 실행하는데 인터럽트가 발생하게 되면 점프해서 언터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서 인터럽트 핸들러 함수(인터럽트 서비스 루틴, ISR)가 실행되며 특..
ahwhew프로젝트를 진행하면서 힙 메모리 에러 등 여러가지 cs적인 트러블 슈팅이 있었는데요,, 이런 에러들이 있을 때 마다 cs지식의 중요성을 느낍니다..! 그래서 이번에는 운영체제에 대해 공부하고 그 내용을 정리해보도록 하겠습니다! 학교에서도 배우긴 했지만 여기에서는 실질적으로 필요한 지식들을 간략하게 써보고 다음에 학교에서 배운 지식들을 좀 더 깊게 다뤄보면서 직접 cpu를 설계했던걸 가져와서 한번 해보도록 하겠습니다 ㅎㅎ 1. 운영체제의 종류 운영체제는 앞단의 어떤 인터페이스를 두느냐에 따라 GUI와 CUI로 나눌 수 있습니다. 1) GUI(Graphical User Interface) 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스입니다! windowOS, macOS등 현대의 OS가 이를 대..
기존에 공부했던 nestJS강의에서 nestJs의 대략적인 구동 원리를 알아보았었는데, 해당 강의를 들으면서 최신버전과 다른 점이 많기도하고, 더 구체적으로 알고 싶어져서 공부를 더 깊게 해보기로 했습니다..! 오늘은 첫 시작이라 별로 새로운건 없었지만 그래도 오늘 배운 내용 중에 기존보다 좀 더 구체화 된 지식이 있어서 정리해보려 합니다! 1. NestJS요청 라이프 사이클 라이프 사이클이란 요청이 디바이스로부터 서버로 보내진 다음에 응답이 되어서 돌아오는 과정을 전부 표현한 것이라 볼 수 있습니다. 이거 머리어 새겨두고 공부하면서 어느부분을 하고 있는건지 상기시키며 하면 좋을 것 같습니다! 2. nest g resource 이전에는 nest g mo, rest g service 이런식으로 각각 따로따..
1. 가상 머신 1) 전통적 배포방식 물리적인 컴퓨터 한 대에 하나의 OS를 설치하고, 여러가지 프로그램을 설치합니다. 계정을 나눠 여러명의 사용자가 이용가능합니다. 하지만!! 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미칩니다 하나의 OS를 유저들이 공유하기 때문입니다! 그래서 서로 독립적이지 못하죠! CPU, RAM도 유저별로 사용량을 지정할 수 없습니다! 2) 가상화 배포방식 가상머신을 기반으로 배포하는 것을 말합니다. 가상머신이란? 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것입니다. 전통적 배포방식과의 차이점은!! 계정을 나누는 것이 아니라 한 대의 컴퓨터로 여러 OS가 구동 가능하며, CPU,RAM을 설정하여 이를 수행할 수 있습니다. 여기에서 중간에 있는 Hyperviser가 하나의 시스..
오늘은 성공기 입니다! ㅎㅎ 지난 포스팅에서 다른 방법으로 ssl-key를 발급 받기로 했었죠? 마지막 남은 그 방법으로 ssl-key를 발급받고 어떻게 배포했는지까지 자세히 한번 포스팅해보도록 하겠습니다! 저희와 비슷한 환경에서 프로젝트를 진행했다면 많은 도움일 될거라 생각합니다 😁😁 1. Cerbot으로 ssl-key 발급받기: DNS TXT 방법 마지막 남은 방법은 dns txt 방법입니다... sudocertbotcertonly --manual --preferred-challenges=dns -d [구매한도메인] 이렇게 터미널에서 입력하면!! kimseeun@gimseeuns-MacBook-Air ~ % sudo certbot certonly--manual --preferred-challenges..
1. NestJs 기본 구조 지난 포스팅에서는 프로젝트 만들기까지 해 보았습니다. 그럼 만들어진 NestJs 프로젝트의 각 폴더 및 파일들이 어떤 역할을 하는 것인지 살펴보도록 하겠습니다! 프로젝트를 만들면 아래와 같이 파일들이 생성되었는데요! 하나하나 살펴볼게용 eslintrc.js 개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤 수 있게 도와주는 라이브러리입니다. 타입스크립트를 쓰는 가이드라인을 제시해 주고, 문법에 오류가 나면 알려주는 역학을 합니다. prettierrc 주로 코드 형식을 맞추는 데사용합니다. 작은따옴표를 사용할지, 큰 따옴표를 사용할지, Indent값을 2로 줄지, 4로 줄지 등등,,, 에러를 찾는 것이 아닌 코드 포맷터 역할을 합니다. nest-cli.json nest 프로젝..
목차 1. NestJs란? 2. NestJs는 어떻게 구성되었나?? 3. NestJs의 철학 4. NestJs CLI설치하기 5. NestJs 프로젝트 만들어보기 요즘에 Nest.js에 관심이 생겨서 한 번 배워보려고 합니다 ㅎㅎ! 기존에 새싹에서 Express와 Spring을 다뤘었고 프로젝트도 Express로는 두번, Spring으로는 한번 해봤었는데 Nest.js는 새로운 기술이라서 도전해보고 싶었습니다! 요즘에 뜨고 있기도 하구요!! Express를 요즘엔 대부분 Nest.js로 바꾸는 추세더라구요! 좀 더 다양한 프로젝트에 활용할 수 있는 역량을 키우고 싶기도하고,,,, 그래서 오늘은 Nest.js에 대한 소개를 한번 해보려 합니다! 1. NestJs란? Nest(NestJs)는 효율적이고 확장..
http로 배포를 했었는데요,,, seo최적화 및 클립보드 링크복사기능을 위해서 https가 필요했는데,,, 그 과정이 꽤나 험난했어서 ssl키 발급부터 ssl키를 프로젝트 파일에 넣고, dockerfile을 만든 후 이미지를 업로드해서 배포하기 까지의 과정을 살펴보려 합니다... 1. 사전작업 우선, Https로 배포하기 위해 ec2의 인바운드규칙에서 80포트는 접근하지 못하게 하였고 443으로만 접근하게 해 두었으며,ec2 바깥에 로드밸런서로 80포트(Http)로 접근시 443(https)로 리다이렉트 되도록 설정을 해 둔 상태입니다. 그리고 탄력적 ip로 고정 public ip를 사용하였고 이 public Ip를 도메인주소의 A레코드에 연결해 두었습니다. 2. 배포환경 저희 프로젝트의 배포환경은 프..