본문 바로가기

Archived(Programming)

(74)
Spring Data Access 기술과 DataSource d# DAO 디자인 패턴 비즈니스 Layer(서비스)와 Low 레벨의 데이터 엑세스 작업을 분리 DAO Layer는 DB와 비즈니스 Layer 가운데 위치하여 CRUD 작업을 수행한다 # 데이터 액세스 기술 1) JDBC: 자바에서의 관계형 DB 접속 기술, JDK 레벨에서 지원하며 다른 고수준 기술의 기반 2) Spring JDBC: Spring 자체적으로 지원하는 JDBC Wrapper 3) Mybatis: 3rd party 자바 관계형 DB 매핑 Library, 자바 오브젝트와 SQL문을 자동으로 맵핑(SQL Mapper) 4) JPA: Java ORM 표준 인터페이스(자료형을 맵핑 시켜주는 기술), 과거에는 자료형과 컬럼을 수동으로 맵핑 5) HIbernate: Java ORM 구현체 # Spri..
JUnit4 & Spring Test # JUnit JUnit은 Java에서 독립된 단위테스트(Unit Test)를 지원해주는 프레임워크이다. JUnit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트 지원 프레임워크 CF) 단위테스트(Unit Test) 란? 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는 지 검증하는 절차, 즉 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 뜻한다. 특징 가장 많이 사용하는 Unit Test 단정(Assert) 메서드로 테스트 케이스의 수행 결과를 판별함(assertEquals(예상 값, 실제 값)) Junit4 부터는 테스트를 지원하는 어노테이션을 제공(@Test, @Before, @Atter) 각 @Test 메서드가 호출할 때마다 새로운 인스턴..
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 등등) # 컴포넌트 자동등..