Client-- HTTP Protocol--> Server
(HTTP Protocol은 DB연결x => data를 파라미터 형태로 넣어 서버에 요청한다)
MVC 패턴이란?
MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴
장점 | 단점 |
---|---|
구조 단순 & 직관적 | view와 logic이 섞여있음 => JSP코드가 복잡 & 분업 어려움 |
개발시간 short => 비용 감소 | 유지보수가 어렵다 |
신기술 도입, framework 등 확장성 나쁘다 |
장점 | 단점 |
---|---|
view와 logic 분리 => 코드가 model1에 비해 간단 & 분업 용이 | 구조 복잡해 초기진입이 어렵다 |
유지보수가 쉽다 | 개발시간 증가 => 개발비용 증가 |
신기술 도입, framework 등 확장성 좋다 |
POJO란?
Plain Old Java Object
특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바객체
테스트하기 용이 & 객체지향 설계를 자유롭게 적용가능
PSA란?
Portable Service Abstraction
환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙
ex. db에 관계없이 동일하게 적용할 수 있는 트랜잭션 처리방식
DI란?
Dependency Injection
B라는 객체를 spring container에서 알아서 만들어서 A 객체에 주입한다
==> A입장에서는 그냥 사용하면 된다
IoC란?
Inversion of Container
객체를 new를 사용해서 생성 ==> 스프링이 만들어놓은 객체를 필요할때 가져다 사용public class UserServiceImpl implements UserService { private UserRepositoryImpl userRepository = new UserRepositoryImpl(); .... }
public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; .... }
AOP란?
Aspect Oriented Programming
관심사의 분리 => 소프트웨어의 모듈성을 향상
트랜잭션/로깅/보안과 같이 여러 모듈에서 공통으로 필요로하는 기능 분리 => 각모듈에 적용
[web, mvc]
https://nickjoit.tistory.com/9?category=590747
https://m.blog.naver.com/jhc9639/220967034588
https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html
https://youtechpoint.blogspot.com/2018/10/mvc1-vs-mvc2.html
[spring]
https://velog.io/@ljinsk3/Spring%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0