본문 바로가기

Spring27

스프링 시큐리티 인증 및 인가 spring security 스프링 시큐리티 스프링 시큐리티는 자바 및 자바 EE 기반의 웹 애플리케이션을 위한 보안 프레임워크로, 주로 인증과 권한 부여 등의 보안 관련 기능을 제공한다. 개발 과정에서 보안은 많은 시간을 필요로 하는 부분 중 하나인데, 스프링 시큐리티를 사용하면 이미 잘 짜여진 로직을 통해 이러한 작업을 보다 쉽고 빠르게 처리할 수 있다. 스프링 시큐리티의 인증(Authentication) , 인가(Authorization)[권한부여] 인증 : 사용자가 자신이 주장하는 사람임을 증명하는 과정 인가(권한 부여) : 인증된 사용자가 특정 자원에 접근할 수 있는지를 결정하는 과정 인증 방식 보통 인증 방식에는 세가지가 있다. 1. credential 방식: username, password를 이용하는 방식 2. 이중 .. 2024. 3. 6.
객체 지향 프로그래밍 객체 지향 프로그래밍객체지향프로그래밍은 컴퓨터 프로그램을 명령어의 시각에서 벗어나 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.객체지향의 특징추상화, 캡슐화, 상속, 다형성 추상화추상이라는 용어의 사전적 의미를 보면 “사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것”이라 정의하고 있다. 여기서 핵심이 되는 개념은 “공통성과 본질을 모아 추출”한다는 것이다. 예를들어, 탈 것이라는 속성의 하위 속성에는 자동차, 배, 비행기 등이 속해있다. 이 하위 속성들의 추상화는 공통 속성인 탈 것이 되는 것이고 반대로 탈 .. 2023. 10. 23.
스프링의 탄생과 하이버네이트 스프링 이전의 EJB(Enterprise Java Beans)엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.EJB의 특징과 단점특징비즈니스 객체들을 관리하는 컨테이너 기술설정에 의한 트랜잭션 기술대규모 분산 객체 시스템을 구축하기 위한 기술단점분산 환경에 맞도록 동작하기 위해서 추가적인 과부하(OverHead)가 많이 발생 -> 속도 저하, 비용 발생인터페이스를 전부 구현해야하고 EJB에 의존적으.. 2023. 10. 23.
Rest template란 무엇인가? 서비스 개발을 진행하다보면 라이브러리 사용만으로는 구현이 힘든 기능들이 무수히 많이 존재한다. 예를 들어 회원가입을 진행할때 사용자의 주소를 받아야한다면? 주소를 검색할 수 있는 기능을 구현해야 하는데 많은 시간과 비용이 들어간다 이때 카카오에서 만든 주소검색 API를 사용한다면 기능을 간편하게 구현할 수 있다. 이럴 때 우리의 서버는 클라이언트의 입장이 되어 카카오 서버에 요청을 진행해야한다. Spring에서는 서버에서 다른 서버로 간편하게 요청할 수 있도록 RestTemplate를 제공하고 있다. RestTemplate의 GET요청 클라이언트용 서버와 서버용 서버 총 두개의 프로젝트를 만들어 직접 요청을 보내고 받아보자. 클라이언트용 서버를 먼저 보자 1. 클라이언트용 서버의 Service에서 Res.. 2023. 6. 21.
같은 타입의 bean이 2개 이상일 때 같은 타입의 bean이 2개 이상이기 때문에 @Autowired를 달아도 다음과 같은 오류가 뜬다 1번째 방법 주입받는 해당 객체의 이름 단순히 food로 두지 않고 을 직접 입력(pizza, chicken)하여 구분한다. 2번째 방법 Bean객체에 @Primary 어노테이션을 붙인다. 같은 타입의 Bean이 여러더라도 우선적으로 @Primary되어있는 bean객체를 주입한다. 3번째 방법 @Qualifier로 호칭을 붙힌다. 여기선 pizza로 두었다. pizza라고 써놓은 해당 bean객체를 test시에 @Qualifier를 붙혀줌으로써 주입받 수 있다. 그러면 @Primary와 @Qualifier중 누가 우선순위가 높을까? 같은타입의 Bean들에 동시에 위 두개의 어노테이션이 사용된다면 @Quali.. 2023. 6. 19.
MVC란 무엇일까? MVC 소프트웨어 디자인 패턴중 하나 소프프트웨어를 구성하는 요소들을 Model View Controller로 구분하여 각각의 역할을 분리하였다. Model은 데이터와 비즈니스 로직을 담당한다. 데이터베이스와 연동을 하거나 데이터를 저장하고 불러오는 등의 작업을 수행한다. View는 사용자 인터페이스를 담당 보는 화면이나 버튼, 폼등을 디자인하고 구현한다. Controller는 Model과 View 사이의 상호작용을 조정하고 제어할 수있다. 사용자의 요청을 입력을 받아 Model에게 저장하고 그 결과로 View를 업데이트 할 수 있다. MVC패턴은 소프트웨어를 구성하는 요소들을 분리함으로써 코드의 재사용성과 유지보수성을 높이고 개발자들간의 협업을 용이하게 한다. Servlet? Java를 이용하여 웹페이.. 2023. 6. 16.