분류 전체보기 219

11. 원시 값과 객체의 비교

- 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. - 객체를 변수에 할당하면 참조값이 저장된다. - 원시값을 갖는 변수를 다른변수에 할당하면 원시 값이 복사되어 전달된다. => pass by value - 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다 -> pass by reference 1. 원시 값 1.1 변경 불가능한 값 - 원시타입은 변경 불가능한 값을 갖는다. - 변경 불가능하다는 것은 변수가 아니라 값에 대한 진술이다. - 변수에 재할당하면 변수 값을 변경(실제로는 교체) 할 수 있다. 1.2 문자열과 불변성 - ECMAScript 사양에서 문자열(2바이트)과 숫자(8바이트) 이외의 원시 타입은 크기를 규정하고 있지 않다. - 문자열은 몇개의 문자로..

책을 공부하는 순서

강사님이 생각하시는 필독서들이 있다. 1.언어를 깊이 있게 하는 책 -> 2. 언어를 배우면서 컴파일러를 읽어야한다. (두개가 시너지가 난다) -> 3. Computer Architecture (하드웨어에 대한 것) -> 4. 자료구조 & 알고리즘 (자료구조는 알고리즘과 함께이다) -> 5. Design Pattern -> 6. Refactoring (마틴파울러가 제안함) -> 7. Network -> 8. S/W 공학 (Scrum, Agile, RUP(에서 다이어그램만: 클래스, 시퀀스, 컴포넌트)) XP(extream Programming) 1)Pair Programming 2) Standup Meeting 이런 일련의 공부들이 2년정도 걸린다(실무하면서 공부하면)

강의13 - 실무에서 꼭 필요한 기술 (2/2)

vmstat : 가장 많이쓰는 모니터링 도구 vmstat 1 : 1초에 한번씩 실행해라 r(runable que): 지금 실행 해야하는데 대기중인 프로세스들 b(block) : I/O blocking되고 있는 프로세스들 swpd : 스왑되고있는 프로세스들 free : 현재 메모리에서 free한 공간 buff(buffer) : 현재 버퍼되고있는 공간 cache : 캐시를 올려놓은 공간 si(swap in) : 메모리가 부족해서 디스크에서 읽어오는 양 so(swap out) : 메모리가 부족해서 디스크에 쓰는 양 bi(block in) : 디스크나 디바이스에서 읽는것 bi(block out) : 디스크나 디바이스에서 쓰는것 in(interrupt) : cpu연산할 때 방해받는 수 cs(context swic..

강의12 - 실무에서 꼭 필요한 기술 (1/2)

usermod -aG wheel : sudo권한을 주는것 파일압축은 최근에는 xz , bzip2를 많이 쓰고 gzip은 예전부터 많이 썻다 xz는 압축률이 높다. gzip : 파일을 gzip으로 압축한다. gzip -d : gzip파일 압축을 해제한다. bzip과 xz도 gzip과 동일하게 사용한다. zip : 바뀔파일명으로 압축한다. unzip : 압축을 해제한다. gzip, bzip, xz은 파일을 그대로 압축한다(원본파일이 압축파일로바뀜) zip은 압축파일을 새로 생성한다. 실무에서 가장 많이 쓰는것은 tar이다. tar은 여러개를 묶어서 압축하는 것이다. tar cvfz : 지정된 파일들을 압축 (cvfz의 c는 create) tar xvfz : 압축 해제 용량을 많이 줄이려면 cvfJ 혹은 cv..

11강- 한방에 정리하는 리눅스 명령어와 쉘스크립트 (2/2)

팀원들을 그룹으로 묶어서 유저를 주면 관리하기 편하다 chage -l : 유저의 패스워드 암호에 대한 정보들을 볼 수 있다(만료기간 등..) grep egrep *.gz : 압축을 풀지않고 압축파일 내부에서 찾아달라. .vimrc 파일을 만들면 vim에디터의 초기 설정을 할 수 있다. shell script는 #!/bin/bash 또는 #!/bin/sh로 제일위에 선언을 하고 쓴다 date +%Y-%m-%d : 현재 날짜를 출력한다. 배열을 쓸때는 declare -a arr 를 써줘야 어레이를 인식한다 arr=("111" "222" "333") arr[@] 는 어레이의 전무다를 의미한다. IFS는 필드를 분리하는 값이다 => 기본은 스페이스바로 되어있다.

Ch. 7~9 deep dive JS

+는 산술연산자면서 문자열 연결 연산자이다. = 는 할당 연산자 단항연산자는 전위연산자와 후위연산자를 잘 이해해야 한다. ESLint에서는 단항연산자를 가급적이면 사용하지 않도록 하고있다 -> 이유는 오해의 여지가 있기 때문이다. undefined는 속에 쓰레기 값이 있을 수 있기 때문에 연산하면 안된다. 코드를 짜고나서 첫번째 봐야하는것이 불필요한 코드가 있냐 두번째가 중복되는 코드가 있냐 !!를 쓸때는 언제일까 f에 어떤값이 들어왔는지 모르기 때문에 f의 타입을 !!f로 바꾸면 boolean으로 바꿀수있다. 단축평가에서 c&&d라면 true이지만 값이 리턴이 되는것이기 때문에 리턴이다 예전에는 const x=1, y=2, z=3 이런 방식으로 사용할 때가 있었지만 변수를 지우게 되면 , 연산자가 남아..

10. 객체 리터럴

1. 객체란? - 자바스크립트는 원시값을 제외한 나머지값은 모두 객체이다. - 원시타입은 immutable value이지만 객체는 mutable value이다. - 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 key (프로퍼티 키)와 value (프로퍼티 값)로 구성된다. - 자바스크립트의 모든 값은 프로퍼티 값이 될 수 있다. (함수도 일급 객체이므로 취급할 수 있다.) * 일급객체 : 타입을 전달, 반환 및 할당 할 수 있는 경우 해당타입을 1급 객체로 간주한다. - 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해서 메서드라고 부른다. - 객체는 프로퍼티와 메서드로 구성된 집합체다. - 프로퍼티: 객체의 상태를 나타내는 값(data) - 메서드 : 프로퍼티를 참조하고 조작할 수 있..

9. 타입 변환과 단축 평가

1. 타입 변환이란? - 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다. - 표현식을 평가하는 도중 엔진에 의해 암묵적으로 타입이 변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라 한다. - 타입변환은 기존의 원시 값을 변경하는 것이 아니다. (immutable value이므로) 새로운 원시 값을 생성하는것 2. 암묵적 타입 변환 - ex) '10' + 2 // '102' - ex) !0 // ->true 2.1 문자열 타입으로 변환 - 피연산자중 하나 이상이 문자열일 때 주로 발생한다. - 템플릿 리터럴의 표현식 삽입은 평가 결과를 문자열 타입으로 암묵적 타입 변경한다. 2.2 숫자 타입으로 변경 - 피연산자를 숫자 타입으로 변환할 수 없는경우 NaN..

8. 제어문

- 조건에 따라 코드블록을 실행하거나 반복할 때 사용한다 (조건문 / 반복문) 1. 블록문 - 0개 이상의 문을 중괄호로 묶은 것으로 코드 블록 또는 블록으로 부른다. - JS는 블록문을 하나의 실행 단위로 취급. - 단독사용도 가능하나 일반적으로 제어문이나 함수를 정의할때 사용. - 블록문은 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않는다. 2. 조건문 - 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. - if..else문과 switch문 제공. 2.1 if...else문 - 조건식의 논리적 참/거짓에 따라 실행할 코드 블록이 결정된다. - if문의 조건식은 불리언으로 평가되어야 한다. - if의 조건식이 boolean이 아닌 값으로 평가되면 자바스크립트 엔진에 의해 암묵적으로 타입이 강..