2021/JOB DA STUDY(34)
-
Final
final은 해당 Entity가 오로지 한번 할당 될 수 있음을 의미 final 변수 해당 변수가 생성자나 대입연산자를 통해 "한번만 초기화 가능"함을 의미 (상수를 만들 때 응용) final 메소드 해당 메소드를 Override(상속)하거나 숨길 수 없음을 의미 final 클래스 해당 클래스는 더 이상 상속할 수 없음을 의미 (상속 계층 구조에서 마지막 클래스) final 멤버 변수가 반드시 상수는 아니다. final의 정의는 "상수"가 아닌 "한번만 초기화"이기 때문이다. private 메소드와 final 클래스의 모든 메소드는 명시하지 않아도 final처럼 동작 Override가 불가능하기 때문이다. -> Pricate: 자식 클래스에서 안보이며 오버라이드도 안된다. -> final: 자식 클래스에..
2021.01.05 -
Static
Static 어떤 값이 메모리에 한번 할당되어 프로그램이 끝날 때까지 그 메모리에 값이 유지됨을 의미하므로, 특정 값을 공유해야하는 경우에는 static사용시 메모리의 이점을 얻을 수 있다. Static 변수 인스턴스 변수는 클래스가 생성될때 메모리 공간이 할당되고, 생성자에 있는 값으로 초기화된다. 하지만 static 변수(클래스 변수)는 선언되는 순간에 하나의 메모리 공간이 할당되기 때문에 어디에 선언이 되더라도 그 클래스 내에서는 공유 된다. 인스턴스 변수를 사용하면 instance1, instance2 객체 생성시, instance1의 variable과 instance2의 variable이 서로 다른 메모리를 각각 할당받게 된다. 그러나 static 변수를 사용하게 되면, 두 객체를 생성하여도 v..
2021.01.05 -
Design Pattern
1. 디자인 패턴 디자인 패턴은 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 다시 발생했을때 재사용이 가능하도록하는 훌륭한 해결책이 된다. Pattern 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때 서로간에 공통되는 설계문제가 존재하며, 이를 처리하는 해결책 사이에도 공통점이 존재하게 되는데, 이러한 유사점을 패턴이라 한다. -> 패턴은 공통의 언어를 만들어 주며, 팀원 사이의 의사소통을 원활하게 해두는 아주 중요한 역할을 한다. 2. 디자인 패턴의 구조 Context(콘텍스트) 패턴이 적용될 수 있는 상황을 나타낸다. 경우에 따라 패턴이 유용하지 못한 상황을 나타내기도 한다. Problem(문제) 패턴을 적용해 해결할 필요가 있는 ..
2021.01.05 -
디자인패턴_MVC Pattern
MVC 패턴을 사용하는 이유? 사용자가 보는 페이지, 데이터의 처리 그리고 이 두가지를 중간에서 제어하는 컨트롤 이 3가지로 구성된 하나의 애플리케이션을 만들기 위해서는 서로 분리되어 각자의 역할에 집중할 수 있게끔 개발을 하고, 애플리케이션을 만들어야 유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩의 문제점 또한 사라지게 된다. (비즈니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로의 영향을 받지않고 개발하기 쉽다.) MVC란 Model, View, Controller 의 약자로 하나의 프로젝트를 구성할 때, 그 구성요소를 세가지의 역할로 구분한 패턴 사용자가 Controller를 조작하면 Model을 통해 데이터를 가져오고, 그 정보를 바탕으로 시각적 표현을 담당하는 View..
2020.12.31 -
NoClassDefFoundError 와 ClassNotFoundException
ClassNotFoundException 클래스 로더가 클래스 패스에서 해당 클래스를 찾지 못하면 발생 -> 그 패스에 해당 클래스가 존재하는지 확인 NoClassDefFoundError 컴파일 타임때 요구되는 클래스가 존재하나, 런타임때 클래스들이 바뀌거나, 제거되거나, 클래스의 Static 초기화가 예외를 던지면 발생 (즉, 클래스 패스에 클래스가 존재하더라도 이 클래스에 요구되는 클래스들 중 하나에 문제가 됨 -> 이 클래스와 의존관계를 맺는 모든 것을 살펴보아야 한다.)
2020.12.29 -
InputStream and OutputStream
InputStream - (InputStreamReader) InputStream은 'byte 기반의 입력 스트림 최상위 클래스'로 추상 클래스이다. 모든 byte기반의 입력 스트림은 이 클래스를 상속받아 만들어진다. InputStreamReader Object: byte 단위로 읽을 때, JAVA의 Char 와 String 타입의 경우 Characters로 취급이 된다. 즉, Char/String을 저장하려면 char 단위로 읽고 쓰는 Reader 와 Writer를 사용해야한다. 그래서 byte단위로 데이터를 읽어 char 형태로 변화시켜 연결하는 객체를 InputStream을 상속하여 만들었다. 1. FileInputStream 파일의 내용을 읽어오는데 1byte씩 문자를 읽어올 수 있도록 FileI..
2020.12.28