반응형
자료구조 배열(Array) 배열은 연속적인 메모리 상에 동일한 데이터 타입의 요소들을 순차적으로 일렬로 저장하는 자료구조입니다. 순차적으로 나열된 배열요소는 각 요소마다 Index를 붙이는데 배열을 A라고 했을 경우 첫 배열요소는 A[0], 두번째 배열요소는 A[1], ... 등 으로 배열 index를 붙입니다. 하나의 배열은 고정된 크기를 가지고 배열 index를 사용할 경우 배열요소를 바로 접근할 수 있습니다. 배열A가 100개 배열요소가 있는 가정하에 A[0], A[50], A[99] 등 접근하는 시간은 동일하고, 모두 해당 요소를 즉시 접근하여 배열요소 값을 읽거나 쓸 수 있습니다. 배열은 프로그래밍 언어에서 사용하는 아주 기초적인 자료구조입니다. C#의 배열은 배열 객체로서 메모리 상에 배열에 ..
CISC 와 RISC 차이점 CISC는 메모리가 귀한 옛날에 탄생한 모델입니다. 그래서 최대한 작은 공간에 많은 뜻을 함축해야 했습니다. x86은 1바이트로도 명령을 표현할 수 있습니다. 반면, 최고 17바이트까지 길어질 수도 있다. 평균적으로 x86 코드는 작은 공간에 담을 수 있습니다. 대표적으로 x86에는 스택(stack) 메모리 공간을 직접 조작하는 push/pop 같은 명령어가 지원됩니다. 프로그램은 함수 호출을 관리하기 위한 정보(activation frames)나 지역 변수를 스택이라는 일종의 연습장과 같은 메모리에 쓰고 읽으면서 계산합니다. x86은 이것을 push/pop으로 간단하게 처리할 수 있습니다. 스택에 어떤 데이터를 넣고(push) 뽑는(pop) 것이 명령어 하나로 됩니다. 반면..
.NET 어셈블리 여러종류의 구성요소를 알아보겠습니다! 첫번째 구성요소로 어셈블리 매니페스트가 있습니다. 어셈블리 매니페스트는 어셈블리의 버전 요구사항과 보안ID를 지정하는 데 필요한 모든 메타데이터와 어셈블리의 범위를 정의하고 참조를 확인하는데 필요한 모든 메타데이터를 포함하고 있습니다. 어셈블리 매니페스트는 어셈블리 이름, 버전번호, 문화권, 강력한 이름의 정보, 어셈블리에 포함된 파일 목록, 형식 참조정보로 구성됩니다. 그리고 어셈블리에 정의된 형식들에 대한 형식 메타 데이터와 실제 수행해야 할 코드인 MSIL과 리소스로 구성됩니다. 어셈블리는 하나의 물리적 바이너리로 되어 있는 단일 파일 어셈블리와 여러 개의 물리적 바이너리로 되어있는 다중 파일 어셈블리로 나눌 수 있습니다. .NET에서는 어셈블..
PL/SQL 개념 Procedural Language Extension to Structured Query Language(SQL) 의 약자인데요, 한국어로 SQL을 확장한 순차적 처리언어라고 할 수 있습니다. 다시말해서 PL/SQL은 데이터베이스 질의어인 SQL과 일반 프로그래밍 언어의 특성을 결합한 언어라고 보면 됩니다. PL/SQL을 사용하면 앞에서 언급한 조건문이나 반복문, 변수나 상수를 선언해서 사용할 수 있을 뿐만 아니라 SQL도 사용할 수 있습니다. PL/SQL은 Oracle이 등장한 초기부터 만들어진 것은 아닙니다. SQL이 데이터베이스 질의 언어로서 매우 강력하고 유용한 것은 사실이지만 시간이 갈수록 DBMS의 역할이 커지고 SQL을 넘어서 일반 프로그래밍 언어를 처리할 수 있는 기능이 ..
1. UNION A와 B란 데이터 셋이 있을 경우 AUB로 표현되는 집합을 합집합이라고 합니다. 합집합은 A와 B에 포함된 모든 요소(데이터)들을 포함한 집합을 말합니다. 만약 A와 B에 속한 요소들이 아래와 같다고 한다면, A={1,3,4,5,7,8} B={2,4,5,8,9} A와 B 합집합 즉 AUB = {1,2,3,4,5,7,8,9} 가 됩니다. 합집합의 경우 두 데이터 셋에 공통적으로 있는 요소들인 {4,5,8}은 한 번만 포함합니다. SQL에서 이러한 합집합 역할을 수행하는 것이 바로 UNION 연산자입니다. 그럼 위의 내용을 SQL 로 작성해 보겠습니다. A=> SELECT 1,3,4,5,7,8 FROM DUAL; B=> SELECT 2,4,5,8,9 FROM DUAL; 이제 SET 연산자인 ..
Windows Presentation Foundation 의 약자로서 Window 기반 응용프로그램에서 사용자 Interface를 표시하기 위한 목적으로 Microsoft에서 만든 그래픽 서브시스템입니다. WPF는 2D/3D 렌더링, 고정 및 가변 문서, 타이포그래피, 벡터 그래픽스, 실시간 애니메이션, 프리렌더링 미디어와 같은 여러가지 보편적인 사용자 인터페이스들을 통합하는 것을 목적으로 합니다. 이러한 요소들은 다양한 이벤트, 사용자 인터랙션, 그리고 데이터 바인딩에 기반하여 연결 및 처리될 수 있습니다. WPF는 다양한 인터페이스 요소들을 정의하고 연결하기 위해 XML 기반의 언어인 XAML을 채택했습니다. WPF 응용프로그램은 데스크탑에서 단독으로 실행될 수도 있고 웹사이트에 내장된 객체로 서비스..
오늘은 아마존 웹 서비스인 AWS를 알아보겠습니다! Amazon Web Servicee 의 약자인데요, 아마존 웹서비스는 매출이 가장 큰 클라우드 공급 업체입니다. 클라우드의 핵심적인 아이디어는, 인터넷으로 또 다른 컴퓨터(크고, 복잡하고, 성능이 좋은)를 연결해 사용할 수 있는 것입니다. 아마존 웹서비스는 아마존이 제공하는 클라우드 서비스(줄여서 AWS)를 이용해서 컴퓨터 작업을 진행할 수 있습니다. AWS는 클라우드 컴퓨팅이라고 할 수 있는데요, 클라우드 컴퓨팅을 설명하기 앞서 간략하게 클라우드 개념을 정의해보면, 각각 고유의 기능을 가진 서버의 글로벌 네트워크라고 할수 있습니다. 클라우드 컴퓨팅은 이러한 글로벌 네트워크를 통해 제공되는 서버, 데이터베이스, 스토리지, 소프트웨어 등 필요한 IT 자원..
안녕하세요! 이번 포스팅은 스프링 프레임워크 (Spring Framework)에 대해 간략하게 알아보고, MVC 개념과 기본구조에 대해 설명하겠습니다. 스프링 프레임워크를 얘기하기 전에 먼저 프레임워크부터 짚고 넘어가야 할텐데요 프레임워크는 뼈대나 근간을 이루는 코드들의 묶음이라고 할 수 있습니다. 프레임워크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하며 모든 팀원들이 이 구조에 자신의 코드를 추가하는 방식으로 개발합니다. 프레임워크 최대의 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓아서 실력이 부족한 개발자라도 개발이 가능하다는 점이 있겠습니다. 스프링은 경량(Light-Weight) 프레임워크 입니다. 서버중심, Heavy weight, 확장성, 유지보수 등의 문제점을 클라이언트중..
이번 포스팅은 DDL 에 대해 알아보겠습니다! DDL이란 무엇일까요? Data Definition Language 의 약자로 데이터베이스 객체들을 생성하는데 사용되는 SQL문입니다. 데이터베이스 객체에는 데이터베이스, 테이블, 인덱스, 뷰, 트리거 등이 있고 이를 생성하는 데도 SQL문이 작성되는데 이 때 사용되는 SQL 문장들을 DDL이라고 합니다. DDL에는 대표적은 CREATE, DROP, ALTER, TRUNCAE 등 4개의 문장이 있습니다. 1. CREATE 문 데이터베이스 객체들을 생성할 때 사용합니다. CREATE문은 생성하는 데이터베이스 객체가 무엇이냐에 따라 그 용법이 다릅니다. 기본적인 구조는 "CREATE 객체종류 객체명 ..." 으로 동일합니다. 인덱스를 생성할 경우에는 "CREAT..
이번 포스팅은 트랜잭션(Transaction)에 대해 알아보겠습니다! 트랜잭션이란 무엇일까요? Transaction 단어의 본래 뜻은 거래 라는 의미가 있죠. 은행에서 돈을 입금하고 송금하고 출금할 때의 거래를 말하는데요, 그래서인지 데이터베이스에서 사용하는 트랜잭션 개념을 설명할 때는 은행 거래를 예를 드는 경우가 많습니다. 데이터통신 시스템에서 관리의 대상이 되는 기본적인 정보를 기록한 기본파일(master file)에 대해서 그 내용에 추가, 삭제 및 갱신을 가져오도록 하는 행위(거래)를 트랜잭션이라고 합니다. 예를 들면, 입하, 출하, 매상, 반품, 임금, 출금, 정정 등의 데이터를 말하며, 이동정보라고도 합니다. 쉽게 얘기해서 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 ..