Goal Error와 Exception의 차이점에 대해 설명할 수 있다. Exception Handling을 할 수 있다. Abstract Error와 Exception은 같다고 생각할 수도 있지만 사실 큰 차이가 있습니다. Error 는 컴파일 시 문법적인 오류와 런타임 시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기 시켜 프로세스를 종료 시킬 수 있습니다. Exception 은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 것우로 예를 들면, 연산 도중 넘침에 의해 발생한 끼어들기 등이 이에 해당합니다. 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우를 프로그램 오류라 하고, 프로그램 오류에는 에러(er..
Goal Upcasting과 Downcasting에 대해 설명할 수 있다. Casting (강제 형변환, 명시적 형변환) 캐스팅(casting) 이란 타입을 변환하는 것을 말하며 형변환 이라고도 합니다. 자바의 상속 관계에 있는 부모와 자식 클래스 간에는 서로 간의 형변환이 가능합니다. 이번 글에서는 자식 클래스가 부모 클래스의 타입으로 캐스팅되는 업캐스팅과 반대로 부모 클래스가 자식 클래스의 타입으로 캐스팅되는 다운캐스팅에 대해서 정리합니다. 시작하기에 앞서 부모 클래스인 상속 관계의 상위 클래스를 수퍼 클래스 , 그리고 자식 클래스인 하위 클래스를 서브 클래스 라고 정의합니다. 간단하게 말하자면 자료형이 정해진 변수에 값을 넣을때는, 변수가 원하는 정보를 하나도 빠짐 없이 다 넣어줘야 성립합니다. U..
Goal Promotion에 대해 설명할 수 있다. Casting에 대해 설명할 수 있다. 형변환할 때 발생할 수 있는 에러에 대해 설명할 수 있다. 데이터 타입 형변환 (타입변환) Java에서 연산은 "2(byte 데이터 타입) + 3(byte 데이터 타입)" 과 같이 동일한 데이터 타입에서 가능합니다. 하지만, 프로그램을 만들다 보면 "2(byte 데이터 타입) + 3.5(double 데이터 타입)"과 같이 서로 다른 데이터 타입끼리의 연산이 필요할 때가 있습니다. 이럴경우 변수의 데이터 타입을 바꿔주는 작업이 필요한데, 이것이 데이터 타입의 형변환(타입변환)입니다. 이러한 형변환(타입변환)에는 크게 자동 형변환(Promotion) 과 강제 형변환(Casting) 이 있습니다. 또 다른말로 자동 형변..
Call by value 값에 의한 호출 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성됨 (종료 시 해당 공간 사라짐) call by value 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달함 이때 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value 속성을 가짐 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경안됨 void func(int n) { n = 20; } void main() { int n = 10; func(n); printf("%d", n); } printf로 출력되는 값은 그대로 10이 출력된다. Call by reference 참조에 의한 호출 call by reference 호출 방식은 ..
Goal Primitive type에 대해 설명할 수 있다. Reference type에 대해 설명할 수 있다. Abstract 자바에는 기본형(Primitive type)과 참조형(Reference type)이 있습니다. 일반적인 분류는 다음처럼 가집니다. Java Data Type ㄴ Primitive Type ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type ㄴ Integer Type(short, int, long) ㄴ Floating Point Type(float, double) ㄴ Character Type(char) ㄴ Reference Type ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ..
Goal JAVA의 3가지 문자열 클래스에 대해 간략하게 설명할 수 있다. 각 문자열 클래스의 차이점에 대해 설명할 수 있다. 상황에 맞게 문자열 클래스를 사용할 수 있다. Introduction JAVA에는 문자열 클래스로 String, StringBuffer, StringBuilder 3가지가 있습니다. 사소해보이지만 상황에라 어떤 클래스를 쓰냐에 따라, 성능차이가 발생하는데요. 어떤 차이점이 있는지 알아보도록 하겠습니다. String vs StringBuffer vs StringBuilder Index String StringBuffer StringBuilder Storage Area Heap or Constant String Pool Heap Heap Modifable No(immutable) Y..
POJO(Plain Old Java Object)란 무엇인가? 스프링 개발을 하면서 POJO 프로그래밍이라는 용어를 자주 접한다. 이제까지 느낌적으로 특정 규약에 종속되지 않는 자바 객체 정도로 이해해왔다. 이 포스팅에서 POJO의 조건과 POJO 프로그래밍의 장점에 대해 예시를 통해 알아볼 것이다. POJO 개념을 사용하지 않은 예시 ( Tight Coupling ) JMS로부터 메시지를 받는 경우 JMS를 사용하기 위해 MessageListener 인터페이스를 상속받아야 한다. 하지만, 다음과 같이 구현하면 JMS라는 특정 환경에 종속되게 되고 다른 메시징 솔루션을 적용하기 어려워 진다. 단순한 예제와 달리 Listener가 많은 경우, AMQP나 다른 솔루션으로 교체할 경우 더더욱 어려울 것이다. ..
Servlet과 JSP의 개념 기능의 차이는 없고 역할의 차이만 있다. (하는 일은 동일) Servlet이란 웹 기반의 요청에 대한 동적인 처리가 가능한 Server Side에서 돌아가는 Java Program Java 코드 안에 HTML 코드 (하나의 클래스) 웹 개발을 위해 만든 표준 JSP란 Java 언어를 기반으로 하는 Server Side 스크립트 언어 HTML 코드 안에 Java 코드 Servlet를 보완하고 기술을 확장한 스크립트 방식 표준 Servlet의 모든 기능 + 추가적인 기능 Servlet과 JSP의 차이 Servlet Java 코드 안에 HTML 코드 (하나의 클래스) data processing(Controller)에 좋다. 즉 DB와의 통신, Business Logic 호출, ..
IoC란? IoC 컨테이너 개념을 이해하기 위하여 이와 같은 컨테이너가 왜 등장하게 되었는지를 먼저 이해하는 것이 중요합니다. 애플리케이션 코드를 작성할 때, 특정 기능이 필요하면 라이브러리 사용하곤 합니다. 이때는 프로그램의 흐름을 제어하는 주체가 애플리케이션 코드입니다. 하지만 프레임워크(Framework) 기반의 개발에서는 프레임워크 자신이 흐름을 제어하는 주체가 되어, 필요 할 때마다 애플리케이션 코드를 호출하여 사용합니다. 프레임워크에서 이 제어권을 가지는 것이 바로 컨테이너(Container)입니다. 객체에 대한 제어권이 개발자로부터 컨테이너에게 넘어가면서 객체의 생성부터 생명주기 관리까지의 모든 것을 컨테이너가 맡아서 하게됩니다. 이를 일반적인 제어권의 흐름이 바뀌었다고 하여 IoC(Inve..
Goal JSP에 대해 설명할 수 있다. JSP 동작 과정에 대해 설명할 수 있다. JSP란? JAVA 코드가 들어가있는 HTML 코드 입니다. Servlet은 자바 소스코드 속에 HTML코드가 들어가는 형태인데, JSP는 이와 반대로 HTML 소스코드 속에 자바 소스코드가 들어가는 구조를 갖는 웹어플리케이션 프로그래밍 기술입니다. HTML 속에서 자바코드는 또는 형태로 들어갑니다. 자바 소스코드로 작성된 이 부분은 웹 브라우저로 보내는 것이아니라 웹 서버에서 실행되는 부분입니다. 웹 프로그래머가 소스코드를 수정 할 경우에도 디자인 부분을 제외하고 자바 소스코드만 수정하면 되기에 효율을 높여줍니다. 또한 컴파일과 같은 과정을 할 필요없이 JSP 페이지를 작성하여 웹 서버의 디렉토리에 추가만 하면 사용이 ..
- Total
- Today
- Yesterday