[Java] 싱글톤 패턴(Singleton)
·
Java
싱글톤 패턴 디자인 패턴의 종류 중 하나 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어서 사용하는 디자인 패턴 장점 고정된 메모리 영역을 얻으면서 한번은 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤으로 만들어진 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. 인스턴스가 절대적으로 한 개만 존재하는 것을 보증할 수 있다. 두 번째 이용시 부터는 객체 로딩 시간이 줄어 성능이 좋아진다. 단점 싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우에 다른 클래스의 인스턴스들 간에 결합도가 높아져 "개방-폐쇄 원칙" 위배 수정이 어려워지고 유지보수의 비용 증가 멀티쓰레드 환경에서 동기화 처리..
[Java] 추상 클래스 vs 인터페이스
·
Java
추상클래스(abstract) 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유할 수 있다 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것 abstract 지시자로 정의되며 추상메소드가 하나 이상 포함 abstract로 선언한 메소드는 자식 클래스에서 오버라이딩하여 반드시 구현해야 한다. Example 인터페이스(interface) interface 지시자로 정의하며 모든 메소드가 추상메소드로 정의 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없으며, 모든 멤버 변수는 public static final이다. 인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와 달리 다중상속을 받는 것이 가능하다. 추상클래스 vs 인터페이스 공통점 : 추상 메서드를 강제로 구현, 인스..
[Java] 객체 지향 프로그래밍(OOP)
·
Java
꼬리의 꼬리를 무는 질문 1순위, 자바의 가장 큰 특징인 객체 지향 프로그래밍을 정리해보자! 1. 객체 지향 프로그래밍(OOP)란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 1 - 1. 객체?? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별가능한 것을 말합니다. 이러한 객체는 상태(state)와 행동(behavior) 혹은 속성과 동작으로 구성되어 있습니다. 객체지향 프로그래밍을 레고에 빗대 표현 할 수 있는데, 객체가 레고의 조각이 될 것이고 레고의 조각을 조립해서 무언가를 만드는 방식이 객체지향 프로그래밍이라고 할 수 있습니다. 1 - 2. 클래스?? ..
[Java / JSP] JSP 액션 태그(include vs forward)
·
Java
jsp 액션태그(include vs forward) include 다른 페이지의 실행 결과를 현재 페이지에 포함시킬 때 사용 page 속성 : 현재 페이지에 결과가 포함될 페이지명 flush 속성 : 포함될 페이지로 제어가 이동될 때, 현재 포함하는 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리하는 방법 결정 forward 현재 JSP 페이지에서 다른 페이지로 이동하는 태그 JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고 forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동
[Java / JSP] JSP 내장객체
·
Java
jsp 내장객체 기본적인 요청과 응답, 화면 출력, 세션, 페이지와 어플리케이션 등 모든 웹 프로그래밍에 있어 필수적인 기능 JSP 내에서 선언하지 않고 사용할 수 있는 객체 jsp 내장객체 특징 내장 객체는 jsp 페이지가 실행될 때 컨테이너가 자동으로 생성해준다. 별도로 선언하거나 객체로 생성하지 않아도 즉시 사용할 수 있는데 그 이유는 jsp의 실행 과정에서 찾을 수 있다. jsp는 실행될 때 자바 파일인 서블릿으로 변환되어 컴파일된다. 이 변환 과정에서 jspService()메서드가 생성이 되고 이 메서드안에 관련 코드가 삽입이된다. 내장 객체의 참조 변수를 컨테이너가 생성하는 부분이다. 컨테이너가 미리 선언해놓은 참조 변수를 이용해 사용한다. 별도의 객체 생성 없이 각 내장 객체의 메서드를 사용..
[CS / Web] 디자인 패턴 Model1 vs Model2(MVC) vs sprinMVC
·
Computer Science
디자인 패턴 Model1 vs Model2(MVC) vs sprinMVC Model1 JSP파일에서 Controller와 View 기능을 모두 처리한다. JSP파일에 자바 코드와 마크업 관련 코드들이 섞여있어 디버깅과 유지보수가 어렵다. 대규모 시스템 개발에 사용하기는 부적합한 아키텍처이다. JSP와 javaBeans만 사용하여 웹을 개발한다. Model2(MVC) Model1의 단점을 보완하고자 나온 아키텍처이다. 일반적으로 우리가 알고 있는 **MVC(Model View Controller)**가 바로 이 아키텍처이다. Model, View, Controller 각각의 역할이 분리되어 업무를 명확하게 나누어 작업 할 수있다. Model = 애플리케이션의 정보, 데이터 그리고 데이터의 가공을 책임지는 ..
마볼링
게임을 좋아하는 개발자의 블로그