- 프레임워크란?
- 프로그램 개발에 투입되는 개발자가 늘어남에 따라 전체 시스템의 통합성, 일관성 부족, 개발 스킬의 차이가 큰 경우 이해하기 힘든 경우 발생하면서 코드의 품질이 떨어 질 수 있음.
- 라이브러리?
- 틀과 구조를 결정한다는 측면에서 프레임워크와 활용도가 유사하지만 특정 기능이 필요한 경우 호출해서 사용하는것.
- 프레임워크는 꼭 써야하는 틀이 있는 반면에 라이브러리는 필요한 기능을 호출 해서 능동적으로 사용 하는 것.
- 장&단점
- 미리 구현해둔 코드를 사용하기 때문에 빨리 개발 할 수 있지만 익숙해지는데 시간이 걸릴 수 있음
- 의존성이 커지면 언어를 배우는 것이 아니라 프레임워크를 배우게 됨.
- 특정한 틀을 만들어 놓고 거기에 살을 붙여 놓음으로써 프로그램을 만듬
- 소프트웨어를 만들 때 뼈대가 되는 클래스, 인터페이스, 메서드 등을 미리 구현
- 스프링 프레임워크란?
- 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 / 하드웨어적인 구성이 필요 없는 경량 프레임워크
- 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고 조립해주는 기구로 개발자는 자신의 코드에 필요한 객체는 스프링을 통해서 주입받는 구조로 작성된다
- request -> dispatcherServlet(web.xml) -> controller -> 로직 처리(service. db) -> view 전달 -> response
- dispatcher Servlet 이란?
- 어플리케이션으로 들어오는 모든 request를 받는 관문, request를 실제로 처리할 controller에게 전달하고 그 결과값을 받아서 view에게 전달하여 적절한 응답을 생성 할 수 있도록 흐름을 제어 함.
- 의존성 주입 DI란?
- 특정 객체에 필요한 객체를 외부에서 결정해서 연결하는 것을 의미함.
- 스프링에서 원하는 핵심적인 개념 중 하나라고 생각
- 설정 파일을 통해서 객체간의 의존관계를 설정 / 직접 객체를 생성하지 않고 스프링에서 객체를 생성한 뒤에 사용할 객체에 주입시켜 사용
- MVC
- Model , View , Controller의 합성어로 소프트 웨어 디자인 패턴
- Model : 데이터
- View : jsp 파일들과 같이 실제로 보여지는 페이지
- Controller : 사용자들의 요청을 받고 응답을 주는 로직 담당
- 사용자가 접근한 url에 따라서 요청사항을 파악하고 요청에 맞는 데이터를 model에 의뢰하고 데이터를 view에 반영해서 사용자에게 보여줌
- 장점 : 코드 재사용에 좋음
- 쿠키 와 세션이란?
- 쿠키(Cookie) : 서버가 사용자의 웹 브라우저에 저장하는 데이터 / key 와 Value로 구성 String형태로 이뤄짐
- 브라우저 마다 저장되는 쿠키는 다르고 서버에서는 브라우저가 다르면 다른 사용자로 인식.
- 서버가 가지고 있는 것이 아닌 사용자에게 저장되기 때문에 임의로 고치거나 지울 수 있고 가로채기도 쉬어 보안 취약
- 세션(Session) : 일정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구사항을 하나의 상태로 보고 그상태를 유지 시키는 기술.
- 저장 데이터에 제한이 업고 각 클라이언트에 고유 Session ID를 보유.
- 쿠키와 세션의 사용이유는 서버와 클라이언트가 통신을 할 때 통신이 연속적으로 이어지지 않고 끊어진다면 서버는 클라이언트가 누구인지 계속 인증해야 하며, 웹 페이지 로딩이 느려지기 때문에 이런 과정을 해결하기 위한 방법이 쿠키와 세션이다.
- AOP란?
- 공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복 해소.
- Aspect Oriented Programming, 관점 지향 프로그래밍 , 객체 지향 프로그래밍에서 기능별로 class를 분리 했음에도 로그, 트랜젝션 처럼 공통적으로 반복되는 중복 코드가 발생하는 단점을 해결하고자 나온 방식.
- Mybatis란?
- sql문으로 db에 접근하다보면 경우에 따라 sql문 변경이 필요한 경우가 있음.
- mybatis를 활용해 단편적으로 제어문,반복등의 처리가 가능하여 동적으로 변경 가능
- ORM이란?
- 객체와 관계형 데이터 베이스의 데이터를 자동으로 연결해주는 개념.
- 객체 간의 관계를 바탕으로 sql을 자동 생성.
- 기존 JDBC를 이용해서 프로그래밍을 하면 자바 소스 안에 sql문을 작성했지만, xml 파일에 sql문을 작성 하므로 추후 수정 시에 다른 곳에는 아무런 영향이 없이 xml파일만 수정하면됨.
- 유지보수 용이 / 가독성이 좋음.
'Java > 이론' 카테고리의 다른 글
[JavaScript]Ajax란? (0) | 2022.11.19 |
---|---|
[JAVA]상속이란? (0) | 2022.11.19 |
[JAVA]캡슐화란? (0) | 2022.11.19 |
[JAVA]다형성이란? (0) | 2022.11.19 |
[JAVA]오버라이딩, 오버로딩 이란? (0) | 2022.11.19 |