본문 바로가기

IT Study/Java14

Java - MVC(Model View Controller) | MVC(Model View Controller) ​ Model DB 데이터들을 관리하는 파트 ​ 1) VO(Value Object) VO는 Read-Only 속성인 값 오브젝트이다. 자바에서 단순히 값 타입을 표현하기 위해 불변 클래스(Read-Only)를 만들어 사용한다. DB에 저장된 데이터 -> VO의 역할은 java 객체를 표현하는 것이다. ​ 2) DAO(Data Access Object) DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다. DBMS(Oracle, MySQL)에 저장된 데이터를 java단으로 불러오는 역할(CRUD(핵심로직, 비즈니스 메서드)) ​ VO와 DTO의 차이 DTO는 가변의 성격을 .. 2022. 12. 29.
Java - 파일 입출력 |File 클래스 파일 크기, 속성, 이름 등의 정보를 얻어내는 기능과 파일 생성 및 삭제 기능을 제공함 ​ 문법 File file = new File("파일의 경로"); ​ 리턴 타입 메소드 설명 boolean createNewFile() 새로운 파일을 생성 boolean mkdir() 새로운 디렉토리를 생성 boolean mkdirs() 경로상에 없는 모든 디렉토리를 생성 boolean delete() 파일 또는 디렉토리 삭제 boolean canExecute() 실행할 수 있는 파일인지 여부 boolean canRead() 읽을 수 있는 파일인지 여부 boolean canWrite() 수정 및 저장할 수 있는 파일인지 여부 String getName() 파일의 이름을 리턴 String getPare.. 2022. 12. 29.
Java - 예외처리/스레드 | 예외처리(Exception) 문법상으로는 문제가 없었는데, 실제로 수행해보니 발생하는 문제 예외가 발생했을 때 이를 처리하여 프로그램이 비정상적으로 종료되는 것을 막는다. 실행중에 예외가 발생하게 되면 프로그램이 즉시 종료됨 ​ 예외처리의 목적 ->프로그램이 즉시 종료되는 현상을 방어 ​ 구조 try { 예외가 발생할 수 있는 명령; } catch(Exception e){ 예외 발생 시 실행할 명령; } finally{ 무조건 실행하는 명령; } ​ Exception 예외 최상위 클래스 ArithmeticException 산수 연산 오류 ArrayIndexOutOfBoundsException 인덱스 값 범위 오류 InputMismatchException 입력된 자료형 오류 ​ 1. Practice ​.. 2022. 12. 28.
Java- CollectionFramework | CollectionFramework​ 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. List, Map, Set, Stack, Queue 등이 있다. ​ 특징 제작자의 편의성이 증가 유지보수 용이 ​ 1) 배열 리스트 ArrayList - 탐색을 자주하는 프로그램에 주로 사용됨 index를 사용하는 구조 ​ 2) 연결 리스트 LinkedList - 주소를 직접 연결하는 구조 데이터 변경(추가, 삭제 등)이 자주 발생하는 프로그램과 주로 사용됨 ​ 사용자의 입장에선 둘 다 같아보인다 > 그러나 각자 유리하거나 불리한 순간이 있음 ​ ArrayLis.. 2022. 12. 28.
Java - 추상화/동적바인딩 | 추상클래스 클래스들을 정의하기 위해 사용되는 클래스로 객체생성을 할 수 없다. ​ | 추상메서드 메서드를 추상화하여 선언만 하고 기능은 자식 클래스에서 오버라이딩하여 구현한다. 자식 클래스에서는 무조건 추상메서드를 정의 해야한다. ​ 사용방법 abstract class 클래스명{} ​ 1. Practice | 동적바인딩 함수를 호출 시 부모클래스를 인지하나, 자식 클래스의 영역을 먼저 확인하여 호출한다. 상속받은 자식클래스가 오버라이딩한 메서드를 호출할 때 동적 바인딩이 일어난다. ​ 1. Practice ​ 2. Practice ​ 2022. 12. 28.
Java - 접근제어자/상속(+super)/final변수/Object클래스/toString/오버라이딩 |접근제어자 1) public : 모든 클래스에서 접근 가능 2) protected : 상속받은 자식 클래스만 접근 가능. 그 외 모든 곳에서 접근 불가 단, 예외적으로 동일한 패키지에서는 public 처럼 접근 허용. 하지만, 사용의 모호성으로 이와같이 사용하는 것은 비추천 3) private : 모든 클래스에서 접근 불가 4) default : 같은 패키지에서는 public 다른 패키지에서는 private. 즉, 상속과 관련이 없으며 패키지와 관련이 있다. ​ setter&getter private되어 직접 접근할 수 없는 멤버변수의 값을 출력하거나 getter 변경, setter 하기위해 사용 ​ 1. Practice package class02; //접근제어자, 접근자 class Student{ .. 2022. 12. 28.
Java - Quick Sort(퀵 정렬)/ 배열 실습 | Quick Sort(퀵 정렬) 퀵 정렬은 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. ​ 장점 1) 속도가 빠르다. 2) 추가 메모리 공간을 필요로 하지 않는다. ​ 단점 1) 정렬된 리스트에 대해서는 퀵 정렬의 불균형 분할에 의해 오히려 수행시간이 더 많이 걸린다. 2) 퀵 정렬의 불균형 분할을 방지하기 위하여 피벗을 선택할 때 더욱 리스트를 균등하게 분할할 수 있는 데이터를 선택한다. EX) 리스트 내의 몇 개의 데이터 중에서 크기순으로 중간 값(medium)을 피벗으로 선택한다. ​ ​ 정렬 과정 1) 리스트 안에 있는 한 요소를 선택한다. 이렇게 고른 원소를 피벗(pivot) 이라고 한다. 2) 피벗을 기준으로 피벗보다 작은 요소들은 모두 피벗의 왼쪽으.. 2022. 12. 28.
Java - 인스턴스/클래스 변수 | 생성자 오버로딩, this 연습 각 주석 확인하기 1. Practice package class01; class Car{ String name; //멤버변수(=속성, 필드, attribute...) int speed; int maxSpeed; void speedUp() { //멤버함수(=메서드) //1. 기본형 2. 기능구현 3. input,output 올바른지 체크 this.speed+=10; if(this.speed>this.maxSpeed) { this.speed=this.maxSpeed; System.out.println("과속!"); } } void speedUp(int speed) { //오버로딩 //기본형 -> 기능구현 -> input, output 올바른지 체크 this.speed+=s.. 2022. 12. 28.
Java - 함수 | 함수 코드의 재사용을 위해 사용되는 것 오류의 파급효과가 줄어들며, 유지보수에 용이하다. ​ 선언/정의 static void 함수명(){} ​ 함수의 3요소 1. Input - 매개변수(=파라미터, 인자, 인수) 2. Output - return 값(=반환 값, 출력 값) 3. 기능 ​ Exercise ​ 1. Practice - 매개변수 대입 Input X, Output X 인 경우와 Input O, Output X인 경우 ​ 2. Practice ​ 3. Practice - 리턴 값을 가진 함수 Input X, Output O 인 경우 **return이 되는 순간 함수를 즉시 종료한다 ​ 4. Practice - 리턴 값을 가진 함수2 Input O, Output O 인 경우 | 오버로딩 함수의 .. 2022. 12. 28.