본문 바로가기

Spring22

MVC(Model-View-Controller) Spring MVC Framework 웹 애플리케이션 개발을 위한 모델 뷰 컨트롤러 아키텍처를 제공한다. Model - 애플리케이션 데이터를 캡슐화하고 일반적으로 POJO(순수 자바 객체)로 구성된다.. View - 모델 데이터를 렌더링하고 일반적으로 HTML 출력을 생성한다. Controller - 사용자 요청을 처리하고 적절한 모델을 작성하고 렌더링을 위해 View로 전달한다. 1. 개요 Dispatcher servlet 사용자의 요청을 맨 먼저 받는다.(Front Controller로서 작동한다.) 요청을 적절한 Controller에게 전달해주는 역할 (애플리케이션으로 들어오는 모든 요청을 intercept 하고 Handler(Controller)에 디스패치(전달)한다.) 요청을 처리하기 위해 Co.. 2020. 3. 17.
DB 연동(with Spring JDBC) 1. Application Architecture - 서버와 클라이언트 사이에 TCP라는 프로토콜이 존재하여 커넥션을 만들어주어 통신을 가능하게 해 준다. - 같은 개념으로 서버와 DB사이에도 커넥션을 만들어주어야만 통신이 가능하다. 2. Data Access Layer - 요구되는 라이브러리 JDBC Template (Spring에서 제공되는 클래스): spring-jdbc DataSource (Apache): commons-dbcp JDBC Driver: mysql (mySQL)-connector-java - JDBC Template를 사용하려면 DataSource가 주입되어야 한다. ex) A대학의 DataSource를 만들어서 JDBC Template에 주입하면 A대학 DB에 접근하게 된다. - .. 2020. 3. 9.
관점 지향 프로그래밍(AOP, Aspect Oriented Programming) Layer 안에 부가 기능들을 각 각 삽입한 단순 접근의 단점 비즈니스 로직과 로깅 기능을 혼합 관심사의 분리 원칙을 위반 복잡성과 상호 의존성 향상 느슨하게 결합 된 디자인 방지 반복되는 코드로 수정이 어려워진다. Spring AOP - AOP는 부가 기능(Logging, Transaction...)을 메인 프로그램의 비즈니스 로직과 분리 -> Spring Framework가 부가 기능들을 핵심 기능에 적용시켜준다. AOP-Weaving app function 호출(Caller -> Proxy) 횡단 관심사(cross-cutting concern) 실행 (Proxy -> Aspect) app function 호출(Proxt ->Aspect -> Target) app function에서 return(Ta.. 2020. 3. 7.
의존성 주입(Dependency Injection) 객체 의존성 public class PetOwner{ private AnimalType animal; public PetOwner() { this.animal = new Dog(); } } PetOwner 객체는 AnimalType 객체 (이 경우 Dog)에 의존 PetOwner 객체는 AnimalType 객체의 생성을 제어 PetOwner와 AnimalType 객체 사이가 연결됨 AnimalType 객체를 변경하면 PetOwner 객체가 변경 PetOwner와 Dog는 강하게 결합이 되어있다 = tight coupling -> 다른 경우를 적용하려면 소스코드를 바꿔야 하는 상황 (만약 Cat을 animal에 넣으려고 하면 PetOwner 코드를 바꿔줘야 한다. -> 다른 상황마다 코드를 바꿔야되는 상황.. 2020. 3. 5.
Servlet 정적 페이지 vs 동적 페이지 1. 정적 페이지 - 서버가 경로 이름을 받고 해당 컨텐츠 파일을 반환한다. -> 항상 같은 페이지만 제공하므로 지루하다. 2. 동적 페이지 - 요청하는 파라미터에 따라 다른 결과의 페이지를 제공 Web Service Architecture Client(browser, mobile app) WAS(Web Application Server) DB(MySQL) WAS Web Server: 컨테이너로 요청을 보내고 요청 결과를 변환하에 클라이언트에게 응답한다. Servlet Container: (JSP, Servlet)가 들어있으며 동적으로 요청을 처리한다. Servlets 개요 웹 기반 요청들의 동적 처리에 이용되는 서버 사이드 자바 프로그램 form들을 통해 유저들의 inpu.. 2020. 3. 4.
Spring Framework 개요 프레임워크란? SW 구조 그리고 기반이 되는 클래스를 제공 라이브러리 vs 프레임워크 - Inversion of Control(제어의 역전) Library 클래스의 집합으로써 재사용성 지원 제어의 주체는 개발자 -> 코드에서 라이브러리 함수를 호출 Framework 제어의 주체는 프레임워크 -> 프레임워크에서 개발자의 코드를 호출(제어의 역전) 프레임워크에서 기본적인 골격을 잡아놓았기 때문에 개발자는 제어의 흐름에 맞게 코드를 작성해 두면 프레임워크에서 호출 Framework의 중요성과 장점 애플리케이션 구조 및 코드의 상당 부분을 제공 개발자는 애플리케이션의 핵심 로직에 집중 가능 높은 생산성 코드 품질 보장 Spring이란? 자바 애플리케이셔늘 개발하는데 필요한 하부구조(infrastructure)를.. 2020. 3. 4.