Spring/이론21 Spring Web Form 1. Data Binding - request parameter들은 어떻게 해당 오브젝트로 옮겨질까 Naive solution - @RequestParam annotaion을 사용하여 메서드 매개 변수와 bind 해준다. ex) @RequestMapping("/deget") public String doGet( @RequestParam("name") String name){... } -> 이런 식으로 받은 매개변수를 객체를 만들어 set 해주는 방식 Spring Data Binding - form에서 오는 매개변수를 자동으로 객체에 바인딩시켜준다. ex) @RequestMapping(value="/docreate", method=RequestMethod.POST) public String doGet(Em.. 2020. 3. 25. 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. JSP(Java Server Pages) JSP란? 동적으로 생성된 Content를 정적 HTML과 함께 사용할 수 있게 해 준다. 동적 페이지는 다른 context 나 조건에 따라 바뀔 수 있다. Servlet vs JSP 서블릿은 데이터 저리 가 좋다. - 데이터 읽기와 체킹, 데이터베이스와 통신, 비즈니스 로직 호출 등 JSP는 프레젠테이션에 좋다. - 요청 결과를 나타내는 HTML 작성 JSP 문서는 자동으로 뒤에서 서블릿화 된다. JSP를 사용하는 이유는 기술이 좋아서가 아니라, 편리성, 생산성, 유지관리성이다. JSP 문법 JSP Expression Scriptlet JSP Declaration JSP Comment JSP Directive JSP Action JSP Directive @page 지시문은 페이지 종속 속성을 정의하는 .. 2020. 3. 5. 이전 1 2 3 4 다음