분류 전체보기 1097

람다식 { 함수형 프로그래밍, 람다식, 연습문제 }

자바는 8 버전부터 객체지향 언어임에도 불구하고 함수형 프로그래밍 기법 사용이 가능해졌다. 함수형 프로그래밍은 함수를 중심으로 프로그래밍하는 기법인데, 코드 가독성과 유지보수 확보를 위해 사용한다. 자바에서 메소드는 무조건 클래스 안에 존재해야 하는데(객체 지향 언어이기 때문), 함수형 프로그래밍에서는 가능해졌다. 메소드를 객체 생성 없이 사용할 수 있다는 것을 의미한다. 함수형 프로그래밍에서는 람다식과 함수형 인터페이스를 사용하여 함수를 표현하게 된다. 함수형 인터페이스는 단 하나의 추상 메소드를 가지는 인터페이스이다. 함수형 인터페이스는 @FunctionalInterface 라는 Annotation 이 사용된 것을 볼 수 있다. Annotation 은 특정 제약사항을 걸어줄 때 사용하는데, 함수형 인..

내부클래스 { 개요, 종류, 제약사항, 익명 클래스 }

package innerclass; class A { int i = 10; } class B { void method() { A a = new A(); System.out.println(a.i); } } // B 클래스는 A 클래스의 외부 클래스라서 A 클래스의 멤버를 사용하려면 객체를 생성해야 했다. package innerclass; class Outer { int a = 10; class Inner { int b = 100; int c = 200; public void method1() { System.out.println(a); } } } // 내부 클래스에서는 외부 클래스 생성 없이 멤버를 그냥 사용할 수 있다 내부 클래스의 장점은 원래는 객체 끼리 멤버를 가져다 쓰려면 인스턴스를 사용한 다음 ..

관계형 데이터베이스의 제약 조건 - 키 Key

제약 조건 제약 조건이란 데이터베이스에 저장되는 데이터의 정확성 보장을 위해 키 key 를 이용하여 입력되는 데이터에 제한을 주는 것을 의미합니다. 개체 무결성 제약, 참조 무결성 제약 등이 해당 됩니다. 키 Key 키 ? 키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. 후보키 Candidate Key 후보 키 ? 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합들이다. 기본적으로 기본키로 사용될 수 있는 속성들을 의미한다. 후보키는 유일성과 최소성을 모두 만족시켜야 한다. 기본키 Primary Key 기본키는 후보키 중에서 주키 Main Key 로 선정된 키이다. 기본키는 중복된 값을 가질 수 없다. ..

관계형 데이터베이스의 구조

관계형 데이터베이스 관계형 데이터베이스 ? 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 데이터베이스이다. 1970년 IBM에 근무하던 E.F. Codd 가 처음 제안하였다. 개체 Entity와 관계 Relationship를 모두 릴레이션(Relation)이라는 표(Table)로 표현하기 때문에 개체를 표현하는 개체 릴레이션과 관계를 표현하는 관계 릴레이션이 존재한다. 장점 : 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다. 단점 : 성능이 떨어진다. 구조 : 릴레이션으로 데이터가 표현된다. 릴레이션이란 데이터들을 표 Table 형태로 표현한 것으로 릴레이션 스키마(속성)와 릴레이션 인스턴스(튜플)로 구성된다. 튜플 튜플 ? Tuple 튜플은 릴레이션을 구성하는 각각의..

데이터 모델 개요

데이터 모델이란 데이터 모델 ? 현실 세계 정보들을 쳬계적으로 표현한 개념적 모형이다. (컴퓨터에 옮기기 위함) 데이터 관계 & 의미 및 일관성 & 제약 조건 등을 기술함. 데이터의 구조(Schema)를 논리적으로 표한하기 위한 도구로 사용됨. 데이터 모델 구성 요소 - 개체 - 속성 - 관계 데이터 모델 종류 - 개념적 데이터 모델 (현실 세계에 대한 인간의 이해를 돕기 위해 추상적 개념으로 현실을 표현. E-R 다이어그램이 대표적이다. 인간이 이해할 수 있는 정보 구조 표현하기 때문에 정보 모델이라고도 함) - 논리적 데이터 모델 (개념적 모델을 통해 얻은 개념적 구조를 컴퓨터가 이해할 수 있도록 컴퓨터 세계 환경에 맞도록 변환하는 과정이다. 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.) ..

데이터베이스 개요 & 스키마

데이터 저장소 데이터 저장소? 데이터 저장소는 데이터를 조직화하여 물리적인 공간에 구축한 것을 의미한다. 즉 데이터 및 데이터 간의 연관성, 제약 조건을 식별하여 논리적인 구조로 조직화한 것이다. 데이터 베이스 데이터베이스는 여러 사람이 공동으로 사용될 데이터를 중복 배제 통합 후 쉽게 사용할 수 있도록 저장장치에 저장하여 운영하는 운영 데이터를 의미한다. DBMS (DataBase Management System; 데이터베이스 관리 시스템) DBMS ? DBMS는 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어이다. 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 개발되었다. DBMS 의 필수 기능 3가지 - 정의 기능 : 데이터의 형과 구조에 대한 ..

디지털 저작권 관리 DRM

디지털 저작권 관리 구성요소 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급, 암호화된 키 관리, 사용량에 따른 결제 관리 등 수행 콘텐츠 제공자 : 저작권자 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳이나 사람 콘텐츠 소비자 DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램 보안 컨테이너 : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치 디지털 저작권 관리 기술 요소 암호화 Encyption : 콘텐츠 및 라이선스 암호화, 전자서명 키 관리 : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술 암호화 파일 생성 Packager : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술 식별..

객체지향과 소프트웨어 구현

객체란 필요한 자료 구조와 수행되는 함수들을 가진 하나의 독립된 존재이다. Java 에서 정보은닉을 표기할 때 private 의 의미는 외부에서 클래스 내부 정보에 접근하지 못하도록 하는 '접근금지'이다. 상속은 개별 클래스를 상속 관계로 묶음으로써 클래스 간의 체계화된 전체 구조를 파악하기 쉽다는 장점이 있다 같은 클래스에 속하는 개개의 객체이자 하나의 클래스에서 생성된 객체를 인스턴스라고 한다.

정렬

삽입 정렬 삽입 정렬 ? 오름차순 정렬을 진행하는데, 작은 값을 앞으로 삽입하고 큰 값을 뒤로 이동시킨다하여 삽입 정렬이라고 한다. 시간 복잡도 평균과 최악 모두 O(n 제곱) 1회전 : 두 번째 값을 첫 번째 값과 비교하여 작은 값을 앞으로 삽입. 2회전 : 세 번째 값을 첫 & 두 번째 값과 비교하여 오름순으로 정렬 3회전 : 네 번째 값을 첫 & 두 & 세 번째 값과 비교하여 오름차순 정렬 선택 정렬 선택 정렬? 레코드 중에서 가장 작은 값을 찾아 첫 번째 자리로, 두 번째로 작은 값을 찾아 두 번째 자리로 놓는 방식을 반복 하여 정렬하는 방식이다. 시간 복잡도 평균과 최악 모두 O(n 제곱) 1회전 : 첫 번째 값과 두 번째 값 비교 후 작은 값을 첫 번째 값으로 이동, 이 과정을 모든 요소들에 ..

소프트웨어 패키징

소프트웨어 패키징 소프트웨어 패키징 ? Package 라는 말은 무언가를 묶어서 한 세트로 만드는 의미가 있는데, 소프트웨어 패키징이란 기능별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 의미합니다. 소프트웨어 패키징을 할 때는 소프트웨어가 사용될 단말기 종류, 운영체제, 사양 등을 고려해서 패키징 하게 됩니다. 어려운 말로 '모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것'을 의미합니다. 특징 - 개발자가 아닌 사용자 중심으로 진행 - 소스 코드는 향후 관리를 위해 모듈활 후 패키징 한다. 패키징 작업 순서 기능 식별 : 작성된 코드의 기능 확인 모듈화 : 확인된 기능 단위로 코드 분류 빌드 진행 : 모듈 단위별로 파일을 만듦 사용자 환경 분석 : 소프트웨어가 사용될 ..