목록분류 전체보기 (175)
가자미의 개발이야기
1. 관계 데이터 모델의 개념 #릴레이션과 관계 -릴레이션(Relation) : 행과 열로 구성된 테이블. 흔히 아는 표. -릴레이션 내의 관계(Relationship) : 릴레이션 내 데이터들의 관계. 관련 있는 실제 데이터들의 집합. -릴레이션 간의 관계 : 한 릴레이션에서 다른 릴레이션으로 식별 가능한 값을 이용해 연결하는 관계 #릴레이션 스키마 -스키마 : 릴레이션의 기본적인 구조를 정의 (첫 가로줄 헤더를 생각) -속성 : 릴레이션 스키마의 열(헤더 중의 하나를 가르키는 단위) -도메인 : 속상이 가질 수 있는 값의 집합. -차수 : 릴레이션이 갖고 있는 속성의 개수 #릴레이션 인스턴스 - 인스턴스 : 정의된 스키마에 따라 테이블에 저장되는 데이터 집합. - 투플 : 릴레이션의 행 - 카디날리티..
개념 -자료를 쌓아두는 의미 -LIFO(Last In First Out). 리포, 후입선출 -푸시(Push) 스택에 자료를 추가하는 것 -팝(Pop) 스택에서 자료를 꺼내는 것 -피크(Peek) 자료를 꺼내지 않고 스택의 가장 최상위에 있는 자료에 접근 -오버플로우(넘침) 스택 크기를 초과하여 새로운 자료 추가 -언더플로우(부족) 원소가 없는데 자료를 꺼내려 함 -배열로 구현 시 복잡도는 낮지만, 스택 크기를 미리 고정. arraystack.h 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 #ifndef _ARRAY_STACK_ #define _ARRAY_STACK_ typedef struct ArrayStackNod..
개념 -다항식을 구성하는 각 항을 노드로 표현 -노드에는 항의 계수와 차수를 데이터로 포함. -이전에 작성했던 linkedlist.h 와 linkedlist.c를 사용 linkedlist.h(이전에 작성했던 코드에서 노드의 데이터 부분을 약간 수정) 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 #ifndef _LINKEDLIST_ #define _LINKEDLIST_ typedef struct ListNodeType { int degree;//차수 float coef;//계수 struct ListNodeType* pLink; }ListNode; typedef struct LinkedListType {..
1. 데이터베이스 시스템 -DBMS(Database Management System) : 사용자와 데이터베이스를 연결시켜주는 소프트웨어 -데이터베이스 : 데이터를 모아둔 토대. 컴퓨터 내부 하드디스크에 저장 -데이터 모델 : 데이터가 저장되는 기법에 대한 논리적인 내용. 데이터가 저장되는 스타일을 나타냄. 2. 데이터베이스 시스템의 발전 실체 시스템 파일 시스템 데이터베이스 시스템 웹 데이터베이스 시스템 분산 데이터베이스 시스템 1970년대 정보 시스템 없음 수작업 회계 1980년대 데이터를 파일 단위로 파일서버에 저장. LAN으로 컴퓨터와 연결. 독립적으로 파일을 다루기 때문에 중복 저장 및 일관성 훼손의 문제. DBMS도입, 통합관리. 클라이언트-서버 개념 도입 설계 과정 도입으로 중복을 줄이고 데이..
개념 -마지막 노드가 첫번째 노드와 연결된 리스트. -이전 노트 탐색이 편리.(연결 리스트는 매번 처음부터 탐색해야 됨) ※원형 연결리스트는 헤드노드 대신에 헤드포인터를 사용해 구현해 볼 것임. 헤더파일 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 32 33 #ifndef _CIRCULARLIST_ #define _CIRCULARLIST_ typedef struct CircularListNodeType { int data; struct CircularListNodeType* pLink; }CircularListNode; typedef struct CircularListType { int current..
스트림이란 데이터를 일렬로 정렬한 상태를 의미한다. 이렇게 정렬된 데이터를 파이프에 통과시켜 우리가 원하는 결과를 얻고자 할 때 쓰인다. 이때 파이프는 중간연산과 최종연산으로 나뉘는데, 최종연산은 마지막에 오는 파이프로, 다른 것과 순서가 바뀔 수 없고, 중간연산은 최종연산을 제외한 모든 파이프를 의미한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.Arrays; import java.util.stream.IntStream; public class StreamPtc { public static void main(String[] args) { int[] ar = {1,2,3,4,5}; //학습용 코드(실효성 x) IntStream stm1..
-Optional 클래스를 왜 사용하는가? --if문을 여러번 써야하는 상황 중 일부를 쉽게 대체할 수 있게 하고자 함. -기본적 활용법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.Optional; public class OptionalPractice { public static void main(String[] args) { Optional os1 = Optional.of(new String("Toy1")); //of는 null인 인스턴스가 올 수 없음 Optional os2 = Optional.ofNullable(new String("Toy2")); //ofNullable은 null인 인스턴스가 올 수 있음. if(os1.isPresent..
-메소드 참조는 특수한 상황일 때, 람다식을 좀 더 줄일 수 있는 표현이다. -일종의 약속이니 예제에서 약속을 파악하자. -static 메소드 참조 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import java.util.Arrays; import java.util.List; import java.util.ArrayList; import java.util.Collections; interface Consumer{ void accept(T t); } public class ArrangeList { public static void main(String[] args) { List ls = Arrays.asList(1, 3, 5, 7, 9); ls =..
Predicate -boolean test(T t) 전달인자를 근거로 참 거짓반환 Supplier -T get() 메소드 호출 시 무엇인가를 제공 Consumer void accept(T t) 무엇인자를 받아 들이기만 함 Function R apply(T t) 입출력 출력이 있음 -Predicate 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 import java.util.List; import java.util.function.Predicate; import java.util.Arrays; public class Ramda { public static int sum(Predicate p, List lst) { int s =0; f..
-@FunctionalInterface --함수형 인터페이스가 맞는지 확인하는 기능 -람다식의 제네릭 1 2 3 4 5 6 7 8 9 10 11 @FunctionalInterface interface Calculate { T cal(T a, T b); } public class Ramda { public static void main(String[] args) { Calculate c1=(a, b)->a+b; Calculate c2=(a,b)->a-b; } } Colored by Color Scripter cs