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. 이전 1 2 다음