본문 바로가기

Spring

(13)
AOP란? (Spring AOP) AOP= 'Aspect Oriented Programming' (=관점 지향 프로그래밍) 핵심 비지니스 로직과 공통 모듈을 분리하는 것 AOP는 OOP를 대신하는 새로운 개념이 아니라, OOP를 더욱 OOP답게 사용할 수 있도록 도와주는 보조자이다. 다음과 같이 로그나 권한체크, 보안, 트랜잭션 등 핵심 비지니스 로직은 아니지만 반드시 해야되는 작업은 반복되야 하는데, 이러한 문제를 해결해주는 것이 AOP 이다. 관련 용어 - Target : 부가기능을 부여할 대상, 핵심 기능을 담당하는 Service - Aspect : 부가기능 모듈 : Advice + PointCut가 포함 - Advice : 실질적으로 부가될 기능을 정의되어있는 구현체 다시 말하면 Advice는 Aspect가 무엇을 언제할지를 정의..
SpringBatch Batch Application 이란? 사용자의 개입없이 원하는 동작을 '일괄적으로 처리'한다는 의미이다. 매일 전날의 데이터를 집계해야 하는 상황을 위하여 API를 구성한다면 방대한 양의 데이터를 읽고 가공한다면 해당 서버는 순식간에 CPU, I/O 등의 자원을 다 소비하여 Request를 받지 못하는 현상이 발생 5만번째에서 실패했다면 처음부터 다시 시작 누군가 이미 집계함수를 실행하여 집계함수를 2번 실행 위와 같은 문제 해결을 위해 한번에 대용량의 데이터를 처리하는 어플리케이션을배치 어플리케이션이라고한다. 배치 어플리케이션의 조건 대용량 데이터 - 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리 가능해야 함. 자동화 - 심각한 문제 해결을 제외하고는 사용자 개입 없이 실행되어야 함. ..
Spring Security Spring Security란? Spring 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 Spring 기반 애플리케이션의 보안에서는 사실상의 표준 보안의 3요소 1. 접근 주체(Principal) : 보호된 대상에 접근하는 사용자 2. 인증(Authenticate) : 현재 사용자가 누군인지 확인하는 과정, 일반적으로 아이디/암호를 이용해 인증 처리 3. 인가(Authorize) : 현재 사용자가 특정 URL, 기능 등의 접근 권한 여부 검사 1) 인증과 인가 Spring Security는 크게 인증 -> 인가 절차로 진행한다. 이러한 인증과 인가를 위해 Principal _(보호된 대상에 접근하는 사용자)_을 ID로, Credential _(대상에 접근하는 사용자의 비밀번호)_을 비밀번..
Web Server vs Web Application Server 포트폴리오를 작성하면서 Web Server와 Web Application Server (일명 : WAS) 에 대해 완벽히 이해하지 못한 것 같아 작성하는 포스트이다. 프로젝트 진행 시, Web Server는 Apache, Nginx를 사용했으며 WAS는 Tomcat을 사용하였다. (2021-04-05 추가 : Tomcat은 WAS라기 보단 Servlet Container에 가깝다고 한다. 왜냐하면, EJB와 같은 기능을 제공하지 않기 때문이다.) (2021-04-05 추가2: WAS는 사실, Web Server + Web Container(=Servlet Container) 이다.) 《 EJB : Enterprise JavaBeans, 자바로 서버 측 비지니스 로직을 작성하기 위한 서버측 컴포넌트 모델 ..
Spring MVC 패턴을 이용한 Java 웹크롤러 Spring MVC패턴을 이용한 웹크롤러가 찾아봐도 잘 나오지 않아, 기록할겸 퍼뜨릴겸 남겨두는 게시글입니다. 해당코드는 뉴스제목 그리고, 각 네이버뉴스의 링크를 크롤링하며, Controller단에서 모든 크롤링을 처리한 후에 배열을 넘겨 줍니다. *뉴스기사는 상업적으로 이용하지 않습니다. 1. pom.xml 1 2 3 4 5 6 org.jsoup jsoup 1.13.1 Colored by Color Scripter cs spring에서 crawler를 사용하고 싶으시다면, 해당 코드를 pom.xml에 넣어주셔야합니다. 2. Controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..