본문 바로가기

Programming/[Spring]

(10)
[Spring Boot] Spring Initializr Option Spring Boot Version - SNAPSHOT : 아직 개발단계라는 의미 - GA (General Availability) - 테스트가 완료된 정식 릴리즈 버전으로 안정적으로 운영되어야 하는 프로젝트에서 사용 - RC (Release Candidate) - 베타 버전이다. 정식 릴리즈 버전은 아니므로 기능은 픽스되었으나, 안정적 동작은 보장할 수없다. - M (Milestone) - 테스트 버전이다. 아직 기능이 픽스되지 않아 구현될 때 마다 테스트 버전이 릴리즈 될 수 있다. Dependencies Spring Boot Dev Tools - Property Defaults : 개발 시점과 배포 시점에 다른 설정을 기본적으로 개발 단계에 맞춰 설정 - Automatic Restart : 파일 수..
[Spring] Spring Security 1. Spring Security의 의의 - Spring Security는 Spring 기반의 application의 보안(인증과 권한, 인가 등)을 담당하는 Spring 하위 Framework - '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리 - Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Disapatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있다. - 보안과 관련하여 체계적으로 많은 옵션 제공 2. Spring Security Architecture 3. Authorization (인증)과 Authentication (인가) - Authorization (인증) :..
[Spring] 자주 나오는 면접 질문 자바, 스프링 면접 질문 1. OOP가 뭐죠? 2. 자바의 메모리 영역에 대해서 설명해보세요. 3. 인터페이스가 뭐죠? 왜 사용하나요? 4. 메모리 상수풀 영역에 대해 설명해보세요. 5. jdbc가 무엇인가요? 6. 직렬화란 무엇인가요 ? 7. serialVersionUID를 선언해야 하는 이유는 뭔가요? 8. 리플렉션이란 무엇인가요? 9. 자바의 클래스 멤버 변수 초기화 순서에 대해 설명하세요 10. Servlet과 JSP를 비교해서 설명하세요 11. 제너릭이 무엇인가요? 12. 컬렉션 클래스에서 제너릭을 사용하는 이유를 설명하세요 13. pojo가 무엇인가요? 14. 박싱과 언박싱에 대해 설명하세요 15. 데드락이 무엇이고, 해결방법에 대해 설명해보세요 16. 상속과 컴포지션(합성)의 차이에 대해서 ..
[Spring] Spring MVC Spring MVC - Client가 Server에 어떠한 요청을 한다면 스프링에서 제공하는 DispatcherServlet이라는 클래스(front controller)가 요청을 가로챔 - 요청을 가로챈 DispatcherServlet은 HandlerMapping(URL 분석 등)에게 어떤 컨트롤러에게 요청할지 물어봄(servlet-context.xml에서 @Controller로 등록한 것들을 스캔해서 찾아줌) - 요청에 매핑된 컨트롤러가 있다면 @RequestMapping을 통해 요청을 처리할 메서드에 도달 - 컨트롤러에서는 해당 요청을 처리할 Service를 주입(DI)받아 비즈니스 로직을 Service에게 위임 - Service에서는 요청에 필요한 작업 대부분을 담당하며 데이터베이스에 접근이 필요하..
[Spring] Maven Maven 라이브러리들을 활용해서 개발을 할때 관리하기 힘들어지는 문제를 해결 전체적인 라이프 사이클을 관리하는 도구 Android Studio - Gradle, Spring-Maven이 대표적 장점 - 라이브러리 관리 용이 - 프로젝트의 작성부터 컴파일, 페트스 등 프로젝트 라이프 사이클에 포함되는 각 테스트를 지원 - war파일 기반의 배포용으로 자주 사용 LifeCycle - Maven build : 메이븐 빌드 실행 - Maven build... : 새로운 사용자 빌드 생성 - Maven clean : target에 지정된 모든 소스 삭제 - Maven generate-sources : 컴파일 과정에 포함될 소스 생성 - Maven install : Local Repository에 패키지 복사 표..
[Spring] Springboot Spring Boot 의의 - 스프링 부트는 실행하기만 하면 되는 상용화 가능한 수준의 스프링 기반 애플리케이션을 쉽게 만들어 냄(기본 설정 되어 있는 설정을 기반으로 빠르게 개발할 수 있도록 해주는 개발플랫) - 최소한의 설정으로 스프링 플랫폼과 써드파티 라이브러리들을 사용할 수 있도록 함 기능 - 단독 실행 가능한 스프링 애플리케이션을 생성 - 톰캣, 제티, 혹은 언더토우를 내장 - 기본 설정 되어 있는 'starter' 컴포넌트들을 쉽게 추가 - 가능한한 자동설정 됨 - 사용화에 필요한 통계, 상태 점검 및 외부설정 제공 - 설정을 위한 XML 코드를 생성하거나 요구하지 않음 가이드 → 네트워크 연결, Maven or Gradle 플러그인이 IDE에 설치 Ο http://start.spring.io..
[Spring] 스프링 어드바이스 종류(Spring Advice) Before Advice - target의 메소드 호출 전에 적용 After returning - target의 메소드 호출 이후에 적용 After throwing - target의 예외 발생 후 적용 After - target의 메소드 호출 후 예외의 발생에 관계없이 적용 Around - target의 메소드 호출 이전과 이후 모두 적용 (가장 많이 사용됨)
[Spring] 스프링 빈 스코프(Spring Bean Scope) Spring Bean Scope 스프링에서 Bean으로 지정된 객체는 기본적으로 싱글톤 객체로 관리된다. 하지만 요구사항 과 구현기능 등의 필요에 따라서 비싱글톤이 필요한 경우도 많다. 스프링에서는 이를 명시적으로 구분하기 위해서 scope라는 키워드를 제공한다. 빈 스코프(scope) 별도의 scope를 지정하지 않으면 스프링에서 default는 singleton 이다.singleton : 기본 싱글톤 스코프prototype : 어플리케이션에서 요청시 (getBean()) 마다 스프링이 새 인스턴스를 생성request : HTTP 요청별로 인스턴스화 되며 요청이 끝나면 소멸 (spring mvc webapplication 용도)session : HTTP 세션별로 인스턴스화되며 세션이 끝나며 소멸 (sp..