반응형

분류 전체보기 1141

다형성이란?

1. 다형성이란? 1) 사전적 의미 : 다양한 형태의 성질을 갖는것 2) 객체를 사용할 때 쓰는 참조변수를 형태를 바꿔서 여러가지 타입의 객체를 참조할 수 있습니다. 3) 장점은 프로그램 코드를 유연하게 구성할 수 있습니다. 이후에 Spring 프레임워크나 다양한 요소에 쓰이는 다형성과 형변환은 java에서 정말 중요한 요소중에 하나인데요. 이렇게 중요한 기능을 예제를 통해서 한번 알아보도록 하겠습니다. class Fruit() { } class Apple() extends Fruit{ } 다음과 같이 Fruit클래스와 이를 상속받는 Apple 클래스가 있습니다. 여태까지 우리는 이를 가지고 객체를 생성할 때 다음과 같이 정의하였습니다. Apple apple = new Apple(); Apple 타입의 ..

DAY1.05 어노테이션 기반 설정

5.1 어노테이션 설정 기초 대부분의 프레임워크가 그렇듯 스프링 프레임워크 역시 XML 설정이 매우 중요하다. 5.1.1 Context 네임스페이스 추가 어노테이션 설정을 추가하려면 스프링 설정 파일의 루트 엘리먼트인 에 Context 관련 네임스페이스와 스키마 문서의 위치를 등록해야 한다. [Namespaces] 탭을 선택하고 'context' 항목 체크 applicationContext.xml 에 springframework.org/schema/context 등 주소값이 추가된다. 5.12 컴포넌트 스캔(component-scan) 설정 스프링 설정 파일에 애플리케이션에서 사용할 객체들을 등록하지 않고 자동으로 생성하려면 이라는 엘리먼트를 정의해야 한다. 해당 설정을 제외한 나머지 설정은 모두 삭제하..

Framework 2020.12.14

스프링 컨테이너 및 설정 파일

Servlet 컨테이너는 web.xml 파일에, EJB 컨테이너는 ejb-jar.xml 파일에 해당 컨테이너가 생성하고 관리할 클래스들을 등록한다. 스프링 컨테이너가 사용할 XML 파일은 앞에서 설치한 STS 를 이용하면 간단하게 만들 수 있다. 3.1 스프링 IoC 시작하기 3.1.1 스프링 설정 파일 생성 Spring Bean Configuration File을 선택하고 를 클릭한다. beans 파일에 bean 클래스 추가 스프링 컨테이너 구동 및 테스트 스프링 설정 파일을 작성했으면 이제 TV 객체를 테스트하는 클라이언트를 만들어보자. package spring.book.practice; import org.springframework.context.support.AbstractApplication..

Framework 2020.12.14

결합도(Coupling)가 높은 프로그램

결합도란 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타내는 표현이며, 결합도가 높은 프로그램은 유지보수가 어렵다. 이 결합도와 유지보수 관계를 이해하기 위한 간단한 실습을 진행해보자. package spring.book.practice; public class SamsungTV { public void powerOn() { System.out.println("SamsungTV --- 전원을 킨다."); } public void powerOff() { System.out.println("SamsungTV --- 전원을 끈다."); } public void volumeUp() { System.out.println("SamsungTV --- 음량을 올린다."); } public void v..

Framework 2020.12.13

프레임워크 개념

프레임워크의 등장배경 프레임워크의 사전적 의미는 뼈대 혹은 틀로서 이 의미를 소프트웨어 관점에서 접근하면 아키텍쳐에 해당하는 골격 코드다. 여기에서 핵심 단어는 '아키텍쳐'와 '골격 코드'다. 애플리케이션을 개발할 때, 가장 중요한 것이 전체 애플리케이션의 구조를 결정하는 아키텍쳐인데 이 아키텍쳐에 해당하는 골격 코드를 프레임워크가 제공한다. 간단한 사례를 통해 프레임워크의 중요성을 확인해보자. 프레임워크의 장점 잘 만들어진 프레임워크를 사용하면 애플리케이션에 대한 분석, 설계, 구현, 모두에서 재사용성이 증가하는데, 이를 통해 다음과 같은 장점을 얻을 수 있다. 1) 빠른 구현 시간 프레임워크를 사용하면 아키텍쳐에 해당하는 골격 코드를 프레임워크에서 제공한다. 따라서 개발자는 비즈니스 로직만 구현하면 ..

Framework 2020.12.12

추상클래스, 추상메소드

abstract 반환타입 메소드이름(); 추상 메소드(abstract method) 추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문입니다. 이러한 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않습니다. 바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩..

IoC(Inversion of Control) 컨테이너

스프링 프레임워크를 이해하는 데 가장 중요한 개념이 바로 컨테이너이다. 컨테이너의 개념은 스프링에서 처음 사용된 것은 아니며, 기존의 서블릿이나 EJB 기술에서는 이미 사용해왔다. 그리고 대부분 컨테이너는 비슷한 구조와 동작 방식을 가지고 있으므로 서블릿 컨테이너를 통해 스프링 컨테이너의 동작 방식을 유추해볼 수 있다. 이클립스를 이용하여 서블릿 클래스를 개발한다면 작성된 Servlet 클래스는 web.xml 파일에 자동으로 등록된다. 브라우저에서 /hello.do 와 같은 URL 요청을 전송하면, hello 와 같은 이름으로 등록된 hello.HelloServlet 과 같은 클래스를 찾아 객체를 생성하고 실행한다는 설정이 web.xml에 저장되어 있다. 서블릿은 자바로 만들어진 클래스이다. 따라서 반드..

Framework 2020.12.12

스프링 프레임워크(Spring Framework)의 특징

스프링의 특징을 한 줄로 서술하면, "IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크"로 표현할 수 있다. 1. 경량(Lightweight) 크기 측면에서 가볍다. 스프링은 여러 개의 모듈로 구성되어 있고, 각 모듈은 하나 이상의 JAR 파일로 구성되어 있다. 그리고 이 몇 개의 JAR 파일만 있으면 개발과 실행이 모두 가능하다. 따라서 스프링을 이용해서 만든 애플리케이션의 배포 역시 매우 빠르고 쉽다. 2. 제어의 역행(Inversion of Control) 우리가 비즈니스 컴포넌트를 개발할 때, 낮은 결합도와 높은 응집도에 신경을 쓴다. 스프링은 제어의 역행(IoC)을 통해 애플리케이션을 구성하는 객체 간의 느슨한 결합, 즉 낮은 결합도를 유지한다. 객체 사이의 의존관계를 컨테이너가 처리한다. ..

Framework 2020.12.12

[JSP] Listener란?

프로그래밍 언어에서 Listener라고 하는 의미는 2가지로 구분할수가 있습니다. 네트워크 프로그램(소켓)에서 소켓 서버의 역할은 연결을 받아주어야 하는 것인데요. 이 연결을 받아주기 위해서 필요한 것이 바로 listen 함수이며, 말 그대로 listener라고 불리우기도 합니다. 연결시 필요한 IP/PORT로 연결을 할때 받아주는 구실을 하는 것이죠. 다른 의미의 listener라고 하는 것은... 특정 이벤트를 받기 위한 기능을 제공하는 것을 말합니다. 가령 예를 들어 java로 GUI 프로그램을 생성하는 경우 버튼이 존재할 것이며, 이 버튼에는 클릭이라는 이벤트가 존재합니다. 이 버튼이 클릭되었을 때 수행하여야 하는 처리 로직도 있겠죠. 그래서 listener를 버튼의 클릭이벤트에 등록을 해서 처리..

Java 2020.12.12
반응형