생각의 흐름대로 정리

프레임워크란, 개발을 편하게 할 수 있도록 미리 뼈대를 이루는 클래스와 인터페이스를 제작하여 모아둔 것

 

프레임워크의 특징

- 개발자들이 따라야 할 가이드라인을 가진다

- 따라서 개발할 수 있는 범위가 정해져 있다

- 개발자들을 위한 다양한 도구들이 지원된다.

 

프레임워크의 장단점

- 장점 : 개발 시간을 줄일 수 있고 품질이 향상되며 유지보수가 편리하다

- 단점 : 습득하고 이해하는 데 오랜 시간이 걸리며 자유롭고 유연하게 개발하는 데 한계가 있다.

 

라이브러리와 프레임워크의 차이점

라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합이고, 프레임워크는 프로그래밍을 진행할 때 필수적인 코드와 알고리즘 같은 뼈대나 구조를 지원해주는 것이다.

 

스프링 프레임워크는 자바를 기반으로 다양한 애플리케이션을 개발하기 위한 경량급 프레임워크입니다.

몇 가지 특징으로 프로그래머가 편리하게 개발을 할 수 있도록 하고, DI, AOP 등의 기본적인 디자인 패턴을 강제적으로 사용하게 함으로서 코드 구조 퀄리티의 최소한을 보장하는 장점이 있다.

 

스프링 부트는 스프링 프레임워크가 기능이 많아 환경설정이 복잡한 단점을 보완하기 위해 개발되었다.

Embedded Tomcat을 사용하기 때문에 Tomcat을 설치하거나 매번 버전 관리해 주어야 하는 수고로움이 덜었다.

starter를 통한 dependency의 자동화가 가능하다. 스프링에서는 각각의 dependency들의 호환되는 버전을 일일이 맞춰주어야 하는 어려움이 있었지만 스프링부트에서는 starter가 대부분의 dependency를 관리해 주기 때문에 이러한 걱정을 덜게 되었다.

XML 설정을 하지 않아도 된다.

jar 파일을 이용해 자바 옵션만으로 손쉽게 배포가 가능하다. 스프링의 경우 war 파일을 web application server에 담아 배포

 

스프링의 특징

  • 경량 컨테이너로서 자바 객체를 직접 관리
    - 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며, 스프링으로부터 필요한 객체를 얻어올 수 있다.
  • POJO(Plain Old Java Object) 방식의 프레임워크
    - 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용 될 수 있는 방식으로 설계된 오브젝트를 말한다.
    - POJO에 애플리케이션의 핵심 로직과 기능을 담아 설계하고 개발하는 방법을 POJO 프로그래밍이라고 한다.
  • 의존성 주입(DI) 지원
    - 객체 간의 의존성이 존재할 경우 개발자가 직접 객체를 생성하거나 제어하는 것이 아니라, IOC에 의하여 특정 객체에 필요한 다른 객체를 프레임워크가 자동으로 연결시켜주는 것을 말한다. 개발자는 선언만 할 뿐 할당은 프레임워크에 의해서 자동으로 이루어진다.
    - DI에는 세 가지 방법이 있는데(Field Injection, Setter Injection, Constructor Injection), 생성자 주입이 주로 권장된다.
    - IOC(제어의 역행)란 컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어, 객체나 메서드의 호출 작업이 개발자가 아닌 외부에서 결정됨을 의미한다.
  • 관점 지향 프로그래밍(AOP) 지원
    - 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리 할 수 있다.
    - OOP에서 공통적인 기능을 Class로 분리했음에도 여전히 중복코드가 발생하는 단점을 해결하고자 나온 방식이며, 어떤 로직을 핵심적인 관점과 부가적인 관점으로 나눠보고 각각 모듈화한다.
    - 핵심적인 관점은 개발자가 적용하고자 하는 핵심 비즈니스 로직이고, 부가적인 관점은 핵심 로직을 수행하기 위해 필요한 DB연결, 로깅, 파일 입출력 등이 있다.
  • 영속성과 관련된 다양한 서비스를 지원
    - iBatis나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결 할 수 있는 인터페이스를 제공
  • 확장성이 높다
    - 다른 프레임워크들과의 통합을 지원하기 때문에 이미 수많은 라이브러리가 스프링에서 지원되고 있고 라이브러리를 별도로 분리하기에도 용이하다.

 

스프링 컨테이너는 자바 객체의 생명주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부른다.

객체의 생성과 소멸 등, 제어의 흐름을 관리하고, 객체들 간의 의존 관계를 런타임 과정에서 알아서 만들어준다.

 

@Autowired

필요한 의존 객체의 타입에 해당하는 빈을 찾아서 주입

의존성 주입 대상을 찾지 못하면 애플리케이션 구동에 실패한다.

 

스프링의 실행 순서

  1. web.xml에 등록된 DispatcherSevlet을 통해 요청에 대해 진입
  2. DispatcherServlet은 클라이언트로부터 들어온 URL을 HandlerMapping이라는 곳으로 전송 후, URL을 분석하여 알맞은 Controller 이름을 다시 DispatcherServlet으로 보냄
  3. 전달받은 Controller를 실행
  4. 실행된 Controller는 스프링에서 제공하는 ModelAndView 객체에 View Page에 전달할 객체와 View Page의 이름을 담고 DispatcherServlet으로 보냄
  5. ViewResolver를 통해 보여질 View Page를 탐색한 후, View Page를 보여줌 

 

 


 

 

한 줄 정리

프레임워크란, 개발을 편리하게 할 수 있도록 미리 뼈대를 이루는 클래스와 인터페이스를 제작하여 모아둔 것 입니다.

 

가이드라인이 있고 개발자를 위한 다양한 도구가 지원되어 개발 시간을 줄일 수 있고 품질이 향상되며 유지보수가 편리하다는 장점이 있지만, 습득하고 이해하는 데 오랜 시간이 걸리며 자유롭고 유연하게 개발하는 데 한계가 있습니다.

 

라이브러리와 프레임워크의 차이점은, 라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합이고, 프레임워크는 프로그래밍을 진행할 때 필수적인 코드, 알고리즘 등과 같은 뼈대나 구조를 지원해준다는 점입니다.

 

스프링 프레임워크는 자바 언어 기반의 오픈소스 애플리케이션 프레임워크입니다.
경량 컨테이너로서 자바 객체를 직접 관리하고, POJO 방식의 프레임워크이며, DI, IOC, AOP 지원, 영속성 관련 서비스 지원, 높은 확장성 등의 특징이 있어 개발자가 편리하게 개발을 할 수 있고 최소한의 코드 구조 퀄리티를 제공하여 많이 사용됩니다.

 

스프링 컨테이너는 객체의 생성 및 소멸과 같은 라이프 사이클을 직접 관리하고, 객체들 간의 의존관계를 런타임 과정에서 알아서 만들어 줍니다.

 

POJO(Plain Old Java Object)는 Getter와 Setter로 구성된 가장 순수한 형태의 기본 클래스를 뜻합니다.
불필요한 상속과 같이 기술에 맞는 환경에 의존하는 것을 피하고 필요에 따라 재활용 될 수 있는 방향으로 설계된 오브젝트 입니다.

 

DI(Dependency Injection)는 개발자가 직접 객체를 생성하는 것이 아니라 컨테이너에서 객체를 생성하고 데이터 간의 의존성을 주입해 의존성을 줄이는 방식입니다.

 

IOC(Inversion Of Controll)는 컨트롤의 제어권이 개발자가 아닌 프레임워크에 있어, 객체나 메서드의 호출이 외부에서 이루어짐으로써 결합도를 줄이고 유연한 코드를 작성할 수 있게 합니다.

 

AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로, 기존 객체 지향 프로그래밍이 공통적인 기능으로 Class를 분리했음에도 여전히 중복코드가 발생하는 단점을 해결하고자 나왔습니다. 어떤 로직을 핵심적인 관점과 부가적인 관점으로 나눠 각각 모듈화 하며, 핵심적인 관점은 개발자가 적용하고자 하는 핵심 비즈니스 로직이고, 부가적인 관점은 핵심 로직을 수행하기 위한 DB연결, 파일 입출력 등이 있습니다.

 

IBatis나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공합니다.

 

다른 프레임워크와의 통합을 지원하기 때문에 많은 라이브러리가 스프링에 지원되고 있고, 또 라이브러리를 별도로 분리하기에도 용이하여 확장성이 높습니다.

 

스프링부트는 스프링 프레임워크의 복잡한 환경설정을 보완하고자 개발되었습니다.
- Embedded Tomcat 사용
- Starter를 통한 dependency의 자동화로 버전을 맞춰야 하는 불편을 해소
- XML 설정 x
- jar 파일로 간단하게 배포(기존 스프링 프레임워크는 war 파일을 web application server에 담아 배포)

 

Spring 실행 순서
1. web.xml에 등록된 DispatcherServlet은 클라이언트로부터 들어온 URL을 HandlerMapping에 전송 합니다.
2. HandlerMapping은 URL을 분석하여 알맞은 Controller의 이름을 다시 DispatcherServlet으로 보냅니다.
3. DispatcherServlet이 Contrller를 실행하고, Controller는 ModelAndView 객체에 View Page에 전달할 객체와 View Page 이름을 담아 DispatcherServlet으로 보냅니다.
4. ViewResolver를 통해 보여질 View Page를 탐색한 후 해당 View Page를 보여줍니다.

 

728x90

'이론 > CS공부' 카테고리의 다른 글

디자인 패턴  (0) 2022.11.02
컬렉션 프레임워크  (0) 2022.11.02
추상화  (0) 2022.11.02
MVC패턴  (0) 2022.11.02
Cookie vs Session  (0) 2022.10.31

생각의 흐름대로 정리

디자인 패턴이란, 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션이다.

디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와준다.

싱글톤 패턴, 팩토리 패턴, 옵저버 패턴이 있다.

 

싱글톤 패턴(SingleTone Pattern) : 여러 곳에서 반복적으로 사용되어야 하는 객체에 대해 전역적인 범위를 갖도록 객체를 생성하고, 이 객체를 여러 곳에서 공유하기 위한 클래스 작성 패턴. 이러한 패턴으로 만들어진 객체를 싱글톤 객체

즉, 한 개의 인스턴스만을 메모리에 선언하고 이를 여러 곳에서 가져다 사용하는 형태

클래스는 객체를 만들어내기 위한 일종의 설계도/ 객체는 소프트웨어 세계에 구현해야 할 대상/ 인스턴스는 설계도를 바탕으로 객체를 소프트웨어 세계에 구현한 것(메모리가 할당된다) 

 

팩토리 패턴(Factory Pattern) : 객체 간 의존성을 줄이기 위해 객체의 생성과 데이터 주입만 담당하는 Factory Class를 정의하고 개발 코드 부분에서는 생성된 객체를 가져다 사용함으로서 의존성을 줄이는 방식

 

옵저버 패턴(Observer Pattern) : 기후 정보처럼 RSS 수신 시 하나의 객체가 변하면 다른 객체에 객체가 변했다는 사항을 알려주어야 할 경우 주로 사용

 

RSS는 웹사이트나 블로그에서 제공하는 RSS 주소를 수신 시 자동으로 자료가 업데이트 되어 쉽게 새로운 컨텐츠를 확인할 수 있는 인터넷 기술

 

 


 

 

한 줄 정리

디자인 패턴(Design Pattern)이란, 기존 환경에서 반복적으로 일어나는 문제들을 어떻게 해결할 지 일종의 솔루션을 제공하는 것으로, 싱글톤 패턴, 팩토리 패턴, 옵저버 패턴 등이 있습니다.

 

싱글톤 패턴(SingleTone Pattern)은 여러 곳에 사용되는 기능이 필요할 때 하나의 객체만을 선언하고 전역 접근을 허용하여 필요한 곳에서 갸져다 쓸 수 있게 하는 것으로, 이렇게 생성된 객체를 싱글톤 객체라고 합니다.

 

팩토리 패턴(Factory Pattern)은 객체의 생성과 데이터 주입만 담당하는 Factory Class를 정의하고 개발 코드 부분에서는 생성된 객체를 가져다 사용함으로서 의존성을 줄이는 방식입니다.

 

옵저버 패턴(Observer Pattern)은 하나의 객체가 변하면 다른 객체에도 객체가 변했다는 사항을 알려주어야 할 경우에 사용합니다.
728x90

'이론 > CS공부' 카테고리의 다른 글

스프링 프레임워크  (0) 2022.11.02
컬렉션 프레임워크  (0) 2022.11.02
추상화  (0) 2022.11.02
MVC패턴  (0) 2022.11.02
Cookie vs Session  (0) 2022.10.31

생각의 흐름대로 정리

컬렉션 프레임워크는 다수의 데이터를 쉽게 처리할 수 있도록 표준화 된 방법을 제공하는 클래스.

기존 배열 형태의 자료 저장에서 좀 더 다양한 데이터들을 저장하기 위한 필수 클래스이다.

자바의 인터페이스를 통해 구현된다.

List, Set, Map 인터페이스가 있다.

 

List 인터페이스는 배열과 유사하고 추가할 때마다 자동으로 크기를 늘려주는 구조로, 중복된 데이터를 허용하며 순서가 존재

ArrayList, LinkedList, Vector가 있다.

ArrayList는 데이터 조회가 매우 빠르지만, 빈번한 삽입, 삭제 시 새로 배열을 만들고 데이터를 옮겨야 하기 때문에 LinkedList에 비해 속도가 느리다.

LinkedList는 조회는 ArrayList에 비해 느리지만, 삽입, 삭제 시 링크를 끊고 추가되는 데이터에 연결만 하면 되기 때문에 삽입, 삭제에 유리하다.

Vactor는 ArrayList와 유사하지만 처리속도가 느리고, 용량관리가 필요하다. 옛날 버전이라 거의 사용되지 않는다.

 

Set 인터페이스는 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않습니다.

HashSet 과 TreeSet이 있다.

HashSet은 해싱을 이용하여 구현하며 TreeSet은 이진 트리 구조로 구현

해싱이란, 대부분의 탐색 방법들이 탐색 키를 저장된 키 값과 반복적으로 비교하면서 탐색을 원하는 항목에 접근하는 반면, 해싱은 키 값에 직접 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 접근한다. 이렇게 키 값의 연산에 의해 직접 접근이 가능한 구조를 해시 테이블이라 부르고, 해시 테이블을 이용한 탐색을 해싱이라 한다.

트리는 노드로 이루어진 자료구조로 계층적 관계를 표현하는 비선형 자료구조이다. 이진트리는 각 노드가 최대 두 개의 자식을 갖는 트리를 뜻한다.

 

Map 인터페이스는 Key와 Value 구조로 데이터를 저장하며, Key는 중복될 수 없고 Value는 중복이 가능하다.

HashMap, TreeMap, Properties, Hashtable이 있다.

HashMap은 순서를 유지하지 않고 하나의 Null 키를 가질 수 있다. TreeMap보다 빠름

TreeMap은 오름차순을 유지하고 Null 키를 가질 수 없다. HashMap보다 느림

Properties는 Value의 타입이 String만 가능하다

Hashtable은 HashMap과 구조는 같고 동기화 되어져 있다는 점만 다르다

동기화란, 여러 명이 한 번에 하나의 해쉬 테이블에 접근해서 수정을 하면 데이터가 꼬일 수 있는데, 그러한 문제를 해결하기 위해 synchronized 블록이란 걸 두어서 한 명씩만 접근할 수 있도록 한 것을 말한다.

 

 


 

 

한 줄 정리

컬렉션 프레임워크는 다수의 데이터를 처리하기 쉽게 표준화된 방법을 제공하는 클래스로, 자바 인터페이스 형태로 구현 됩니다.
List, Set, Map Interface가 있습니다.

 

List 인터페이스는 배열과 유사하지만 추가할 때마다 자동으로 크기를 늘리는 구조로, 중복된 데이터를 허용하며 순서가 존재합니다.
ArrayList, LinkedList, Vector가 있습니다.

 

ArrayList는 데이터를 메모리 상에 연속적이며 순차적으로 미리 할당된 크기만큼 저장하는 자료구조 입니다. 데이터 조회가 매우 빠르지만(O(1)), 빈번한 삽입/삭제 시 배열을 새로 생성하고 옮겨야 하기 때문에 LinkedList보다 느립니다(O(n)).

 

LinkedList는 Node라는 구조체로 이루어져 있는데, 데이터 값과 다음 Node의 주소 값을 저장합니다. 물리적인 메모리 상에서는 비연속적으로 저장되지만, Node가 Next Node의 주소값을 가리키기 때문에 논리적인 연속성을 가진 구조 입니다. ArrayList보다 조회 속도는 느리지만(O(n)), 삽입/삭제 시 링크를 끊고 추가되는 데이터 혹은 삭제된 데이터 앞뒤 노드만 연결하면 되기 때문에 ArrayList보다 빠릅니다(O(1)). 

 

Vector는 ArrayList와 유사하지만 처리속도가 느리고 용량관리가 필요합니다. 옛날 버전이기 때문에 잘 사용되지 않습니다.

 

Set 인터페이스는 순서가 없는 데이터 집합으로, 중복을 허용하지 않습니다.
HashSet과 TreeSet이 있습니다.

 

HashSet은 해싱을 이용하여 구현하며, TreeSet은 이진트리를 이용합니다.

 

Map 인터페이스는 Key와 Value 구조로 저장되며, Key는 중복이 안되지만, Value는 중복이 가능합니다.
대표적으로 HashMap이 있습니다.

 

HashMap은 삽입/삭제/조회 연산의 O(1)을 보장하는 아주 빠른 자료구조 입니다. 삽입 데이터의 순서를 보장하지 않고, 정렬이 불가능 합니다. 
728x90

'이론 > CS공부' 카테고리의 다른 글

스프링 프레임워크  (0) 2022.11.02
디자인 패턴  (0) 2022.11.02
추상화  (0) 2022.11.02
MVC패턴  (0) 2022.11.02
Cookie vs Session  (0) 2022.10.31

생각의 흐름대로 정리

추상화란 객체지향 프로그래밍의 특징 중 하나.

공통된 특징을 묶어 하나의 클래스로 정의하는 것을 말한다.

 

추상화의 특징 : 다중 상속이 불가능하다. 추상클래스에서는 일반 메소드도 같이 사용이 가능하다.

 

자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스라고 한다. 반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 해당 추상 메소드를 반드시 재정의해야 한다. 이를 통해 각 개별 개체의 구체적인 구현에 대한 상세함을 갖출 수 있다. 추상 클래스는 객체를 생성할 수 없다.

 

자식 클래스에서 반드시 오버라이딩 해야만 사용할 수 있는 메소드를 추상 메소드라고 한다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다.

abstract 키워드를 메솓 앞에 붙여준다.

추상 메소드는 추상 클래스 안에서 선언만 하고, 구체적인 구현은 추상클래스를 상속받은 자식 클래스에서 진행한다.

추상 메소드 뒤에 {} 가 아닌 ; 을 붙인다.

 

인터페이스는 추상 클래스보다 더 추상화된 클래스로 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당한다. 즉, 모든 기능을 추상화로 정의만 하고 구현은 하지 않은 것을 말한다.

 

인터페이스 특징

- 실제 구현된 것이 전혀 없는 기본 설계도

- 미리 정해진 규칙에 맞게 구현하도록 '표준'을 제시하는데 사용한다.

- 클래스와 인터페이스는 서로 상속받을 수 없다. 단, 클래스는 클래스끼리 인터페이스는 인터페이스끼리 상속시킬 수 있다.

- 클래스는 다중 상속을 허용하지 않지만 인터페이스는 다중 구현을 허용한다.

- 인터페이스에서는 일반 메소드를 사용할 수 없다.

- implements 키워드를 사용하여 인터페이스를 '상속'이 아닌 '구현'한다.

 

인터페이스와 추상 클래스의 차이점

  • 추상 클래스(Abstract Class)
    - 인스턴스 생성보다 상속을 목적으로 사용한다.
    - 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있다.
  • 인터페이스(Interface)
    - 주로 제공할 기능을 정의하는데 사용한다.
    - 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다.
    - 인터페이스에서는 abstract를 생략할 수 있다.

 

 


 

 

한 줄 정리

추상화는 객체지향 프로그래밍의 특징 중 하나로, 공통된 특징을 하나로 묶어 클래스로 만드는 것 입니다.

 

추상 클래스(Abstract Class)는 하나 이상의 추상 메소드를 포함한 클래스를 추상 클래스라고 합니다.
반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언하면, 상속 받은 자식 클래스는 이를 반드시 재정의해야 합니다.

 

추상 메소드는 정의부만 있고 구현부는 없는 메소드 입니다. 자식 클래스에서 반드시 오버라이딩 해야 사용할 수 있습니다.

 

인터페이스(Interface)는 추상 클래스보다 더 추상화된 클래스로, 다른 클래스를 작성할 때 기본이 되는 틀을 제공합니다.
인터페이스 내에 선언된 모든 메소드는 추상 메소드이고, 변수는 상수로 선언이 됩니다.

 

추상 클래스 vs 인터페이스
추상 클래스는 추상 메소드 외 일반 메소드 등도 선언이 가능하지만 인터페이스는 추상메소드와 상수만 선언이 가능합니다.
추상 클래스는 다중 상속이 불가능 하지만, 인터페이스는 다중 구현이 가능합니다.
728x90

'이론 > CS공부' 카테고리의 다른 글

디자인 패턴  (0) 2022.11.02
컬렉션 프레임워크  (0) 2022.11.02
MVC패턴  (0) 2022.11.02
Cookie vs Session  (0) 2022.10.31
Servlet vs JSP  (0) 2022.10.27

생각의 흐름대로 정리

MVC란, 애플리케이션을 크게 model, view, controller 세 영역으로 구분하여 영역 간의 결합도를 최소화 한 논리적인 패턴입니다.

가장 큰 특징이며 장점은 비즈니스로직과 프레젠테이션로직의 분리. 디자이너와 개발자의 영역이 분리됨으로써 작업의 분업화 가능. 또한 유지보수에도 용이하고, 개발에 소요되는 시간을 현저하게 줄여준다.

 

MVC 구성 요소

- Model : 데이터의 처리와 접근을 담당

- View : 사용자에게 보여지는 화면을 담당

- Controller : Model과 View를 연결하고 데이터를 교환하는 데 사용

 

 


 

 

한 줄 정리

MVC(Model, View, Controller) 패턴이란, 애플리케이션을 세 영역으로 구분하여 영역 간의 결합도를 최소화한 패턴 입니다.
비즈니스 로직과 프레젠테이션 로직을 분리함으로써 작업의 분업화를 할 수 있으며 유지보수에 용이합니다.
개발에 소요되는 시간을 현저하게 줄여줍니다.

 

Model : 데이터의 처리와 접근을 담당합니다.
View : 사용자에게 보여지는 화면을 담당합니다.
Controller : Model과 View를 연결하고 데이터 교환를 교환하는 데 사용합니다.
728x90

'이론 > CS공부' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2022.11.02
추상화  (0) 2022.11.02
Cookie vs Session  (0) 2022.10.31
Servlet vs JSP  (0) 2022.10.27
JAVA  (0) 2022.10.26

+ Recent posts