반응형
파이썬(Phyton) 파이썬 언어는 아주 간결합니다. 언어자체의 문법도 단순하고 실행환경도 편리합니다. 프로그램 초보 개발자도 접하기 쉽고 전문가도 파이썬의 데이터 타입, 기본 함수, 중요 모듈을 학습하면 원하는 프로그램을 짜는 데 시간이 많이 걸리지 않습니다. 데이터 구조인 문자열, 리스트, 딕셔너리 등을 기본적으로 제공하고 있으며 C와 같은 언어보다 코드 줄 수가 적기 때문에 프로그램 오류 가능성도 낮습니다. Java와 파이썬의 문자열 리스트 비교인데요 한번 보겠습니다. 1.Java String[] cities = {"Incheon","Busan","Seoul"}; for(int i=0; i < cities.lenth; i++) { System.out.println(cities[i]); } 2.Phy..
해시테이블은 Bucket배열에 Key, Value Entry를 저장하고 인출하는 구조입니다. 해시테이블 클래스는 Bucket 배열을 기본 데이터 필드로 가집니다. Chaining 방식으로 해시 충돌 문제를 해결하는 해시테이블에 대해 살펴볼 건데요, 해시테이블에서 자주 사용되는 주요 메서드는 아래와 같습니다. 1. Add(Key, Value) 메서드 해시테이블에 새로운 Key, Value 엔트리를 추가하는 메서드입니다. 입력된 Key를 해시함수를 사용해 Bucket 주소로 변환하면서 이 Bucket에 Key, Valuㄷ 엔트리를 추가합니다. 해당 Bucket 주소에 다른 엔트리가 있다면 Bucket의 엔트리 연결 리스트(Linked List) 앞부분에다가 새 엔트리를 넣습니다. 연결리스트의 마지막까지 이동..
자료구조 배열(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, 확장성, 유지보수 등의 문제점을 클라이언트중..