전체 글(219)
-
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 -
3주차 과제: 연산자
목표 자바가 제공하는 다양한 연산자의 학습 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof 할당 연산자 (assignment operator) 화살표 연산자 3항 연산자 연산자 우선순위 (JAVA 13) switch 연산자 1. 산술 연산자 [*(곱), /(몫), %(나머지)] > [+(덧셈), -(빼기)] 2. 비트 연산자 연산자 기능 X > Y 정수 x의 각 비트를 y만큼 오른쪽으로 이동 빈자리는 정수의 최상위 부호비트와 같은 값으로 채워진다. X >>> Y 정수 x의 각 비트는 y만큼 오른쪽으로 이동 빈자리는 무조건 0으로 채원진다. 3. 관계 연산자 [, =] > [==, !=] 4. 논리 연산자 [&&] > [ || ] AND 연산자 || 피연산자 양 쪽 모두 t..
2020.12.27