본문 바로가기

반응형

Spring

21.Spring, Spring Boot App 시작하기 (spring-boot-starter-parent 구성, 1/4) 스프링 부트 어플리케이션을 시작하는 과정에 대해서 알아보자. 주요 과정은 아래와 같음. 하나, pom.xml 파일에 spring-boot-starter-parent를 설정함. (1/4) 둘, 필요한 starter project 로 pom.xml 파일을 구성함. (2/4) 셋, 어플리케이션을 실행하기위해, spring-boot-maven-plugin을 설정함. (3/4) 넷, 스프링 부트 실행 클래스를 만듬. (4/4) 그럼, spring-boot-starter-parent 구성에 대해서 알아보자 우선, 아래 예시, pom.xml 을 유심히 보자 잠깐! 여기서 의문 한가지 ? ^^; 위에서 가장 먼저 눈에 들어오는 spring-boot-starter-parent 가 필요한 이유가 있을텐데 왜 필요할까? 정.. 더보기
20.Spring, 스프링 부트(Spring Boot)에 대해서 알아보자. 스프링부트(Spring Boot) 에 대해서 알아보자. 스프링부트란? "바로 실행"할 수 있는 stand-alone, production 급의 스프링기반 어플리케이션을 쉽게 만들 수 있는 프로젝트라고 설명하면 될까? 아무튼 spring 홈페이지에서는 아래와 같이 설명하고 있다. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". 참고 URL https://spring.io/projects/spring-boot#overview 그럼, 기존에도 스프링 프레임워크가 있었는데, 왜 스프링 부트가 나타났을까? 우선, 스프링 프레임워크를 통해서 프로젝트 구축 .. 더보기
19.Spring, 12팩터앱(The Twelve-Factor App)에 대해서 알아보자. 12팩터앱에 대해서 간략하게 알아본다면, 12팩터(Twelve-Factor app) 앱은? 12팩터앱은 아래 특징을 가진 SaaS(Software As A Service) 앱을 만들기 위한 방법론 설정 자동화를 위한 절차(declarative) 를 체계화 하여 새로운 개발자가 프로젝트에 참여하는데 드는 시간과 비용을 최소화함. OS에 따라 달라지는 부분을 명확히하고, 실행 환경 사이의 이식성을 극대화 함. 최근 등장한 클라우드 플랫폼 배포에 적합하고, 서버와 시스템의 관리가 필요없게 됨. 개발 환경과 운영 환경의 차이를 최소화하고 민첩성을 극대화하기 위해 지속적인 배포가 가능함. 툴, 아키텍처, 개발 방식을 크게 바꾸지 않고 확장(scale up) 할 수 있음. Twelve-Factor 방법론의 특징은 .. 더보기
18.Spring, 스프링 데이터 JPA(Java Persistence API)에 대해서 알아 볼께요. JPA(Java Persistence API) 란 무엇일까요? JPA는 Java Persistence API의 약자로, 자바표준 ORM(Object Relational Mapping) 기술 인터페이스 or 명세서 그럼, ORM 이란? 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말함. 객체 지향 프로그래밍은 클래스 사용 관계형 데이터베이스는 테이블을 사용 즉, 객체 모델 / 관계형 모델 간 불일치가 존재함, ORM을 통해서 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결함. 여기서 잠깐! 보통 SI 환경에서는 Spring & MyBatis(iBatis)를 많이 사용함. 참고로, 제가 담당하고 있는 네이트온에서도 MyBatis 를 사용하고 있음. 해당 MyBatis .. 더보기
17.Spring, 스프링관련 자바 웹어플리케이션 레이어(Layer) 및 전반적인 구성 요소에 대해서 알아보자. 스프링관련 자바 웹어플리케이션 레이어 및 전반적인 구성 요소에 대해서 알아보자. 분류를 하자면, 아래와 같이 분류 가능하다. Web Layer 웹 애플리케이션 컨트롤러를 담당하고, 뷰를 랜더링 하는 계층 Business Layer 비즈니스 로직을 담당하는 계층 Data Layer 데이터베이스와 통신을 담당하는 계층 Integration Layer 다른 애플리케이션과 통신을 담당하는 계층 Crosscutting concerns 위의 서로다른 Layer 에 대한 전반적인 관심사 예를들면, 로깅 / 보안 / 트랜잭션 관리 등등 스프링 IoC 컨테이너는 Bean을 관리하기 때문에 AOP(Aspect-Oriented Programming)를 통해 Bean 주변의 관심사를 해결할 수 있음. 우선, Web Layer.. 더보기
16.Spring, 스프링MVC의 핵심개념 중 컨트롤러 레벨에서 공통적으로 특정로직을 적용하는 방법에 대해서 알아볼께요. 스프링MVC의 핵심개념 중 컨트롤러 레벨에서 공통적인 로직을 적용하려면 어떻게 해야 할까요? 정답 @ControllerAdvice 어노테이션을 사용함. 그리고, spring.io 페이지에서는 아래와 같이 설명하고 있네요.. 1.3.7. Controller Advice Typically @ExceptionHandler, @InitBinder, and @ModelAttribute methods apply within the @Controller class (or class hierarchy) in which they are declared. If you want such methods to apply more globally (across controllers), you can declare them in .. 더보기
14.Spring, 스프링MVC의 핵심개념 중 모델속성(ModelAttribute)에 대해서 알아볼께요. 스프링MVC의 핵심개념 중 모델속성에 대해서 알아보자. 우선, 우리가 해야할일은 뭘까? 바로, @ModelAttribute 어노테이션에 대해서 머리속에 정의를 가지고 있어야한다. 그럼, 한번 정의해보자. ModelAttribute 이 어떤 어노테이션인지.. 간단하게 말씀드리면, 스프링 MVC 에서 콘트롤러 웹브라우저가 Domain Model(객체) 로 넘겨주는데, 아래 2가지 케이스가 가능하다. 첫째, @RequestParam을 사용해서 파라미터를 한개씩 한개씩 받는 방법 둘째, @ModelAttribute을 사용해서, 스프링MVC에서 알아서 변환과정을 통해서 Domain Model(객체) 바인딩을 하는 방법 즉, 정리하자면, @ModelAttribute을 사용하면, 스프링MVC에서 알아서 변환과정을 통.. 더보기
13.Spring, 스프링MVC의 핵심개념 중 인터셉터(Interceptor)와 핸들러매핑(HandlerMapping)에 대해서 알아볼께요. 인터셉터 / 핸들러매핑에 대해서알아보자. 인터셉터란 무엇일까? 인터셉터란, 웹브라우저에서 특정 URI로 요청할 경우, 핸들러(Controller)로 가는 요청을 가로채는 역할하며, 아래 플로우를 따름 preHandle -> (Handler call) -> postHandle -> (요청처리완료) -> afterCompletion 즉, 해당 preHandle / postHandle / afterCompletion 메소드 를 구현하여 특정 로직을 수행하게 만들 수 있음. (참고)Spring MVC request life cycle 출처 및 참고페이지 https://justforchangesake.wordpress.com/2014/05/07/spring-mvc-request-life-cycle/ 설명 위 그림.. 더보기

반응형