Spring
-
Spring Security 보안설정방법 Spring Security에서는 권한 (authority) 혹은 역할 (role)을 표현할 때 일반적으로 "ROLE_" 접두어를 사용하는 것을 참조 1) XML 방식 ① XML 방식의 특징 ● 장점 선언적 설정 : 선언적이므로 어플리케이션의 흐름에 대한 세부적인 제어 없이도 보안 설정을 할 수 있습니다. 분리성 : Java 코드와 완전히 분리되어 있으므로, 보안 설정 변경이 프로그램 로직에 영향을 미치지 않습니다. 설정 변경 용이 : XML파일은 코드의 컴파일 없이 수정이 가능합니다. ● 단점 떨어지는 가독성 타입의 안정성이 없어, 실행시에만 오타 및 잘못된 값을 발견할 수 있습니다. → 오래된 방식으로 Spring Security 5 이전의 버전에서 주로 사용..
[Spring] Spring Security (Part.2) 보안설정방법(XML, Java Config, Annotation)Spring Security 보안설정방법 Spring Security에서는 권한 (authority) 혹은 역할 (role)을 표현할 때 일반적으로 "ROLE_" 접두어를 사용하는 것을 참조 1) XML 방식 ① XML 방식의 특징 ● 장점 선언적 설정 : 선언적이므로 어플리케이션의 흐름에 대한 세부적인 제어 없이도 보안 설정을 할 수 있습니다. 분리성 : Java 코드와 완전히 분리되어 있으므로, 보안 설정 변경이 프로그램 로직에 영향을 미치지 않습니다. 설정 변경 용이 : XML파일은 코드의 컴파일 없이 수정이 가능합니다. ● 단점 떨어지는 가독성 타입의 안정성이 없어, 실행시에만 오타 및 잘못된 값을 발견할 수 있습니다. → 오래된 방식으로 Spring Security 5 이전의 버전에서 주로 사용..
2023.07.26 -
Spring Security 1) 소개 ① Spring Security의 개념 Spring 기반의 애플리케이션에서 보안과 인증에 관련된 작업을 쉽게 처리할 수 있도록 도와주는 강력한 보안 프레임워크 ② Spring Security의 역할 ● 보안강화 인증되지 않은 사용자로부터 애플리케이션을 보호 → 로그인이 필요할 경우, 인증을 거쳐야 접근할 수 있도록하여 데이터 유출, 남용 등으로부터 보호 ● 인증 및 권한 부여 사용자가 제공한 자격증명(아이디 및 비밀번호)으로 신원을 확인하여 자격을 인증합니다.사용자가 인증되면 그에 맞는 권한을 부여합니다.인증방식은 폼 로그인, 소셜 로그인(OAuth), 기업용 로그인(SAML) 등 다양하게 지원합니다. ● 안티 패턴 방어 CSRF(Cross-Site Request ..
[Spring] Spring Security (Part.1) - 개념, 인증(Authentication), 권한 부여(Authorization)에 대한 설명 및 작동순서Spring Security 1) 소개 ① Spring Security의 개념 Spring 기반의 애플리케이션에서 보안과 인증에 관련된 작업을 쉽게 처리할 수 있도록 도와주는 강력한 보안 프레임워크 ② Spring Security의 역할 ● 보안강화 인증되지 않은 사용자로부터 애플리케이션을 보호 → 로그인이 필요할 경우, 인증을 거쳐야 접근할 수 있도록하여 데이터 유출, 남용 등으로부터 보호 ● 인증 및 권한 부여 사용자가 제공한 자격증명(아이디 및 비밀번호)으로 신원을 확인하여 자격을 인증합니다.사용자가 인증되면 그에 맞는 권한을 부여합니다.인증방식은 폼 로그인, 소셜 로그인(OAuth), 기업용 로그인(SAML) 등 다양하게 지원합니다. ● 안티 패턴 방어 CSRF(Cross-Site Request ..
2023.07.25 -
SpringBoot + Slack 1. Slack Bot 생성하기 https://api.slack.com/ Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 사이트에 접속하여 'Your apps'를 클릭합니다. 'Create an App'을 클릭합니다. 'From scratch'를 클릭합니다. App Name에는 사용할 Bot의 이름을 입력해주고 사용할 Workspace를 선택해줍니다. 그 후 'Create App' 버튼을 눌러줍니다. (저는 Test라는 이름으로 만들겠습니다.) Basic Information - Building Apps for Slack에서 하단에 'Bots' 버튼을 눌러..
[Spring] Spring Scheduler 이용하여 Slack 자동 알림 구현하기 (Slack 연동)SpringBoot + Slack 1. Slack Bot 생성하기 https://api.slack.com/ Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 사이트에 접속하여 'Your apps'를 클릭합니다. 'Create an App'을 클릭합니다. 'From scratch'를 클릭합니다. App Name에는 사용할 Bot의 이름을 입력해주고 사용할 Workspace를 선택해줍니다. 그 후 'Create App' 버튼을 눌러줍니다. (저는 Test라는 이름으로 만들겠습니다.) Basic Information - Building Apps for Slack에서 하단에 'Bots' 버튼을 눌러..
2023.07.20 -
Scheduler (스케쥴러) 1) Scheduler의 개념과 목적 ● 개념 정해진 시간에 작업을 실행하거나 주기적으로 반복 작업을 수행하는 역할 ● 목적 일정한 시간에 특정 작업을 실행하여 비즈니스 프로세스를 자동화 효율적인 작업 스케줄링과 시간 관리를 가능하게 하는 것 2) Scheduler의 구성요소 ● 작업 (Job) 실행할 작업의 단위로, 스케줄링된 시간에 실행되는 코드 또는 프로세스 ● 트리거 (Trigger) 작업이 실행될 시간을 정의하는 요소 (일정 시간, 주기 또는 특정 조건 등) ● 스케쥴러 (Scheduler) 스케줄링 작업을 관리하고 실행하는 주체입니다. 트리거된 작업을 실행하며, 작업의 예약, 중지, 수정 등을 관리합니다. 3) 주요 Scheduler ① Spring Schedul..
[Spring] Batch와 SchedulerScheduler (스케쥴러) 1) Scheduler의 개념과 목적 ● 개념 정해진 시간에 작업을 실행하거나 주기적으로 반복 작업을 수행하는 역할 ● 목적 일정한 시간에 특정 작업을 실행하여 비즈니스 프로세스를 자동화 효율적인 작업 스케줄링과 시간 관리를 가능하게 하는 것 2) Scheduler의 구성요소 ● 작업 (Job) 실행할 작업의 단위로, 스케줄링된 시간에 실행되는 코드 또는 프로세스 ● 트리거 (Trigger) 작업이 실행될 시간을 정의하는 요소 (일정 시간, 주기 또는 특정 조건 등) ● 스케쥴러 (Scheduler) 스케줄링 작업을 관리하고 실행하는 주체입니다. 트리거된 작업을 실행하며, 작업의 예약, 중지, 수정 등을 관리합니다. 3) 주요 Scheduler ① Spring Schedul..
2023.07.19 -
Pageable 1) Pageable의 개념 Pageable은 데이터를 페이지 단위로 검색하고 제어하는 인터페이스 페이지 번호, 페이지 크기, 정렬 기준 설정을 통해 원하는 페이지의 데이터를 가져옵니다. 스프링 프레임워크에서 주로 사용되며, JPA와 함께 자주 활용됩니다. 2) Pagealbe 인터페이스 메소드 ● getPageNumber() : 현재 페이지 번호 가져오기 ● getPageSize() : 페이지 크기(한 페이지에 포함될 항목의 수) 가져오기 ● getOffset() : 페이지의 시작 항목 인덱스 가져오기 ● getSort() : 정렬 기준 가져오기 (Sort 객체를 사용하여 속성과 정렬 방향을 지정할 수 있음) ● next() : 다음 페이지의 Pageable 생성 ● previousOr..
[Spring] Pageable과 PageRequest 개념과 비교Pageable 1) Pageable의 개념 Pageable은 데이터를 페이지 단위로 검색하고 제어하는 인터페이스 페이지 번호, 페이지 크기, 정렬 기준 설정을 통해 원하는 페이지의 데이터를 가져옵니다. 스프링 프레임워크에서 주로 사용되며, JPA와 함께 자주 활용됩니다. 2) Pagealbe 인터페이스 메소드 ● getPageNumber() : 현재 페이지 번호 가져오기 ● getPageSize() : 페이지 크기(한 페이지에 포함될 항목의 수) 가져오기 ● getOffset() : 페이지의 시작 항목 인덱스 가져오기 ● getSort() : 정렬 기준 가져오기 (Sort 객체를 사용하여 속성과 정렬 방향을 지정할 수 있음) ● next() : 다음 페이지의 Pageable 생성 ● previousOr..
2023.07.19 -
MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
[Spring] Spring MVC 구조MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
2023.06.30 -
Spring Contrainer & Bean 1) 스프링 컨테이너의 개념 스프링 프레임워크에서 객체(Bean)를 생성, 배포, 관리하기위해 커다란 박스를 만드는데 그것을 스프링 컨테이너라고 합니다. 2) Bean의 개념 스프링 프레임워크에서 관리되는 객체를 의미합니다. Bean은 크게 두가지로 나눌 수 있다. 일반적인 Java 클래스로서 특정한 인터페이스를 구현하거나 클래스를 상속받을 필요가 없습니다. 스프링에서는 POJO 클래스를 Bean으로 인식하고 스프링 컨테이너에 등록할 수 있습니다. 메타데이터는 XML, Annotation 또는 JavaConfig 형식으로 작성될 수 있습니다. 메타데이터는 Bean의 속성, 의존성, 라이프사이클 등을 정의하고, 스프링 컨테이너는 해당 메타데이터를 기반으로 Bea..
[Spring] 스프링 컨테이너(Spring Container) & 빈(Bean)Spring Contrainer & Bean 1) 스프링 컨테이너의 개념 스프링 프레임워크에서 객체(Bean)를 생성, 배포, 관리하기위해 커다란 박스를 만드는데 그것을 스프링 컨테이너라고 합니다. 2) Bean의 개념 스프링 프레임워크에서 관리되는 객체를 의미합니다. Bean은 크게 두가지로 나눌 수 있다. 일반적인 Java 클래스로서 특정한 인터페이스를 구현하거나 클래스를 상속받을 필요가 없습니다. 스프링에서는 POJO 클래스를 Bean으로 인식하고 스프링 컨테이너에 등록할 수 있습니다. 메타데이터는 XML, Annotation 또는 JavaConfig 형식으로 작성될 수 있습니다. 메타데이터는 Bean의 속성, 의존성, 라이프사이클 등을 정의하고, 스프링 컨테이너는 해당 메타데이터를 기반으로 Bea..
2023.06.29 -
의존성 역전 1) 의존성 역전(IoC, Inversion of Control)의 개념 소프트웨어 개발에서 컴퓨터 프로그램의 제어 흐름을 역전시키는 개념 일반적으로 프로그램의 제어 흐름은 개발자가 코드를 작성하여 결정하게 됩니다. 그러나 IOC에서는 제어 흐름의 결정 권한을 프레임워크나 컨테이너에 위임하고, 개발자는 이를 따르는 방식으로 개발을 진행합니다. "상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다."라는 개념 즉, 상위 수준 모듈은 하위 수준 모듈에 직접 의존하는 대신, 추상화된 인터페이스나 추상 클래스와 같은 추상화 계층에 의존해야 합니다. 2) 의존성 역전의 예시 public class Pikachu { public void attack() { // 피..
[Spring] 의존성 역전 (IoC, Inversion of Control)의존성 역전 1) 의존성 역전(IoC, Inversion of Control)의 개념 소프트웨어 개발에서 컴퓨터 프로그램의 제어 흐름을 역전시키는 개념 일반적으로 프로그램의 제어 흐름은 개발자가 코드를 작성하여 결정하게 됩니다. 그러나 IOC에서는 제어 흐름의 결정 권한을 프레임워크나 컨테이너에 위임하고, 개발자는 이를 따르는 방식으로 개발을 진행합니다. "상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다."라는 개념 즉, 상위 수준 모듈은 하위 수준 모듈에 직접 의존하는 대신, 추상화된 인터페이스나 추상 클래스와 같은 추상화 계층에 의존해야 합니다. 2) 의존성 역전의 예시 public class Pikachu { public void attack() { // 피..
2023.06.28