일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 추상적 자료 구조
- c언어 스택 배열
- 생성자 new
- Index Skip Scan
- pattern
- 연결 리스트
- C#
- jQuery
- 이중 연결 리스트
- 스택 배열
- 생성자
- npm Option
- 큐 연결리스트
- 확장 엘리먼트
- new 사용법
- 자료구조
- javascript new
- javascript this
- access
- Index Full Scan
- Index Range Scan
- 스택
- 연결리스트
- Loose Index Scan
- 연동
- 배열 스택
- 배열
- javascript 생성자
- javascript prototype
- 포인터
- Today
- Total
목록Programming (51)
Open-Closed Principle
생성자란 new와 함께 호출될 뿐 별다를 것 없는 함수에 불과하다. 그렇다면 생성자를 호출할 때 new를 빼먹으면 어떻게 될까? 문법 오류나 런타임 에러가 발생하지는 않지만, 논리적인 오류가 생겨 예기치 못한 결과가 나올 수 있다. new를 빼먹으면 생성자 내부의 this가 전역 객체를 가리키게 되기 때문이다.생성자 내부에 this.member와 같은 코드가 있을 때 이 생성자를 new 없이 호출하면, 실제로는 전역 객체에 member라는 새로운 프로퍼티가 생성된다. 이 프로퍼티는 window.member 또는 그냥 member를 통해 접근할 수 있다. 알다시피 전역 네임스페이스는 항상 깨끗하게 유지해야 하기 때문에 이런 동작 방식은 대단히 바람직하지 않다. 아래의 예제를 실행해보시면 정확하게 알 수 있..
객체 리터럴 패턴이나 내장 생성자 함수를 쓰지 않고, 직접 생성자 함수를 만들어 객체를 생성할 수 있다.12var adam = new Person("Adam");adam.say(); // "I am Adam"cs이런 형태는 객체지향 언어에서 클래스를 사용하여 객체를 생성하는 방식과 상당히 유사하다. 그러나 문법은 비슷해도 자바스크립트에서는 클래스라는 것이 없으며 위의 예제의 Person은 그저 보통 함수일 뿐이다. 아래 예제는 Person의 함수이다. 123456var Person = function (name){ this.name = name; this.say = function(){ return "I am " + this.name; };};csnew와 함께 생성자 함수를 호출하면 함수 안에서 다음과 ..
참고 : 이중 연결 리스트는 단순 연결 리스트와 함께 가장 많이 사용되는 연결 리스트의 형태이다. 단순 연결 리스트가 다음의 노드를 가리키는 하나의 링크를 가져서 바로 전의 노드를 알 수 없던 단점에 비해서, 이중 연결 리스트는 다음의 노드를 가리키는 링크와 전의 노드를 가리키는 링크 두 가지를 가져서 바로 전의 노드에도 접근할 수 있다는 것이 가장 큰 장점이다. 물론 하나의 링크를 더 사용하기 때문에 단순 연결 리스트보다는 메모리를 더 소모 한다. 이중 연결 리스트의 Node 구조이다. 12345typedef struct _dnode{ int key; // 정보 struct _dnode *prev; // 전 노드링크 struct _dnode *next; // 다음 노드링크} dnode;cs이중 연결 리..
집합 이론에서 두 집합(A와 B라고 가정) 간의 UNION은 A와 B에 있는 모든 요소들을 포함하는 집합니다. 다시 말해, 입력 집합들 중 어디라도 속해있는 요소들은 결과 집합에 속한다는 것이다. T-SQL에서 UNION 연산자는 두 입력 쿼리의 결과를 하나로 결합한다. 행이 어떤 집합에 있는지는 상관없이 UNION 연산자의 결과에는 보여지게 된다. T-SQL은 두가지 형태의 UNION 연산자를 지원하는데, UNION ALL과 UNION(암시적으로 DISTINCT 처리)이 이에 해당한다.UNION ALL 멀티셋 연산자UNION ALL 멀티넷 연산자는 두 입력 쿼리로부터 만들어지는 입력 멀티넷에 잇는 어떠한 행이라도 모두 결과에 포함시켜서 반환한다. 이때 행을 비교하거나 중복을 제거하는 등의 작업을 수행하..
연결 리스트는 노드(node)와 링크(link)로 구성이 된다.노드 : 실제의 정보를 담고 있는 하나의 단위링크 : 인접 노드의 위치를 저장하고 있어 연결 리스트의 순서를 유지할 수 있게 하는 연결고리연결 리스트는 정적인 자료 구조인 배열과는 달리 동적인 자료 구조이다. 연결 리스트는 필요하면 할당하고, 필요없으면 해제하는 식의 메모리 관리가 가능하기 때문에 배열처럼 여분의 공간을 마련할 필요가 없어 메모리를 절약할 수 있는 이점이 있다. 연결 리스트는 동적으로 메모리를 사용하기 때문에 프로그램의 실행중에도 얼마든지 규모를 크게 하든지, 작게 할 수 있다. 또 연결 리스트가 배열과 다른점은 배열은 메모리의 연속된 공간을 차지하는데 비해서 연결 리스트는 동적으로 수시로 할당 해제되기 때문에 메모리의 연속된..
공통 테이블 식(CTEs)은 파생 테이블과 비슷한 또 다른 형태의 기본 테이블 표현ㅅ기이다. 파생 테이블과 유사하지만, 파생 테이블보다는 더 많은 장점을 제공한다. CTE는 WITH 절을 이용해서 정의되며 다음과 같은 일반적인 형태를 따른다. 12345WITH [()]AS ( );cs참고 : T-SQL에서 WITH 절은 다양한 방식으로 사용된다. 따라서 WITH 절이 CTE를 정의하기 위해서 사용된다고 명확하게 명시할 필요가 있다. 즉 WITH 절이 CTE를 정의할 때 사용되는 경우에는, 동일한 배치 내에서 WITH 절앞에 또는 다른 구문이 있다면 반드시 세미콜론을 표기해줘야 한다. 겉으로 보기에는 파생 테이블과 CTE 간에는 차이가 거의 없어 보일 수도 있다. 그러나 파생테이블과 비교했을 때, CTE를..
T-SQL에서는 조인을 사용하는 비표준 방식의 DELETE 구문을 제공한다. 조인은 술어(ON 절에 있는)를 기반으로 필터하기 때문에, 조인 자체만으로도 필터링하는 기능을 제공하고 있따. 또한, 조인을 이용하면 참조하는 다른 테이블의 관련된 행의 특성들을 WHERE 절에서 사용할 수 있도록 해준다. 이는 다른 테이블에 있는 연관된 행의 특성들을 이용해서 현재 테이블의 행들을 필터링한 다음, 필터링된 핸들을 삭제할 수 있다는 것을 말한다. 아래 쿼리는 DELETE 쿼리의 JOIN을 사용한 예이다. 1234Delete From OFrom dbo.Orders AS OInner Join dbo.Customers As C On O.custid = C.custidWhere C.country = N'USA';cs조인..
DELETEDELETE 구문은 술어를 기반으로 테이블에 있는 데이터를 지울 때 사용되는 표준 구문이다. 표준 형태의 구문에는 단 두 개의 절 만 가질 수 있다. 하나는 지우고자 하는 대상 테이블을 지정하는 FROM 절이며, 다른 하나는 술어 부분을 지정하는 WHERE 절이다. 술어가 TRUE 평가되는 행들의 하위 집합만 삭제된다. 예를 들어, 아래 나오는 쿼리는 dbo.Orders 테이블에 있는 데이터 중 2007년도 이전에 발생된 주문 건들을 삭제하게 된다. 12Delete From dbo.OrdersWhere Year(dbo.Orders.orderdate)
SELECT INTO 구문은 대상 테이블을 생성한 후, 쿼리의 결과 집합을 생성한 테이블에 저장하는 비표준 T-SQL 구문이다. "비표준"이란, 이 구문이 ISO 및 ANSI SQL 표준이 아니라는 것을 말한다.이 구문을 이용해서 이미 존재하는 테이블에 데이터를 넣을 수는 없다. 문법은 간단히 결과 집합을 만드는 쿼리의 SELECT 절에 있는 FROM절 앞에 INTO 만 추가하면 된다. 12345IF OBJECT_ID('dbo.Orders', 'U') Is Not Null Drop Table dbo.Orders; Select SO.orderid, SO.orderdate, SO.empid, SO.custidInto dbo.Orders From Sales.Orders SOColored by Color Scr..
SQL Server는 자동으로 값을 생성하는 방법으로 두 가지 방법을 제공하고 있다. 하나는 identity 컬럼 속성을 이용하는 것이며, 다른 하나는 시쿼스 개체를 이용하는 것이다. 오늘은 identity에 대해서 알아보는 시간을 갖도록 하자 identity 속성은 아주 오래 전의 SQL Server 버전부터 지원이 되었다. 이 기능은 일부 시나리오서는 잘 동작하지만, 많은 결점을 가지고 있다는 것을 알아둘 필요가 있다. 글을 쓰면서 하나하나 설명하도록 하겠다. identity는 SQL Server에서는 숫자 형식의 컬럼(단, 소수점이 아닌)에 대해서 identity라는 속성을 정의할 수 있다. 이 속성은 커럼의 정의 부분에서 지정된 초기 값과 증가치(단계 값)를 이용해서 INSERT가 실행될 때마다 ..