2019/05

※ 모든 REST API보안관련된 내용은 거의 내용이 비슷하다고 봐도 무방할정도로 조대협님의 블로그를 참고하였다. 쉽고 자세하게 설명이되 있어서 .. 블로그 구독을 눌렀다. (조대협님의 블로그) 근래에 대부분의 서비스 시스템들은 API를 기반으로 통신을 한다. 보안에 관하여 알아보자. REST API 보안 관점 크게 아래와 같은 5가지 형태로 나눠진다. 1. 인증(Authentication) 누가 서비스를 사용하는지를 확인하는 절차이다. 우리가 네이버나 구글에 아이디와 비밀번호를 넣어서, 사용자를 확인하는 과정을 인증이라 할 수 있다. API도 마찬가지로 API를 호출하는 대상을 확인하는 절차가 필요하고 이를 API 인증이라 한다. 2. 인가(Authorization) 인가는 해당 리소스에 대해서, 사용..
HTTP/1.0, HTTP/1.1 의 차이 HTTP/2.0, HTTP/3.0 에 대해 알아보기 암호알고리즘 정리 (비대칭, 대칭) 대칭 암호알고리즘 블록암호화 스트림암호화
REST API 디자인 가이드 URI는 정보의 자원을 표현해야 한다. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 중심 규칙 사용자 추가, 삭제, 수정을 하는 REST API를 설계해보자. URI는 정보의 자원을 표현해야 한다. (리소스는 명사를 선호) GET /members/delete/1아이디가 1인 계정을 삭제하라는 뜻 같다. 이것은 REST 할까? REST하지 않다. URI는 자원을 표현하는데 중점을 두어야 하며, delete같은 행위에 대한 표현이 들어가면 안된다. 위의 URI는 아래와 같이 수정할 수 있다. DELETE /members/1HTTP Method 그렇다면 회원을 추가하거나 정보를 조회하는 것을 설계해 보자. 회원정보 조회 GET ..
[들어가기전] REST API라고하면, 데이터를 json으로 주고받고 행위에 맞게 HTTP Method를 셋팅해주는 것으로만 알고 있었다.(동영상 보기전까지) 몇 달전에 스프링을 이용한 RESTful 웹 서비스 구축하기 책을 보며 프로젝트를 따라해보았는데, 책의 마지막부분 쯤에 HATEOAS라는 부분이 있었다. spring에서 제공해주는 것인데 링크를 만들어주는 라이브러리 였다. REST API 구축하는데 이게 왜 들어가있지라는 궁금증을 갖긴 했었는데 이 동영상을 보고나니 그 궁금증이 풀렸다. 결론적으로 말하자면, 우리가 얇게 알고 만들었던 REST한 API는 사실 REST API가 아닐지도 모른다. 그저 HTTP API라고 불러야 하며 REST API는 여러가지 제약조건을 만족시켜야 한다. REST R..
HTTP(HyperText Transfer Protocol) WWW(웹)상에서 정보를 주고받을 수 있는 프로토콜 이다. 주로 HTML 문서를 주고 받는데 쓰이며, TCP UDP 80포트를 사용한다. HTTP/1.0(1996년), HTTP/1.1(1999년)에 발표되었다. Client server 우리는 웹개발을 위해 HTTP Message를 이해할 필요가 있다. 작년에 개인프로젝트로 web-application 서버를 직접 구현하면서 HTTP 스펙 지식에 대한 필요성을 느꼈었는데 까먹고있었는데, 오늘 Rest 관련 동영상을 보게되어 HTTP Message에 대해 정리를 당장 하기로 하였다. HTTP Message Format 형식 (Request Message & Response Message ) HTT..
MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘이다. 웹에서 파일의 확장자는 별 의미가 없다. 그러므로, 각 문서와 함께 올바른 MIME 타입을 전송하도록, 서버가 정확히 설정하는 것이 중요함. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용 문법 일반적인 구조 type/subtype / 로 구분된 두 개의 문자열인 타입과 서브타입으로 구성되며 스페이스는 허용하지 않는다. 개별 타입 특정 서브타입이 없는 텍스트 문서들에 대해서는 text/plain 이 사용되어야함. 특정 혹은 알려진 서브타입이 없는 이진 문서에 대해서는 application/octect-stream 을 사용해야함 멀티 파트 타입 multipart/..
템플릿 메서드 패턴(Template Method Pattern)은 알고리즘의 일부 또는 전부를 하위 클래스에서 구현하거나 위임하는 데 사용한다. 공통으로 사용하는 알고리즘은 부모에서 정의한 후, 특정 부분에서 사용하는 알고리즘은 하위 클래스에서 수행하도록 설계하는 것이다. 하위 Stack 클래스는 LinkedList를 사용하여 구현했으며, Stack과 같은 역할을 한다.(LIFO, Last In First Out) 이 Stack 클래스에는 filter 메소드가 존재하며, StackPredicate라는 인터페이스의 isValid를 사용하여 원하는 값만 스택에 담아 반환한다. public class Stack { private final LinkedList stack; public Stack(){ this...
매직 넘버는 상수로 관리하기 테스트케이스를 클래스별로 잘게 쪼개서 작성하기 패키지를 알아보기 쉽게 나누기 코딩 컨벤션이 일관되게 작업하기
기존에 존재하던 테이블의 데이터 채번룰이 변경되었다. 그래서 기존의 데이터들을 수정하려하니 FK 관련 오류를 맞닥드렸다. 처음에는 구글링을 하여 TRIGGER를 사용하여 수정을 하던 중 2019/05/08 - [Life/Today I Learned] - [오라클]oracle update cacade (FK 걸려있는 컬럼 업데이트) 불가능한 녀석들이 있었는데, 왜냐하면 FK 제약조건들이 얽히고 섥혀있어서 여러 테이블에 걸려있었기 때문이다. 그래서 고민하다가 해결책으로 생각한 것이 CONSTRAINT 제약 조건을 잠시 DISABLE시키는 것이였다. 걸려있는데 제약조건들을 모두 DISABLE시켜서 데이터를 수정한 후 ENABLE 시켰다. 2019/05/08 - [Life/Today I Learned] - [오..
오라클에서는 제약 조건을 삭제하지 않고 비활성화하여 사용을 잠시 보류할 수 있도록 해주는 DISABLE CONSTRAINT와 이렇게 비활성화된 제약 조건을 다시 활성화 상태로 만들어 주는 ENABLE CONSTRAINT를 제공한다. DISABLE CONSTRAINT : 제약조건 일시 비활성화 ENABLE CONSTRAINT : 비활성화된 제약조건을 해제하여 다시 활성화 형식 ALTER TABLE table_name DISABLE [CONSTRAINT constraint_name]; 특별한 업무를 수행하는 과정에서 이러한 제역 조건 때문에 작업이 진행을 못하는 경우에 제약 조건을 비활성화하여 작업을 진행할 수 있다.
깡냉쓰
'2019/05 글 목록