전체 글

타입스크립트를 많이 사용하는 이유 1. 버그 예방 자바스크립트의 버그 중 15%를 타입스크립트의 사용으로 미리 예방할 수 있다는 연구가 있다고 합니다. 자바스크립트는 선언할 때 타입을 지정해주지 않기 때문에 동작하면서 언제 나도 모르게 형변환이 되어 있을 수도 있고, 그런 부분으로 인해 예기치 않은 버그가 발생할 수도 있습니다. 심지어 인터프립터 언어 특성상 그런 버그들을 찾는 것 조차 쉽지 않죠. 컴파일 과정이 없기 때문에 에러를 출력하지 않고 실행되기 때문입니다. 타입스크립트를 사용한다고해서 모든 버그를 완전히 막을 수 있는 것은 아니지만 적어도 컴파일단계에서 타입관련 에러는 막을 수 있습니다. 예를들어, strictNullCheck 옵션을 true로 해놨다면 객체/null/undefined가 할당될..
· IT/Node.js
1. npm 캐시 삭제 npm cache clean --force 2. npm 활용 업데이트 n 패키지 global로 설치(root에서 버전 관리하기 위해) npm install -g n 명령어가 동작하지 않는다면 명령어 앞에 sudo를 붙여 root 권한으로 처리 n stable // 안정 버전 n latest // 최신 버전 n lts // lts 버전 n x.x.x // 특정 버전 (x.x.x 버전) // 이전 버전들 삭제해 주는 명령어 n prune
· IT/etc.
IPC(Inter Process Communication) 프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이다. 동시에 접근 가능한 메모리 즉, 프로세스들이 공유하는 메모리가 필요하다는 뜻이다. 프로세스간 통신이 서버-클라이언트 간 통신과 유사하기 때문에 인터넷 통신을 IPC의 확장으로 이해할 수 있다. 따라서 컴퓨터 내부에서 보다 효율적으로 정보를 주고 받기 위한 통신의 일종이라 생각하면 된다. IPC의 종류 별 사용 시기 및 특징 IPC 종류 PIPE Named PIPE Message Queue Shared Memory Memory Map Socket 사용 시기 부모 자식 간 단방향 통신 시 다른 프로세스와 단..
· IT/etc.
메모리(Memory)란? 컴퓨터에서 정보를 처리하기 위해 일시적으로 정보를 보관하는 기억장치이다. 좁은 의미로 메모리는 주기억장치인 램(RAM)을 의미하지만, 넓은 의미로는 보조기억장치인 롬(ROM)을 포함하기도 한다. 주기억장치인 램(RAM)의 용량이 부족한 경우를 대비하여 하드디스크의 일부분을 가상 메모리로 사용할 수 있다. 메모리 관리 전략 메모리 용량이 증가함에 따라 프로그램의 크기 또한 계속 증가하고 있기 때문에 메모리는 언제나 부족하므로 제한된 물리 메모리의 효율적인 사용과 메모리 참조 방식을 제공하기 위한 전략 메모리 낭비 방지 기법 1. 동적 적재(Dynamic Loading) 프로세스가 시작될 때 그 프로세스의 주소 공간 전체를 메모리에 올려놓는 것이 아니라 메모리를 효율적으로 사용하기 ..
· IT/etc.
Linux Shell 명령어 명령어 예시 기능 grep grep [문자열] [파일명] 파일에서 특정한 패턴(문자열)을 찾는 명령어 grep hello ./hi.txt hi.txt에서 hello가 포함된 라인만 출력 grep hi ./* 현재 폴더의 모든 파일에 대해 hi가 포함된 라인만 출력 awk 패턴 탐색과 처리를 위한 명령어 파일에서 패턴이 일치하는 행을 찾아 지정한 조치를 수행해주는 명령어 awk '{print}' file 파일의 내용 출력 awk '$2 == 40 {print $0} file 파일의 두 번째 필드가 40이면 두 번째 필드만 출력 awk '{sum += $3} END {print sum}' file 파일의 세 번째 필드의 합 계산 awk '/A/' file A를 포함하는 레코드만 ..
· IT/etc.
1. 스레드(Thread)란? 어떤 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말하며, CPU 사용하는 기본 단위를 뜻한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드라고 한다. 2. 멀티 스레드(multi thread) 일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행하지만 멀티 스레드는 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다. 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적다. 또한, 하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답..
· IT/etc.
1. 프로세스(Process)란? 프로세스는 메인 메모리에 할당되어 실행중인 상태인 프로그램이다. 프로그램은 일반적으로 하드디스크(보조기억장치)에 저장되어 아무 일도 하지 않는 상태이다. 프로세스의 stack, data, text, register 등의 값이 프로세스 실행 중에 계속 변하며 한 컴퓨터 내에서 여러 프로세스가 돌아갈 수 있다. 프로세스는 job, task 등으로 불린다. 2. 프로세스의 메모리 구조 프로세스의 주소 공간은 code, data, stack, heap 영역으로 구성된다. 이러한 공간을 가상 메모리(또는 논리적 메모리: logic memory)라고 부른다. 2-1 code 영역 사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되..
· IT/etc.
OS(Operating System, 운영체제)란? 사용자의 하드웨어(입출력 장치, CPU)의 리소스를 제어하고 프로그램에 대해 일반적 서비스를 지원하는 시스템 소프트웨어다. 시스템 하드웨어 관리 및 동시에 여러 애플리케이션이 작동할 수 있는 환경을 제공해주는 소프트웨어다. 현대의 PC 운영체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다. 운영체제가 하는 일은 다음과 같다. Process management Process와 Thread의 CPU위에서의 작업들을 Scheduling한다. User와 System의 Process를 생성하거나 삭제한다. Memory management 명령어들이 순서에 맞게 실행되도록 관리한다. 모든 Data들이 실행되기 전에 Memory에 올라갈 수 있도록 관리한..
· IT/etc.
호스팅(Hosting)이란? 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스를 말한다. 사용자가 직접 서버를 구입하고 운영할 필요 없이 호스팅 업체가 미리 준비해 놓은 서버를 빌려 사용하는 형식이다. 호스팅 서비스의 종류 1. 웹 호스팅(Shared Hosting) 웹 호스팅 혹은 공유 호스팅은 개별 홈페이지를 운영하는 사용자를 위해 서버 컴퓨터의 일부 공간을 임대해 주는 서비스다. 웹 호스팅은 하나의 서버에서 여러 사용자의 사이트를 보여주기 때문에 한 사용자가 서버 자원을 과도하게 사용하게 되면 서버 내 다른 사용자의 페이지 처리 속도에 영향을 끼쳐 업체마다 정해진 조치를 취한다. 장점은 저렴한 가격도 있지만 서버 관리에 대해 신경 쓸 필요가 없다는 것도 큰 장점이다. 단독 ..
· IT/etc.
Domain name이란? 사람들이 원하는 사이트에 방문하기 위해 브라우저에서 입력하는 주소를 말한다. 특정 웹사이트는 각각 고유한 도메인 네임을 가지며, 다른 동일한 이름을 다른 웹페이지에 함께 사용할 수 없다. https://www.naver.com https : protocol www : subdomain naver : name com : extension naver.com : domain name 도메인 네임의 작동 과정 웹 브라우저에 도메인 이름 입력 DNS서버로 요청 전송(특정 도메인에 연결된 이름 서버를 검색하고 요청 전달) 이름 서버는 웹 호스팅 제공자가 관리하며, 관련 IP를 찾으면 웹 사이트 파일이 저장된 웹 서버로 요청 전송 웹 서버는 IP를 사용하여 연결된 모든 파일 찾은 후 모든 ..
Huitopia
summary