본문 바로가기

반응형

Spring

29.Spring, 데이터 유효성체크에 대해서 알아보고 간단한 샘플프로그램을 만들어 보자. 데이터 유효성체크에 대해서 알아보자. 데이터를 실제로 처리하기전에 해당 데이터가 처리할 수 있는 정상적인 데이터인지 대해서 우선 체크하는 것. 그리고 보통 좋은 서비스를 개발하는 개발자는 항상 데이터를 처리하는 서비스 로직을 작성하기전에 처리해야할 데이터의 유효성을 어떻게 체크하고 예외처리 할 것 인지에 대한 고민을 한다. 만약 유효성체크에 대한 고민이 없이 프로그램을 작성하다보면, 비정상적인 데이터를 처리하다가 프로세스가 다운되는 개발자로서 가슴아픈(?) 상황을 맞이하기도 한다. -_-; 그리고 디버거를 통해서 왜 프로세스가 다운되었는지 파악을 해야하고, 파악 되면, 소스코드를 그제서야 보완하게된다. 제가 말씀드리고 싶은 결론은 항상 개발을 할 때, 처리해야할 데이터에 대한 유효성에 대해서 고민하는 습.. 더보기
28.Spring, HATEOAS에 대해서 알아보고 간단한 샘플 프로그램을 만들어보자. HATEOAS 에 대해서 알아보자 우선, HATEOAS 의 약자는 아래와 같음. Hypermedia As The Engine Of Application State HATEOAS 의 특징 REST 어플리케이션 아키텍처의 제약 중 하나. 주어진 자원에 대한 관련 Link 를 RESTful 서비스에 표시하는 개념을 제공함. 즉, 특정 리소스의 세부 정보를 반환할때, 리소스를 수행할 수 있는 작업에 대한 Link 와 관련 리소스에 대한 Link 도 반환함. 서비스 소비자가 응답에서 Link를 사용해 트랜잭션을 수행할 수 있으면, 모든 Link를 하드 코딩할 필요가 없는 장점. 다시말해서, HATEOAS는 서비스공급자와 소비자간의 결합을 줄이는데 유용함. 참고페이지 https://en.wikipedia.org/w.. 더보기
27.Spring, 예외처리(Exception)에 대해서 알아보고 간단한 샘플 프로그램을 만들어보자. 예외처리에 대해서 알아보자. 서비스 제공 시 특정 문제가 발생하면 서비스의 소비자 즉, 클라이언트에게 무엇이 잘못되었는지 대한 설명을 해주는 것을 말함. 다시말하면, 내가 서비스를 요청하는 사용자라고 한다면, 서버에 접속해서 서비스를 제공받는데, 나도 모르게 서비스가 중단되고나 서버가 다운되서 접속이 불가하면, 난처한 경우가 생김. -_-; 그래서, 서비스 공급자는 특정 로직의 실패 시 예외처리를 통해서 대처방안 및 서비스 소비자에게 유연한(?) 대응을 할 수 있도록 지원해줘야함. 이해를 돕기위해서, 저의 경험을 슬며시 좀 풀자면, 저는 주로 OOO뱅크을 이용하는데, 얼마전에 장애가 있었고 서비스를 소비하는 입장에서 아래 3가지 상황을 겪게됨. 하나, 해당 서버에 접속은 가능했는데, 1시간동안이나 계좌이.. 더보기
26.Spring, REST(Representational State Transfer)에 대해서 알아보고 간단한 샘플 프로그램을 만들어보자. REST에 대해서 알아보자. 우선, REST의 약자에 대해서 알아보자. Representational State Transfer 위의 글자를 조합해서 REST 임. REST 는 네트워크 상에서 클라이언트 / 서버 간의 통신 방식 중하나. 쉽게말하자면, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미함. 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달 자원: 해당 소프트웨어가 관리하는 모든 것 자원의 표현: 그 자원을 표현하기 위한 이름 그리고, JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적임. REST 는 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달함. REST는 기본적으로 웹의 기존 기술과 HTT.. 더보기
25.Spring, Spring Boot 의 주요 스타터 프로젝트를 알아보자. Spring Boot 의 주요 스타터 프로젝트 아래의 스타터 프로젝트를 추가하면, 스프링 부트 프로젝트에 새로운 의존성이 추가 될때 마다, 의존성 기반으로 Bean을 자동으로 설정함. 아래는 주요 스타터 프로젝트이다. Starter목록 설명 비고 spring-boot-starter-web Spring MVC 기반의 웹 어플리케이션 or RESTful 어플리케이션을 구현하는 Starter Project . - 디폴트, Embed 서블릿 컨테이너로 Tomcat 이 사용됨. spring-boot-starter-web-services XML 기반 웹서비스를 개발하는 Starter Project. spring-boot-starter-integration 엔터프라이즈 integration pattern 의 구현을 .. 더보기
24.Spring, Spring Boot App 시작하기 (Spring Boot 구동 클래스 생성, 4/4) SpringApplication 클래스 란? SpringApplication 클래스는 Java 메인 메소드에서 Spring 어플리케이션을 구동하고 부트스트랩을 사용할 수 있는 클래스. 아래는 SpringApplication 의 샘플코드이다. 설명 Spring Boot 어플리케이션이 부트스트랩될 때 일반적으로 수행되는 단계임. 첫째, Spring 의 ApplicationContext 인스턴스를 생성함. 둘재, 명령줄의 인수를 받고, 이를 Spring 속성으로 노출하는 기능을 활성화함. 셋째, 설정에 따라 모든 Spring Bean을 읽어옴. 그럼, @SpringBootApplication 어노테이션에 대해서 알아보자. @SpringBootApplication 어노테이션은 아래 3가지 어노테이션을 포함하고 .. 더보기
23.Spring, Spring Boot App 시작하기 (pom.xml 파일에 spring-boot-maven-plugin 구성, 3/4) 스프링 부트를 사용할때, 실행 방법 2가지 하나, JAR or WAR 을 빌드하지 않고 직접 어플리케이션을 실행. 둘, 기존에 WAS에 배포할 수 있도록 JAR/WAR 을 빌드하고, WAS를 기동하여 실행. 그럼, 스프링 부트에서 위의 2가지 상황 모두 기능을 제공하려면 어떻게 해야 할까? pom.xml 파일에 아래 의존성 추가 spring-boot-maven-plugin 설명 위의 spring-boot-maven-plugin 을 추가함으로써, 위의 실행 방법 2가지를 제공함. 그럼, spring-boot-maven-plugin의 goal 을 알아보자 plugin 이 제공하는 몇가지 goal은 아래와 같음. repackage create a jar or war file that is auto-execut.. 더보기
22.Spring, Spring Boot App 시작하기 (필요한 starter project 로 pom.xml 파일을 구성, 2/4) 스타터(starter) 란? 특정 목적을 위해서 커스텀이 단순화된 의존성 디스크립터. 예시) spring-boot-stater-web Spring MVC 를 사용해 RESTful이 포함된 웹 어플리케이션을 작성하기 위한 스타터 디폴트 Embed 컨테이너로 tomcat 를 사용함. 즉, 웹 어플리케이션을 개발하고 싶다면, 해당 spring-boot-stater-web 의존성을 포함시켜야 함. 그리고, 자동으로 아래 주요 내용이 사전구성됨. Spring MVC 호환 가능한 버전의 jackson-databind 및 hibernate-validator jackson-databind 바인딩용 hibernate-validator 폼 벨리데이션 용 spring-boot-stater-tomcat tomcat 을 위한 .. 더보기

반응형