본문 바로가기

분류 전체보기

(433)
Static file 처리와 FileUpload # Static Web Resource 처리 서버의 처리가 필요없는 Static Web resources는 요청 시 서버를 거치지 않고 곧바로 응답이 필요 특정 URL로 요청이 오면 static resource로 인식하고 바로 응답 수행 mapping: HTTP 요청 URL location: 실제 응답할 파일이 있는 위치 ex) http://localhost:8080/hello/resources/scripts/jQuery.js 응답: /WEB-INF/resources/script/jQuery.js # 파일 업로드 시 HTML 파일
Restful API # OpenAPI OpenAPI는 개방형 API로, 응용 프로그램을 개발할 때 사용하는 인터페이스라는 의미. OpenAPI는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스를 말한다. 여러 포털과 관공서에서 데이터를 외부 응용 프로그램에서 사용할 수 있도록 Open API 형태로 제공 # REST(REpresentational Safe Transferful) API HTTP URI + HTTP Method > HTTP URI를 통해 제어할 자원을 명시하고 HTTP Method를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처를 의미한다 Restful API는 HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 어플리케이션 개발 인터페이스 (REST 원리를 따르는 시스템은 ..
Http 파라미터 처리 # Http 파라미터 처리 @RequestParam 어노테이션을 이용한 요청 파라미터 구하기 get / post로 요청을 넘겨 받으면 @RequesMapping("/test8") // 여러 옵션 지정 가능 required, defaultValue public ModelAndView test8(@RequestParam("id", required=false, defaultValue="") String id){ ModelAndView vew = new ModelAndView(); view.setViewName("test/test8"); view.addObject("userID",id); return view; } Command 객체를 이용해 폼 전송 처리하기 다음과 같이 input이 많아지면 @RequestP..
@Controller # DipatcherServlet # Controller 사용자 요청(URL 기반)에 해당하는 Controller의 특정 메소드가 호출됨 Controller는 요청의 파라미터가 있으면 처리하고 비즈니스 처리를 위해서 서비스 컴포넌트를 주입 받아서 실행 실행된 결과를 전달받아 DispatcherServlet에게 반환 @Controller(클래스에 사용), @RequestMapping, @Autowired 어노테이션 사용 # @RequestMapping @RequestMapping > Class Level Mapping vs Method Level Mapping Class level Mapping 후에 Method Level Mapping이 합쳐져서 URL이 형성됨 URL이 같다고 하더라도 Get, Post..
Spring MVC # MVC 패턴의 개념 MVC(Model-View-Controller) 패턴은 소프트웨어 공학에서 사용되는 아키텍처 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 구분하기 위함이다. Model : 어플리케이션의 정보(데이터, Business Logic 포함) View : 사용자에게 제공할 화면(Presentation Logic) Controller : Model과 View 사이의 상호작용을 관리 1) Model 컴포넌트 데이터 저장소(DB)와 연동하여 사용자가 입력한 데이터 또는 출력할 데이터를 다룬다 여러 개의 데이터 변경 작업(CRUD)을 하나의 작업으로 묶는 트랜잭션을 다룬다 DAO 클래스, Service 클래스, VO(Domain 객체) 등이 해..
Layered Architecture & @Component # 계층화 아키텍처 효율적인 개발과 유지보수를 위해 계층화하여 개발 대부분의 중/대규모 어플리케이션에서 적용 각 레이어는 독립된 R&R을 가짐 3 가지 영역으로 구분(Presentation, Business, Data) 1) Presentation 영역 사용자와 상호작용을 담당 사용자의 요청을 분석/응답 2) Business 영역 기능 수행, 트랜잭션 수행 3) Data 영역 데이터의 저장과 조회를 담당 주로 DB와 연동하여 작업 # MVC 패턴 Layered Architecture를 사용한 대표적인 패턴 어플리케이션을 Model, View, Controller로 구분 UI를 가지는 대부분의 어플리케이션은 MVC 기반 (Angular, Android, iOS, SpringMVC 등등) # 컴포넌트 자동등..
DI(Dependency Injection) # DI 개념 각 클래스 간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말함 개발자들은 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 됨 객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성됨 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해주는 것 이를 통해 코드가 단순해지며, 컴포넌트 간의 결합도(Coupling)가 제거된다. # DI 유형 # Spring DI 컨테이너 개념 Spring DI 컨테이너가 관리하는 객체를 Bean(빈) 이라고 하고, 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리(Bean Factory)라고 부른다. # 실습 1. Service 클래스를 만들어 DAO..
IoC(Inversion of Control) # IoC의 개념 IoC(제어권의 역전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다. 컴포넌트 의존관계 결정(Component dependency resoultion), 설정(Configuration) 및 생명주기(lifecycle)를 해결하기 위한 디자인 패턴(design pattern)이다. # IoC 컨테이너 스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있음. 즉, IoC 컨테이너 기능을 제공한다. 기능 IoC 컨테이너는 객체의 생성을 책임지고 의존성을 관리 POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다 개발자들이 직접 POJO를 생성할 수 있지만 컨테이너에게 맡긴다 cf. POJO에 대해서는 많..