본문 바로가기
반응형

전체 글119

파일, 디렉토리 삭제 rm rm은 remove의 약자로, 파일 또는 디렉토리를 삭제하는 명령어입니다. 파일 삭제하기 abc.txt 파일을 삭제합니다. 삭제할 건지 다시 묻습니다. y 또는 yes를 입력하면 삭제합니다. rm abc.txt 확장자가 txt인 모든 파일을 삭제합니다. 각 파일에 대해서 삭제할 건지 묻습니다. rm *.txt 현재 디렉토리에 있는 모든 파일을 삭제합니다. 각 파일에 대해서 삭제할 건지 묻고, 디렉토리가 있다면 삭제할 수 없다는 메시지가 나옵니다. rm * -f 옵션을 붙이면 삭제할 건지 다시 묻지 않고 바로 삭제합니다. rm -f abc.txt 현재 디렉토리에 있는 모든 파일을 바로 삭제합니다. 디렉토리는 삭제하지 않습니다. rm -f * 디렉토리 삭제하기 dir1 디렉토리를 삭제합니다. 디렉토리를.. 2021. 4. 15.
HTTP vs HTTPS / GET vs POST HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재한다. 이런 보안 문제를 해결해주는 프로토콜이 'HTTPS' 동작순서 HTTP : TCP -> HTTP HTTPS : TCP -> SSL -> HTTP HTTPS 는 HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) or TLS(Transport Layer Security)라는 프로토콜로 대체하는 것 뿐이다. HTTPS 의 SSL 에서는 공통키 암호화 방식과 공개키 암호화 방식을 혼합한 하이브리드 암호 시스템을 사용한다. 공통키를 공개키 암호화 방식으로 교환한 다음에 다음부터의 통신은 공통키 암호를 사용하는 방식이다. 모든 사이트가 HTTPS로 하지 않는 이유는, 암호.. 2021. 4. 12.
Todo.gg 리팩토링 Object is possibly 'null' let authorization:string|undefined = req.headers["authorization"]; const accessToken=authorization.split(" ")[1]; authorization의 타입을 유니온( | )을 이용해서 string 또는 undefined 라고 지정했다. 그러면 밑에 authorization.split(" ")[1];이 부분에서 Object is possibly 'null' 에러가 뜬다. 위와같은 에러는 객체가 비어 있을 수도 있는데 해당 객체의 내부 메소드를 사용하거나 내부 객체 키에 값을 넣어주려고 할 때 발생한다. 해결방법 옵셔널체이닝 ( ? ) let authorization:string|undefined = req.hea.. 2021. 3. 25.
운영체제 운영체제 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작과 자원을 제어하는 시스템 소프트웨어 프로세스 프로세스는 실행되는 프로그램 자체와 프로그램이 실행되는 주변 환경을 포함하는 개념이다. 디스크에서 메모리로 적재되어, CPU 자원의 할당을 받을 수 있음 실행되는 주변 환경이란 사용중인 파일, 데이터, 메모리 영역(스택, 힙, 데이터, 코드 영역) 주소 공간등을 뜻한다. 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성된다. 각 프로세스는 별도의 주소공간을 할당받는다. Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령) Data : 전역변수, 정적변수, 배열 등 (초기화된 데이터) Heap : 동적 할당시 사용 (new(), malloc.. 2021. 3. 24.
클린코드 / 리팩토링 클린코드 가독성이 높은 코드 함수, 변수 네이밍이 잘 되어야 한다. 오류가 없어야 한다. 중복이 없어야 한다. 의존성을 최대한 줄여야 한다. 한 클래스 또는 메서드가 한가지 작업만 처리해야 한다. 리팩토링 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드만 정리하면서 개선하는 것 코드의 가독성을 높이고, 유지보수에 도움이 된다. 리팩토링이 필요한 코드 중복된 코드 거대한 클래스 긴 메서드 Switch 문 절차지향으로 구현한 코드 차이점 리팩토링은 클린 코드의 가독성을 확보하면서 유지보수를 위한 코드 개선이 필요하므로 더 큰 의미를 갖는다. 클린코드 ∈ 리팩토링 클린 코드는 설계부터 잘 이루어진 것이 중요하다. 리팩토링은 결과물이 나온 이후 수정이나 추가작업시 개선해 나가는 것이 올바른 방향이다. 출처 .. 2021. 3. 24.
Node.js 에 대해서 (요약) Node.js란 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임이다. 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경 이벤트 기반, 논 블로킹 I/O 모델이다. 이벤트 기반(event-driven) 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식 ex) 이벤트 리스너에 콜백 함수를 등록한다. 이벤트 루프 - 이벤트 발생시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행순서를 결정하는 역할. 논 블로킹 I/O 노드의 libuv 라이브러리 JS 코드는 동시에 실행될 수 없으나 JS 상에서 돌아가는 것이 아닌 I/O(입출력) 작업은 동시에 처리될 수 있다. 논 블로킹이란 이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행하는 것을 의미한다.. 2021. 3. 17.
undefined 와 null 의 차이 기본적으로 둘의 차이는 undefined는 자바스크립트 엔진이 명시적으로 부여하는 경우가 있고, 사용자가 직접 할당하는 경우도 있다. null은 사용자가 직접 할당해야만 사용된다. 자바스크립트 엔진은 사용자가 응당 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 그렇게 하지 않았을 때 undefined를 반환한다. 아래는 그 세가지 경우. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때 return 문이 없거나 호출되지 않는 함수의 실행 결과 변수는 변경가능한 데이터가 담길 수 있는 공간 / 식별자는 그 변수의 이름 let a = []; a.length = 3; a //[ empty, empty, .. 2021. 3. 17.
간단하게 정리한 얕은 복사와 깊은복사 자바스크립트 데이터 타입에는 크게 두가지가 있는데, Primitive Type(원시 타입)과 Reference Type (참조 타입)이 그것이다. let a = 123; let b = a; console.log(a === b); //true a = 0; console.log(a === b); //false 원시타입(숫자, 문자열, 불린, null, undefined) 데이터는 원본 a의 값(value)을 사본 b에 = 을 이용해서 대입했을 때, 원본 a 의 값을 변경해도 b의 값이 변경되지 않는다. 이는 원시타입 데이터는 변수에 할당될 때 메모리 상에 고정된 크기로 "새로" 저장되기 때문에, 변수가 선언(let이나 var로 생성했을 때), 초기화(최초로 변수에 값을 지정함), 할당(변수에 = 을 사용해서.. 2021. 3. 10.
알고리즘 풀이 노션링크 www.notion.so/735a56bd6e234f3b9a1866dcd29bb6d5 알고리즘 시간 복잡도 Big O / Big Ω www.notion.so 2021. 3. 8.
반응형