전체 글 43

13. javascript 나머지 매개변수

function showName(name){ console.log(name); } showName('Tom') // Tom showName('Tom', 'Mike') // Tom?? showName이라는 함수가 있다. 이 함수는 name이라는 인자를 받는다. 하나 이때 name이 두 개가 들어온다면 어떻게 되는가?? Tom 하나만 받고 Mike는 받지 않는다.. 이럴 때 나머지 매개변수를 사용할 수 있다. function(...name){ console.log(name) } 이 함수는 정해지지 않은 개수의 인수를 받아 배열로 나타낼 수 있다. function showName(...name){ console.log(name); } showName(); //[] showName('Tom') // ['Tom'..

Cs 2022.04.21

12. javascript 구조 분해 할당

구조 분해 할당이란 - 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식 let [x, y] = [1, 2]; console.log(x) // 1 console.log(y) // 2 위와 같이 배열 값에 각각 할당을 해줄 수 있게 된다. // 할당 할 값이 없을 떄 let [a, b, c] = [1,2] ; console.log(a) // 1 console.log(b) // 2 console.log(c) // undefined 할당할 값이 없는 c는 undefined 가 들어간다. undefined를 방지하기 위해 기본값을 사용하게 된다 // 할당 할 값이 없을 떄 let [a=3, b=4, c=5] = [1,2] ; console.log(a) // 1 console.log(b)..

Cs 2022.04.19

11. Javascript 생성자 함수

객체를 생성할 때는 아래와 같이 생성한다. let user = { name = 'Mike', age = 30 } 그런데 학급의 30명의 학생들이 있고 각 학생들의 객체를 생성하고자 하면 30번을 반복해야 하는 문제가 생긴다. 이럴 때 사용할 수 있는 게 생성자 함수이다. function User(name, age){ this.name = name, this.age = age } 생성자 함수를 사용할 때에는 함수명 앞에 new를 붙여준다. 그러하면 생성자함수에 빈 객체를 생성하고 그 객체에 특성을 담은 뒤 return을 하게 된다. function User(name, age){ this = {}; this.name = name, this.age = age return this; } 빈 객체를 생성하고 리턴..

Cs 2022.04.14

10. javascript let, var, const 의 차이

오늘은 javascript의 let, var, const에 대해 알아보려 한다. 공통점 var, let, const는 변수 선언에 사용된다. 변수의 범위 var : 현재 실행 문맥, 문맥은 둘러싼 함수, 함수의 외부의 전역으로 선언된 변수 let : 자신을 선언한 블록, 모든 하위 블록을 스스로의 스코프로 가진다. const : 선언된 함수에 전역 또는 지역일 수 있는 상수를 만든다. let과 동일 , 차이는 다시 값을 할당할 수 없다. 처음 선언할 때 값을 지정해야 한다. var와 let의 차이 var는 같은 함수 안에서는 같은 변수이다. let은 블록을 기준으로 하위 블록에서 재선언을 하면 다른 변수가 된다. 프로그램 최상단에서 사용할 경우 var는 전역 객체에 속성을 추가한다. let은 추가하지 않..

Cs 2022.04.07

9.클러스터드(Clusterd index) 와 논클러스터드(Non-clustered index) 인덱스 차이

인덱싱은 테이블에서 요청한 데이터를 더 빨리 반환한다. 인덱싱이 없으면, SQL서버는 전체 테이블에서 데이터를 검색하야 한다. 인덱싱을 통해 SQL 서버는 인덱스 페이지를 확인하여 책의 내용을 찾을 때와 동일한 작업을 수행한다. 같은 방식으로 테이블의 인덱스를 사용하면 전체 테이블을 스캔하지 않고도 정확한 데이터를 찾을 수 있습니다. SQL에는 두 가지 유형의 인덱싱이 있습니다. 인덱싱 유형 클러스터형 인덱스 논클러스터형 인덱스 클러스터드 인덱스 테이블당 1개씩만 허용된다. 물리적으로 행을 재배열한다. PK설정 시 그 컬럼은 자동으로 클러스터드 인덱스가 만들어진다. 인덱스 자체의 리프 페이지가 곧 데이터이다. 즉 테이블 자체가 인덱스이다.(1. 따로 인덱스 페이지를 만들지 않는다. 2. 클러스터드 인덱스..

Cs 2022.03.24

8. index(인덱스)(2)

인덱스의 생성 인덱스는 데이터 검색을 빨리 하기 위해 사용한다. 하지만 인덱스를 생성했다고 해서 데이터검색이 무조건 빨라지는 것은 아니다. 데이터의 양이 별로 없거나 데이터값이 몇종류 안 되어 선택도가 높으면 인덱스가 없는게 더 빠를 수 있다. 여기서 선택도란 '1/서로 다른 값의 개수'를 말하는 것으로, 예를 들어 100개의 행을 가진 테이블에 값이(남, 여) 두 가지라면 선택도가 높다고 할 수 있다. 이처럼 의미없이 인덱스를 생성하면 검색이 더 느려지고 저장공간만 낭비하게 된다. 따라서 인덱스 생성에 앞서 다음의 고려사항을 충분히 살펴봐야 한다. 인덱스는 where절에 자주 사용되는 속성이어야 한다. 인덱스는 조인에 자주 사용되는 속성이어야 한다. 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있다..

Cs 2022.03.23

7. Index(인덱스)(1)

DBMS는 사용자가 만든 테이블을 저장 장치에 저장하고 필요에 따라 검색하여 결과를 보여준다. DBMS는 데이터를 어떻게 저장하고 검색할까? 데이터베이스의 물리적 저장 워드프로세서는 작성한 문서는 어떻게 저장될까? 워드 프로세서로 작성한 문서는 파일 형태로 저장된다. 이 문서 파일은 워드프로세서만의 구조로 이루어져 있다. DBMS 역시 데이터를 DBMS만의 고유한 방식으로 저장하여 관리한다. DBMS는 워드프로세서와 마찬가지로 운영체제에서 실행되는 응용프로그램의 일종이다. 그림을 보면 SQL작업 도구 TOOL를 통해 SQL문을 작성하여 실행하면 DBMS에 의해 처리 방법이 결정되고, 운영체제를 통해 각 장치에 명령이 내려져 작업이 처리된다. 저장 작업도 마찬가지로 과정으로 진행되어 최종적으로 운영체제의 ..

Cs 2022.03.22

6. 데이터베이스 뷰(view)

뷰(View)는 하나 이상의 테이블을 합하여 만든 가상의 테이블이다. 합한다는 말은 앞서 배운 SELECT 문을 통해 얻은 최종 결과를 뜻하며, 뷰는 이러한 결과를 가상의 테이블로 정의하여 실제 테이블처럼 사용할 수 있도록 만든 데이터베이스 개체이다. 뷰의 장점 편리성 : 여러 테이블에서 데이터를 가져와 하나의 테이블로 정의함으로써 질의 작성이 간단하게 된다. 또 미리 작성된 질의를 뷰로 정의해 두면 질의 재사용이 가능하다. 보안성 : 원본 테이블에서 보안이 필요한 속성을 제외하고 새로운 테이블을 정의하여 사용자에게 제공함으로써 데이터 보안성을 높인다. 논리적 데이터 독립성 : 뷰를 정의하여 응용 프로그램이 사용하게 하면 개념스키마에 정의된 테이블 구조가 변경되어도 응용 프로그램의 변경을 막아 주기 때문..

Cs 2022.03.21

5. Subquery(서브쿼리) 부속질의

서브쿼리는 sql 문 안에 다른 sql 문이 중첩된 질의를 말한다. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용한다. 다른 테이블을 연관시킬 때는 조인 또는 서브쿼리를 사용한다. 허나 이 중 어떤걸 선태하느냐는 데이터의 형태와 양에 따라 달라진다. 일반적으로 데이터가 대량일 경우 데이터를 모두 합쳐서 연산하는 조인보다 필요한 데이터만 찾아서 공급해 주는 서브쿼리의 성능이 더 좋다. 서브쿼리는 위치와 역할에 따라 SELECT 서브쿼리, FROM 서브쿼리, WHERE 서브쿼리로 구분된다. 명칭 위치 영문 및 동의어 설명 중첩질의 WHERE 절 nested subquery, predicate subquery WHERE 절에 술ㄹ어와 같이 사용되며 결과를 한정시키기 위해 사..

Cs 2022.03.20

4. SQL 개념 및 MYSQL 내장함수

오늘은 데이터베이스에서 사용하는 SQL에 대해 알아보고자 한다. 탄생 배경 SQL은 1970년대 후반 IBM이 SEQUEL(Structured English Query Language)이라는 이름으로 개발한 관계형 데이터베이스 언어이다. 이후 1986년 ANSI에 의해 관계형 데이터베이스 표준 언어로 승인되었다. SQL의 후속버전은 1992년에 SQL2 1999년에 SQL3로 확장되었으며 SQl3는 객체지향의 개념을 일부 포함하고 있다. 현재는 연도에 이름을 붙인 SQL 2011 표준으로 개정되었다. SQL과 일반 프로그래밍 언어의 차이점 SQL은 자바나 C 같은 완전한 프로그래밍 언어는 아니다. 대신 데이터 부속어(data sublanguage)라고 부르는데, 이유는 데이터베이스의 데이터와 메타 데이터..

Cs 2022.03.17