[SpringBoot] SpringBootServletInitializer를 상속해야 하는 이유? 기존에 봤었던 코드와 달리 스프링 부트 메인 클래스가 SpringBootServletInitializer를 상속하고 있는 형태였다. SpringBootServletInitializer는 무엇이고 왜 상속받고 있는지 궁금했다. 그리고 필요 없는 코드라면 삭제하고 싶었다. SpringBootServletInitializer는 무엇이고 왜 상속받고 있는가? SpringBoot 웹 애플리케이션을 배포할 때는 주로 embedded tomcat이 내장된 jar파일을 이용한다. 하지만 특별한 경우에는 전통적인 배포 방식인 war 파일로 배포를 진행해야 하는 경우가 있을 수 있다. 이럴 경우 SpringBootServletInitializer를 상속받으면 된다. 즉, war 파일로 빌드하고 배포하지 않을 거라면 Spr.. Program/Spring Framework 3년 전
[SpringSecurity] Access Token & Refresh Token 시작하기에 앞서 Access Token이란? 사적 리소스(private resource)에 접근하는 REST API에 대한 모든 요청에 토큰이 포함되어 있는지, 또 해당 토큰이 유효한지의 여부를 검증함으로써 인증 절차(로그인)를 수행할 때 사용하는 토큰을 Access Token이라 부릅니다. 이러한 Access Token은 수명이 있다. 수명이 끝나면 해당 토큰을 이용하여 API 서버에 데이터를 요청했을 때 API 서버는 더 이상 정보를 제공하지 않는다. 그럼 어찌해야하는가? Access Token을 재발급 받아야한다. 그러나 그때마다 사용자에게 다시 로그인을 하여 Access Token을 발급받아라~ 하기에는 무리가 있다. 주변을 보아도 아무리 오랜 시간 로그인을 유지하면서 지속적으로 사이트를 사용하여.. Program/Spring Framework 3년 전
[SpringFrameWork] @RestControllerAdvice를 사용해보자 직전에 진행했던 프로젝트에서는 예외 처리를 할 때 try-catch를 이용해서 했었다. 그러다보니 자연스럽게 코드 라인이 길어지고 가독성도 떨어졌었다. 또 복잡하게 보이는 코드 때문에 생산성이 떨어지는 느낌을 많이 받았고, 중복되는 부분이 너무 많았다!! 이 부분에 대해서 불만이 많았고 어떻게 하면 가독성을 좋게 만들 수 있을까? 라는 고민과 함께 @ControllerAdvice를 발견했다. @ControllerAdvice 를 사용해서 예외 처리를 해보자!! @ControllerAdvice? @ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들에 AOP를 적용해 Controller 단에 적용하기 위해 고안된 어노테이션이라고 한다. 클래스에 선언하면 되며.. Program/Spring Framework 3년 전
[Spring Security] 스프링시큐리티 시작하기 /기본세팅 💡 스프링 시큐리티 시작하기(기본세팅) 1. dependency 추가 org.springframework.security spring-security-web 4.2.2.RELEASE org.springframework.security spring-security-config 4.2.2.RELEASE dependencies { compile 'org.springframework.security:spring-security-web:4.2.2.RELEASE' compile 'org.springframework.security:spring-security-config:4.2.2.RELEASE' } 버전은 사용하는 프로젝트에 맞게 바꿔주시면 됩니다. 2. Java Configuration WebSecurityCo.. Program/Spring Framework 3년 전
[Spring] Interceptor Controller의 Handler를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터 왜 사용하는가? 특정 Controller의 핸들러가 실행 되기전이나 후에 추가적인 작업을 할 때 인터셉터를 사용함. ex)로그인체크, 권한체크 등 servlet-context.xml에 설정하면 스프링에서 일괄적으로 해당 url경로의 핸들러에 인터셉터를 적용함 사용자는 서버에 자신이 원하는 작업을 요청하기 위해 url을 통해 Request 객체를 보냄 DispatcherServlet은 해당 Request 객체를 받아 HandlerMapping 에게 사용자의 요청을 처리할 핸들러를 찾도록 요청 핸들러 실행체(HandlerExecutonChanin)이 동작함. 이 실행체인은 하나이상의 핸들러 인터셉터.. Program/Spring Framework 3년 전
[Spring] @Transactional 테스트할때 사용할 수 있음 어노테이션방식으로 @Transactional을 메소드, 클래스, 인터페이스 위에 추가하여 사용함. 이걸 선언적 트랜잭션이라 하며, 프록시 객체가 생성되어 자동으로 commit또는 rolback을 진행함. @Transactional public void addUser(UserDTO dto) throws Exception{ . . . } @Transactional 옵션 isolation 트랜잭션에서 일관성 없는 데이터 허용 수준을 설정함 propagation 트랜잭션 동작 도중 다른 트랜잭션을 호출 할 때 어떻게 할 지 지정함 noRollbackFor 특정 예외 발생 시 rollback하지 않음. rollbackFor 특정 예외 발생 시 rollback 함 timeout 지정한 시.. Program/Spring Framework 3년 전
[SpringBoot] @Controller VS @RestController @RestController vs @Controller @Controller 로 View 반환하기 Client는 URI 형식으로 웹 서비스에 요청을 보냄 DispatcherServlet이 요청을 위임할 HandlerMapping을 찾음 HandlerMapping을 통해 요청을 Controller로 위임한 Controller는 요청을 처리한 후에 ViewName을 반환 DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환 Controller가 반환환 뷰의 이름으로부터 View를 렌더링하기 위해서는 ViewResolver가 사용되며, ViewResolver 설정에 맞게 View를 찾아 렌더링함 Controller로 Data 반환 Sprin.. Program/Spring Framework 3년 전
[SPRING]스프링(Spring)에서 자주 사용하는 Annotation 개념 및 예제 정리 1. Annotation이란? Spring에서는 Annotation을 많이 사용합니다. Annotation의 역할은 아래와 같습니다. 관련 설명은 스프링 빈(Spring Bean)이란? 개념 정리 링크를 참조해주세요. JAVA에서 Annotation 이라는 기능이 있습니다. 사전상으로는 주석의 의미이지만 Java 에서는 주석 이상의 기능을 가지고 있습니다. Annotation은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종입니다. 소스코드에 추가하면 단순 주석의 기능을 하는 것이 아니라 특별한 기능을 사용할 수 있습니다. Annotation은 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할을 합니다. Annotation을 활용하여 Spring Framework는 해당 클래스가 어떤 .. Program/Spring Framework 3년 전
[Spring Boot] 스프링 부트에서 테스트 코드 작성하기 단위 테스트 작성 코드 이점 단위 테스트는 개발단계 초기에 문제를 발견하게 도와줍니다. 단위 테스트는 개발자가 나중에 코드를 리펙토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있습니다. 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있습니다. 단위 테스트는 시스템에 대한 실제 문서를 제공합니다. 즉, 단위 테스트 자체가 문서로 사용할 수 있습니다. 단위 테스트 배우기전 기존 개발 방식 코드를 작성 프로그램(Tomcat)을 실행한 뒤 Postman 과 같은 API 테스트 도구로 HTTP 요청하고 요청 결과를 System.out.println() 으로 눈으로 검증 결과가 다르면 다시 프로그램(Tomcat)을 중지하고 코드를 수정 코드를 수정할때마다 2~5번을 반복해야 .. Program/Spring Framework 5년 전
[다시 하는 Spring 게시판만들기]1일차 Spring 이란? 1. 스프링의 이해 1.1) 스프링 정의 - 간단히 스프링이라 지칭하지만 정확하게는 스프링 프레임워크 (Spring Framework) 라고 하는 것이 정확한 표현.' * 자바(JAVA) 플랫폼을 위한 오픈소스(Open Source) 애플리케이션 프레임워크(Framework) * 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 * 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구 * 자바로 된 프레임워크로 자바SE로 된 자바 객체(POJO)를 자바EE에 의존적이지 않게 연결해주는 역할. - POJO 란 Plain Old Java Object 의 약자로 특별한 뜻을 담고 있는 용어는 아니며, 단순히 평범한 자바빈즈(Javabeans) 객체를 의미함. -.. Program/Spring Framework 9년 전