일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택
- 연동
- javascript new
- 생성자 new
- 큐 연결리스트
- Index Full Scan
- 스택 배열
- new 사용법
- 추상적 자료 구조
- 생성자
- 배열 스택
- javascript prototype
- 확장 엘리먼트
- C#
- 이중 연결 리스트
- Index Range Scan
- 연결 리스트
- 배열
- jQuery
- 포인터
- Index Skip Scan
- Loose Index Scan
- c언어 스택 배열
- access
- javascript 생성자
- pattern
- 자료구조
- 연결리스트
- npm Option
- javascript this
- Today
- Total
목록분류 전체보기 (55)
Open-Closed Principle
스택은 제한된 접근 방식의 행위적 측면을 부여받은 자료 구조이다. 이러한 자료구조를 추상적 자료 구조(Abstract Data Structure)라고 한다. 스택이 어떤 제한된 접근 방식과 행위적 부여 받았는지 지금부터 살펴보도록 하겠다. 스택의 구조는 매우 간단한다. 스택은 밑이 막힌 긴 통이라고 보면 되겠다. 밑이 막힌긴 통은 무언가를 넣는 곳과 무언가를 통에서 빼내는 곳이 같다. 입구와 출구가 같기 때문에 먼저 들어간 것은 밑에 있게 되고 나중에 들어간 것이 위에 있다.그러면 제일 나중에 들어간 것이 제일 먼저 나오게 된다. 그래서 스택을 LIFO(Last In First Out) 구조라고 한다. 스택을 프로그램에서 구현할 때에는 여러가지 방법이 있지만 가장 많이 사용되는 방법은 배열과 연결 리스트..
생성자란 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..