DAY 15 : MVC 모델
2022. 3. 16. 19:51
WEB/JAVA
- MVC 모델 소프트웨어 설계시 사용되는 디자인 패턴을 의미한다. M : Model (데이터와 대응) V : View (보여지는 화면) C : Controller (흐름 제어) - DTO (Data Transfer Object) / VO (Value Object) 양쪽으로 전송되어 오고가는 데이터들을 담은 객체를 의미한다. 여러 데이터들을 포장해서 만든 데이터 포장 객체이다. - DAO (Data Access Object) 데이터에 접근하기 위한 객체이다. CREATE, READ, UPDATE, DELETE (CRUD) 데이터들을 관리하는 여러 메소드들이 정의되어 있다. - MVC1 View, Controller가 함께 공존하는 형태이다. - MVC2 View, Controller가 완벽하게 분리된 형..

DAY 14 : 쓰레드, 동기화, 파일 입출력
2022. 3. 13. 22:36
WEB/JAVA
- 프로세스 실행된 프로그램 운영체제로부터 시스템 자원을 할당받는 작업의 단위를 의미한다. 자바 프로그램은 운영체제 대신 JVM에 의해 자원을 할당받는다. - 쓰레드 (Thread, 단일 쓰레드) 프로세스의 특정한 수행 경로 프로그램의 처리 경로 프로그램의 흐름 직렬적이다. - 멀티쓰레드 하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 단위로 분할해서 차례대로 처리한다. 짧은 단위로 분할해서 차례대로 처리한다. 병렬적이다. 여러 개의 처리 경로를 가질 수 있게 한다. 한 개의 처리 경로를 여러 개로 나누어 동시 작업이 가능해진다. JSP (Java Server Page)가 대표적인 멀티 스레드 응용 프로그램이다. - 쓰레드의 장단점 장점 단점 효율성 증가 처리량 증가 처리비용 감소 복..

DAY 13 : HashSet, HashMap, 빠른 for문
2022. 2. 14. 18:37
WEB/JAVA
- HashSet Set은 집합이다. → 집합의 특징을 가지고 있음을 의미한다. 저장된 값들은 인덱스가 없기 때문에 순서가 고정되어 있지 않다. 값의 유무 검사 (포함여부) 목적이 있다. 집합은 중복되는 원소를 포함할 수 없다. Set은 검색의 목적이 있기 때문에 순서 정보를 관리할 필요가 없다. 따라서 데이터의 크기에 상관없이 검색에 걸리는 시간이 매우 짧다. 반면 ArratList는 인덱스를 관리해야 하기 때문에 상대적으로 시간이 오래 걸린다. 따라서 기능적으로 HashSet과 ArrayList로 구현하는 것에 차이가 없다면 HashSet을 사용하는 것이 좋다. .iterator() 순서가 없던 요소들을 줄을 세우게 한다. (순서를 부여한다.) → index는 아님 순서가 부여되면 요소들을 .next..

DAY 12 : Wrapper 클래스, Generic, 컬렉션 프레임 워크,...
2022. 2. 10. 18:38
WEB/JAVA
- Wrapper Class 기본 자료형인 변수를 객체로 사용 가능하게 도와주는 클래스 따라서 기본형 타입의 클래스 타입으로 보면 된다. 위 사진에서 Shoft가 아니라 Short이다. - Wrapper Class 선언 및 사용 Wrapper 클래스명 객체명 = new Wrapper생성자(값); // 박싱 기본자료형 변수명 = Wrapper객체.intValue(); // 언박싱 Wrapper클래스명 객체명 = 일반자료형 값; // 오토박싱 일반자료형 변수명 = Wrapper객체; // 오토 언박싱 - Wrapper 클래스를 사용하는 이유 기본형 타입을 객체로 다루어야 할 때 기본형 타입이 아닌 객체로 값을 저장해야 할 때 매개변수로 객체를 넘길 때 (특히 Object) 객체 간의 비교가 필요할 때 Wra..

DAY 11 : 익명 클래스, 예외 처리, 오브젝트 클래스
2022. 1. 12. 17:51
WEB/JAVA
- 익명 클래스 (anonymous inner class) 이름이 없는 클래스 (일회용 클래스) 단 하나의 익명 구현 객체를 위한 클래스 익명 클래스 사용하기! public abstract class Animal { String name; String gender; int age; public Animal(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } abstract void makeSomeNoise(); } 먼저 추상 클래스로 Animal이라는 클래스를 만들어 준다. 여기서 메소드인 makeSomeNoise() 또한 추상 메소드로 만든다. public class Ground {..

DAY 10 : 접근 권한 제어자, 추상 클래스, 인터페이스, ....
2022. 1. 6. 03:21
WEB/JAVA
- 접근 권한 제어자 다른 패키지 혹은 다른 클래스에서 해당 필드를 접근 할 수 있는 범위를 설정해주는 키워드 접근 권한 제어자 의미 (default) 다른 패키지에서 접근 불가 public 모든곳에서 접근 가능 private 다른 클래스에서 접근 불가 protected 다른 패키지에서 접근 불가, 단 자식은 가능 1. 다른 패키지에서 어떤 객체로 해당 필드에 접근하고 싶을 때 : public 2. 다른 곳에서 해당 필드에 절대 접근하지 못하게 하고 싶을 때 : private 3. 상속 받은 클래스에서 자신의 필드처럼 쓰게하고 싶을 때 : protected 4. 현재 패키지에서만 이용할 때 : (default) (default)는 다른 패키지일 때 상속 시켜주어도 자신의 필드처럼 사용이 불가능하다. 그렇..

DAY 09 : 상속, 다형성, 업캐스팅, 다운 캐스팅
2022. 1. 6. 02:25
WEB/JAVA
- 상속 (inheritance) 기존에 선언된 클래스의 필드를 다른 클래스에서 사용하고자 할 때 클래스들을 만들다 보니 공통 요소가 보여서 부모로 묶은 후 상속시켜 주어서 사용하고자 할 때 class A { A의 필드 } class B extends A { // 관계성만 정의 B의 필드 } B b = new B(); // b객체는 실제로는 A의 필드 B의 필드 둘 다 가지고 있다. A : 부모 클래스, 상위 클래스, 슈퍼 클래스, 기반 클래스 B : 자식 클래스, 하위 클래스, 서브 클래스, 파생 클래스 SuperCar extends Car을 하면 SuperCar 클래스에는 부모 클래스 인 Car필드와 SuperCar 필드가 존재한다. 따라서 mycar 객체는 Car 클래스의 변수, 메소드와 Super..

DAY 08 : this, 클래스 배열, 정적 필드
2022. 1. 4. 03:57
WEB/JAVA
- this 클래스 선언 시 내부적으로 선언되어 생성된다. 클래스 필드에서 한 번의 메소드 선언으로 여러 객체를 다루어야 한다. 만약 메소드 내에서 그 객체의 필드를 사용하고자 할 때 어떤 객체의 필드인지를 알 수 없다. 따라서 객체에 마침표를 찍거나, 객체를 생성하게 되면 그 접근 중인 객체를 this라는 변수가 받는다. 결과적으로 클래스 선언시 this. 필드명으로 접근하면 여러 객체도 하나의 메소드에서 구분하여 다룰 수 있게 된다. this : 객체 구별용 / 현재 접근 중인 객체 이전에 momcar.brand로 각 각 값을 대입해주던 것과는 다르게 new Car("K7", "White", 7000)으로 해주면 Car클래스에서 찾지를 못한다. 따라서 Car(String brand ,...)으로 생성..