분류 전체보기 1097

알고리즘 { 개요, 순서도, 연습문제 }

알고리즘은 일종의 방법론이라고 할 수 있다. 프로그램이 간단하다면 방법론은 필요 없지만 프로그램이 복잡해짐에 따라 쉽게 해결하기 위해서 방법론이 필요해졌다. 대표적인 방법론으로는 알고리즘과 애자일이 있는데, 이번에 배워볼 것은 알고리즘이다. 어떠한 문제가 있을 때 문제는 복잡하게 꼬여있어 보여서 풀기가 어렵다. 이런 문제를 내가 해결할 수 있는 작은 단위로 먼저 쪼개고 그 문제들을 순차 & 선택 & 반복 구조를 활용해서 해결해나가는 것이 알고리즘이라고 할 수 있다. 알고리즘은 문제를 해결하는 과정을 글이나 그림으로 표현할 수 있다. 순서도는 알고리즘을 그림으로 표현한 것을 의미한다. 순서도를 작성할 때는 여러 가지 기호를 사용하게 된다. 순서도를 위에서부터 아래 방향으로 배치를 해서 작성하게 된다. 제일..

보조 스트림 { 개요, 종류, 특징 } & File 클래스

보조 스트림은 기반스트림에 연결해서 계속적으로 사용할 수 있는 스트림으로, 편리한 기능을 제공하는 스트림들이다. 바이트 단위 스트림은 한글 문자같은 2바이트 문자를 못 읽는다. 그런데 inputStreamReader 와 같은 보조 스트림을 사용하면 바이트 단위 자료를 문자로 변환하는 기능을 제공한다. Bufferedinput & output Stream 보조 스트림을 활용하면 용량이 큰 자료에 접근할 때 입출력이 많이 오가면서(버퍼 크기 때문에) 속도가 느려지는데, 한번에 큰 버퍼를 제공하면서 성능을 향상시키는 효과를 발휘한다. InputStreamReader 예제 package main; import java.io.FileInputStream; import java.io.InputStreamReader..

문자 단위 스트림 { Reader, Writer }

바이트 단위 스트림은 문자, 영상, 음악 등 다양한 형태의 자료를 읽고 쓰는데 활용한다. 반면 문자 단위 스트림은 String 문자 단위를 읽는데 사용한다. 특히나 한글 같이 1바이트 단위로 쓰지 못하는 것일수록 특히 그렇다. Reader 를 최상위 스트림으로 FileReader 스트림이 있으며, inputStreamReader 와 BufferedReader 는 보조 스트림이다. Reader 스트림은 문자를 2바이트로 끊어서 가져온다. 그것이 차이점이다. 예시를 한번 보자. reader Text 에 "안녕하세요" 라는 문장을 입력했습니다. package main; import java.io.FileReader; import java.io.IOException; public class Ex8 { publi..

바이트 단위 스트림 { InputStream, OutputStream }

입력 스트림의 계층은 위와 같다. 최상위 스트림은 InputStream 이다. FileInputStream 은 파일에서 바이트 단위로 자료를 읽으며 ByteArrayInputStream 은 배열 메모리(자료구조)에서 바이트 단위로 자료를 읽는다. 파일에서 데이터를 읽는 FileInputStream 을 확인해봅시다. package main; import java.io.FileInputStream; import java.io.IOException; public class Ex4 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("src/input.txt"); while (true) { int i ..

자바 입출력과 스트림 { Scanner 클래스, 입력스트림과 출력스트림, 바이트&문자 스트림, 기반&보조 스트림 }

package main; import java.io.IOException; public class Ex1 { public static void main(String[] args) { System.out.println("알파벳 하나를 쓰고 Enter 누르세요."); int i; try { i = System.in.read(); System.out.println(i); System.out.println((char) i); } catch (IOException e) { System.out.println(e); } } } system.out 은 출력장치이고 system.in 은 입력장치이다. 입출력 시 발생할 수 있는 예외처리를 IOException 으로 처리해주고 값을 입력받고 입력받은 값으로 다양한 처리를 ..

예외처리 { 예외클래스, 예외처리, 컴파일러의 예외체크, 예외처리미루기 }

오류는 크게 2가지로 볼 수 있다. 컴파일 오류와 런타임 오류가 이에 해당한다. 컴파일 오류는 컴파일러가 컴파일 하는 과정에서 발견하는 오류이다. 컴파일 오류는 잘못된 문법을 사용했을 때 발생하게 된다. 컴파일 오류가 발생하면 .class 라는 파일이 생성되지 않고 컴파일러가 개발자에게 오류 메시지를 통해 알려주게 된다. package main; public class Ex1 { public static void main(String[] args) { int value; int value; // 변수 이름 중복되어 오류가 발생한다. value = "aa"; // 변수 타입과 맞지 않는 값을 대입하여 오류가 발생함 } } 예시를 보면 쉽게 이해할 수 있다. 위에는 2 가지 이유로 컴파일 오류가 발생하고 있..

스트림 { 개요, 중간연산과 최종연산, 연산 종류, 연습문제 }

스트림은 자료구조 중에서 배열과 컬렉션을 처리할 때 주로 사용하는 클래스입니다. 따라서 배열 & 컬렉션 데이터 소스가 필수적으로 필요합니다. 중간연산은 js 의 체이닝 기술처럼 반복적으로 사용할 수 있다. package stream; import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public class Ex1 { public static void main(String[] args) { int[] intArr = {1, 5, 3, 2, 4}; IntStream stream1 = Arrays.stream(intArr); stream1.limit(3).sorted().forEach(n->Sys..

관계형 데이터베이스의 제약 조건 - 무결성(Integrity)

무결성(Integrity) 무결성 ? 무결성은 현실 세계의 실제값과 현실을 데이터로 저장한 데이터베이스에 저장된 데이터 값이 일치하는 정확성을 의미한다. 쉽게 말하면 잘못 저장된 데이터가 없다는 것을 의미합니다. 무결성 제약 조건 ? 무결성 제약 조건은 데이터의 정확성을 위해 데이터 베이스에 저장되는 데이터에 제약 조건을 걸어주는 것을 의미합니다. 무결성의 종류 개체 무결성 : 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정 참조 무결성 : 외래키 값은 Null 이거나 참조 릴레이션의 기본키 값과 동일해야 함. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다. 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정 사용자 정의 무결성 : 속성 ..