분류 전체보기 219

MySQL 05 - 관계(Foreign Key)와 index의 개념

데이터베이스를 그릴땐 erd(Entity Relationship Diagram)을 그려야한다. FK는 참조가되는 테이블의 PK가 된다. fk를 거는 명령어 [Constraint] foreign key (col1) references tbl2(col2) ON [DELETE | UPDATE] [RESTRICT | CASECADE | SET NULL | NO ACTION | SET DEFAULT] ); idx-name은 적어주는것이 좋다. RESTRICT : 참조하고있는 테이블이 있으면 삭제불가 (default이다) CASECADE : 삭제하고있는 테이블을 참조하고있는 테이블의 행도 같이 지움 DEFAULT : 그 컬럼의 DEFAULT값으로 변하게 해라 UPDATE : 원하는 값으로 변하게 된다. defaul..

ch12 deep dive 함수

자바스크립트는 함수형 언어이다. 함수를 확실히 알고 넘어가자! 함수는 처음 평가될때 속까지 평가되진 않는다. (속의 평가는 실행단계에서 된다) 함수를 사용하는 이유는 중복코드를 없애고 함수의 특성을 이용하면 소스의 가독성이 좋아지기 때문이다. 리터럴은 값을 생성할 수 있는 앤데 함수 리턴이없으면 리터럴? 선언은 위로 올라간다(호이스팅된다. 값은 호이스팅되지 않는다.) 선언문으로 정의한 함수와 표현식으로 정의한 함수의 생성시점은 다르다 선언문으로 정의한것은 호이스팅이 일어나고 표현식으로 정의한 함수는 호이스팅이 일어나지 않는다. 호이스팅의 종류는? 변수 호이스팅, 함수 호이스팅이 있다. 함수는 함수 선언문과 함수 표현식이 있다. 함수표현식은 변수 호이스팅에 속한다. a=1; function f1(){.....

14. 전역 변수의 문제점

1. 변수의 생명 주기 1.1 지역 변수의 생명 주기 - 변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 그리고 소멸된다. - 변수에 생명 주기가 없다면 변수는 영원히 메모리공간을 점유하게 된다. - 전역변수의 생명 주기는 애플리케이션의 생명 주기와 같다. 하지만 함수 내부에서 선언된 지역 변수는 함수가 종료하면 소멸된다. - 지역 변수는 함수가 호출된 직후에 런타임 전에 평가된다. - 지역변수의 생성 주기는 함수의 생명 주기와 일치한다. - 변수의 생명 주기는 메모리 공간이 확보된 시점부터 메모리 공간이 해제되어 가용 메모리 풀에 반환되는 시점까지이다. - 변수는 자신이 등록된 스코프가 소멸될때(메모리 해제) 까지 유효하다. - 할당된 메모리 공간은 참조하는 이가 없을떄 해제도어 가용메모리 풀에..

13. 스코프

1. 스코프(Scope)란? - 식별자가 유효한 범위이다. - 모든 식별자(변수이름, 함수이름, 클래스이름 등..)는 자신이 선언한 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 결정되는데. 이를 스코프라 한다. * 코드의 문맥과 환경 => 코드가 어디서 실행되며 어떤코드가 주변에 있는지를 랙시컬 환경이라고 부른다. => 코드의 문맥은 랙시컬 환경으로 이루어진다. => 이를 실행한 것이 실행 컨텍스트이며, 모든 코드는 실행 컨텍스트에서 평가되고 실행된다. - 함수내부에서 선언된 변수는 외부에서 참조할 수 없다. - 프로그래밍 언어에서는 스코프를 통해 식자 이름의 충돌을 방지하고, 같은 이름을 사용할 수 있게 한다. - 스코프는 네임스페이스이다. * var키워드 변수의 중복선언 => v..

MySQL 04 - Insert, Select, Update, Delete 문

DML(Data Manipulation Language) - insert - update - delete - select - like : 부분검색 (ex. select * from Student where name like '김%' =>김씨로 시작하는사람) '%김', '%김%' 가능 - in : 여러개에 해당하는 조건 (ex. select * from Student where in(10,20,30) => id=10 or id=20 or id=30과 같음) - between : 범위를 정한다 (ex. select * from Student where between 10 and 30) - distinct : 중복되는거 뺀다. (ex. select count(distinct birth) from Student..

MySQL 02 - Table생성, 한글 설정, Session개념

host가 달라지면 같은 계정이라도 다른사람처럼 보인다 revoke all privileges on .* from ''@''; : 유저의 모든 권한을 뺏는다. 공식문서에서 [...]대괄호는 optional한 정보이다. create table [if not exists] student ( id int unsigned(-값은 취하지 않는다는 소리) not null auto_increment comment '학번', name varchar(31) not null comment '학생명', createdate timestamp not null default current_timestamp comment '등록일시', graduatedt varchar(10) default null comment '졸업일', au..

MySQL 01 - Database 및 User 생성하기

create database ; : db 스키마 생성 show databases; : 스키마들 조회 user : 해당 스키마를 사용(접속) show tables : 해당 스키마의 테이블들 조회 mysql은 oracle과 다르게 user를 생성해야한다. host는 접속하는 모든 클라이언트 아이디이다. 특정 웹서버에서만 접속하고싶으면 host부분에 해당 웹서버ip를 넣으면 된다. create user @'' identified by ''; : 유저를 생성한다. (접속권한과 같이) -> 새로 생성한 유저는 아무런 권한이 없다.(접속만 가능) grant all privileges on . to ''@''; :DB의 Shema에 특정행위를 할수있는 권한을 유저에게 준다.

ch10~11 deep dive

컴파일러는 토ㅗ크나이저할때 -를 만나면 좌 우를 분리시킨다 예약어는 키로 사용할 수있지만 가독성이 안좋다. 키를 중복선언하면 나중에 선언한 키가 프로퍼티가 덮어쓰기하는데 이는 객체가 해쉬테이블로 되어있기 때문이다. Hash.... 모든 프레임워크나 언어에서 해쉬를 안쓰는건 거의없다. 해쉬와 해쉬 테이블은 다르다. 해쉬의 key는 절대 중복될 수 없다. (Unique) 키밸류로 이루어진 테이블을 굳이 해쉬테이블이라고 하는 이유는 키를 해싱하기 때문이다. (키의 순서를 해쉬값으로 찾는다) 객체를 value에 넣고싶을땐 json으로 넣는다. 키값.hash() 를 돌려서 id의 unique값을 찾는다. 같은아이디는 언제 해싱을 해도 같은 값이 나오도록 한다. 암호화 알고리즘은 32진수나 64진수등을 많이 쓴다...

12. 함수

1. 함수란? - 함수는 일련의 과정을 문으로 구현하고 코드블록으로 감싸서 하나의 실행 단위로 정의한 것이다. - 입력받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값이라 한다. - 함수는 값이며 여러 개 존재할 수 있으므로 식별자인 함수 이름을 사용할 수 있다. - 함수는 함수 정의를 통해 생성한다. - 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해야하는데, 이를 함수의 호출이라 한다. 2. 함수를 사용하는 이유 - 함수는 코드의 재사용측면에서 매우 유용하다 (여러번 호출할 수 있기 때문) - 유지보수의 편의성을 높이고, 신뢰성을 높이는 효과가 있다. - 함수이름을 적절히 짓는다면 코드의 가독성을 향상시킨다. 3. 함수 리터럴 - 함수 ..