HTTP통신을 Rest설계 규칙을 지켜서 개발한 API
Rest설계 규칙은 URI는 정보의 자원만 표현해야 하며, 자원의 상태와 행위는 HTTP Method에 명시.
GET : 정보 요청
POST : 정보 입력( body )
PUT : 전체 데이터 수정
PATCH : 일부 데이터 수정
DELETE : 정보 삭제.
이는 분산 시스템 간의 통신을 효율적이고 표준화된 방식으로 설계하기 위해 고안된 기술.
라이브러리는 주도권을 개발자가, 프레임워크는 주도권을 프레임워크에 위임(제어의 역전).
Call By Value(값에 의한 호출) = 인자로 받은 값을 복사하여 처리.
: 값을 복하기 때문에 원래 값을 보존할 수 있지만, 복사로 인해서 메모리 사용량이 증가
Call By Reference(참조에 의한 호출) = 인자로 받은 값의 주소를 참조하여 직접 저장해 값에 영향을 줌.
: 직접 참조를 하기에 원래의 값이 영향을 받는다.
JAVA는 "Call By Value" 이다.
도메인이 서로 다른 2개의 사이트가 데이터를 주고 받을 때 발생하는 문제.
따라서 다른 서버의 리소스를 불러오기 위해서는, Response 헤더에 그 출처에서 CORS에 대한 내용을 추가해야 한다.
Access-Control-Allow-Orgin : 요청을 보내는 페이지의 출처 [ *, 도메인 ]
Access-Control-Allow-Methods : 요청을 허용하는 메소드. Default : GET, POST
Access-Control-Max-Age : 클라이언트에서 preflight 요청 (서버의 응답 가능여부에 대한 확인) 결과를 저장할 시간
Access-Control-Allow-Headers : 요청을 허용하는 헤더
실행시에 특정 조건이나 상황에 따라 쿼리 문장이 변경되어 실행되는 쿼리문.
( where절에 조건이 달라질 때 사용 )
사이트 간 요청 위조 : 사용자가 이미 로그인된 상태에서, 특정 웹사이트에 요청을 보내도록 속임.( 공격자가 의도한대로 사용자가 행동하게 한다. )
binary 데이터 -> text로 인코딩
binary 데이터를 텍스트로 변환.
데이터 유실 없이 안전한 인코딩.
원래 데이터보다 33% 증가
단순 변환이므로 보안성이 없음.