스프링 14

ORM이란?

어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미한다 - java의 데이트 클래스와 관계형 데이터베이스의 테이블을 매핑 객제치향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약 사항을 해결해주는 역할 수행 대표적으로 JPA, Hibernate등이 있음 ORM의 장점 1. SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있다 2. 재사용 및 유지보수가 편리하다 3. DBMS에 대한 종속성이 줄어듬 ORM의 단점 1. 복잡성이 커질 경우 ORM만으로 구현하기 어려움 - 직접 쿼리를 구현하지않아 복잡한 설계가 어렵다 2. 대형 쿼리는 별도의 튜닝이 필요할 수 있음 JPA란? JPA는 Java Persistance API의 줄임말이며, ORM과 관련된 인터페이스의 ..

Spring-Boot 2023.10.25

OAuth란?

OAuth는 제3의 서비스에 계정 관리를 맡기는 방식이다. 흔히 볼 수 있는 네이버로 로그인하기, 구글로 로그인하기 같은 방법이다. OAuth를 사용하면 인증 서버에서 발급받은 토큰을 사용해서 리소스 서버에 리소스 오너의 정보를 요청하고 응답받아 사용할수 있다. 리소스 오너 정보를 취득할 수 있는 방법은 4가지가 있다. 종류(type) 설명(description) 권한 부여 코드 승인 타입(Authorization Code Grant) OAuth 2.0에서 가장 잘 알려진 인증밥법. 클라리언트가 리소스에 접근하는 데 사용하며, 권한에 접근할 수 있는 코드와 리소스 오너에 대한 액세스 토큰을 발급받는 방식 암시적 승인 타입(Implicit Grant) 서버가 없는 자바스크립트 웹 애플리케이션 클라이언트에서..

Spring-Boot 2023.07.27

스프링 시큐리티(Spring Security)

스프링 시큐리티란? 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링 하위 프레임워크이다. 인증과 인가 인증(Authentication)은 사용자의 신원을 입증하는 과정이다. 예를 들어 사용자가 사이트에 로그인을 할 때 누구인지 확인하는 과정을 인증이라고 한다. 인가(Authorization)는 인증과는 다르다. 인가는 사이트의 특정 부분에 접근할 수 있는지에 권한을 확인하는 작업이다. 예를 들어 관리자는 관리자 페이지에 들어갈 수 있지만 일반 사용자는 관리자 페이지에 들어갈 수 없다. 이런 권한을 확인하는 과정을 인가라고 한다. 인증과 인가 관련 코드를 아무런 도구의 도움 없이 작성하려면 굉장히 많은 시간이 필요하다. 스프링 시큐리티를 사용하면 아주 쉽게 처리를 할 수 있다. 스프..

Spring-Boot 2023.07.15

스프링 부트란?

스프링 부트? 스프링? 스프링을 더 쉽게 만들어주는 스프링 부트! 스프링은 장점이 많은 도구이지만 설정이 매우 복잡하다는 단점이 있다. 스프링 개발팀에서도 이런 단점을 인식하고 단점을 보완하고자 스프링 부트를 출시했다. 의존성세트라고 불리는 스타터를 사용하여 간편하게 의존성을 사용하거나 만들어주는 도구이다. 스프링부트의 주요 특징 톰캣, 제티, 언더토우 같은 웹 어플리케이션 서버(web application server, WAS)가 내장되어 있어서 따로 설치를 하지 않아도 독립적으로 실행할 수 있다. 빌드 구성을 단순화하는 스프링 부트 스타터를 제공한다. XML 설정을 하지않고 자바 코드만으로 모두 작성할 수 있다. JAR를 이용해서 자바 옵션만으로도 배포가 가능하다 스프링 스프링 부트 목적 엔터프라이즈..

Spring-Boot 2023.07.08