
Spring Security 동작 과정 현재 대부분의 시스템에서는 회원 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. 이를 위해 Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능을 제공하고 있다. Spring Security란? Spring Security : Spring 기반의 애플리케이션의 보안(인증, 인가)을 담당하는 스프링 하위 프레임워크 # 인증과 인가 인증(Authentication) : 해당 사용자가 본인이 맞는 지 인증하는 절차 인가(Authorization) : 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차 Spring Security는 기본적으로 인증 절차를..

데이터베이스 제약 조건 제약조건 : 데이터의 무결성을 지키기 위해 입력받은 데이터에 대한 제한을 두는 것 사용자로부터 데이터가 입력된 경우, 제약조건이 설정되어 있다면 검사를 통해 조건을 만족했을 경우 DB에 데이터가 완전히 입력되도록 제약할 수 있다. 모든 제약 조건은 데이터 사전에 저장되며, 보통 테이블 생성 당시에 제약 조건을 명시하지만 생성 후에도 ALTER 명령어를 통해 수정/추가가 가능하다. ALTER TABLE ADD CONSTRAINT ALTER TABLE DROP CONSTRAINT NOT NULL 해당 필드에 NULL 값을 저장할 수 없게 하는 제약조건 Create Table 테이블( 필드명 INT NOT NULL // 해당 필드에는 null 값이 저장되지 않음 ); UNIQUE 중복된..

HTTP MethodHTTP의 멱등성멱등성 : 수학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. 이러한 멱등성의 개념은 HTTP에서도 동일하게 적용된다. HTTP의 멱등성은 '요청의 효과'를 보고 판단한다. 동일한 요청을 한번 보내는 것과, 여러 번 보내는 것이 서로 동일한 효과를 지니면서 서버의 상태도 동일하게 남을 때 해당 HTTP Method가 멱등성을 갖는다고 이야기한다. 멱등성을 따질 때에는 서버의 상태만 바라보면 되며, HTTP 응답 Status는 신경 쓰지 않아도 된다. 정리하자면, 멱등성이 유지되어야 하는 경우 같은 요청을 여러 번 반복하더라도 서버의 상태는 변하지 않아야 한다는 것이 핵심이다. HTTP Method의 멱등성 올..

Spring의 4가지 특징 POJO 프로그래밍 POJO : Plain Old Java Object의 약자로, 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트 # POJO의 조건 특정 규약에 종속되지 않는다. 자바 언어와 꼭 필요한 API 외에는 종속되지 말아야 한다. 특정 규약을 따라 만들게 하는 경우, 대부분 규약에서 제시하는 특정 클래스를 상속하도록 요구한다. 그 경우 자바의 단일 상속 제한으로 인해 더이상 해당 클래스에 객체지향적인 설계 기법을 적용하기 어려워지는 문제가 발생하기 때문이다. 특정 환경에 종속되지 않는다.POJO는 환경에 독립적이여야 한다. 특정 기업의 프레임워크나 서버에서만 동작 가능한 코드이면 안되며, 특히 비지니..

객체 지향의 5가지 설계 원칙 [ SOLID ] SOLID 원칙은 시간이 지나도 유지보수와 확장이 쉬운 소프트웨어를 만들기 위해 사용된다. 다음과 같은 원칙으로 구성되며, 객체 지향의 5가지 설계 원칙으로 불리기도 한다. Single Responsibility Principle(SRP), 단일 책임 원칙 Open-Closed Principle(OCP), 개방-폐쇄 원칙 Liskov Substitution Principle(LSP), 리스코프 치환 원칙 Interface Segregation Principle(ISP), 인터페이스 분리 원칙 Dependency Inversion Principle(DIP), 의존관계 역전 원칙 단일 책임 원칙 클래스는 하나의 책임만 가진다. 이때 책임이란 뭘까? '변경하려는..