Computer Science

팩토리얼의 사전적 정의 팩토리얼(階乘, 문화어: 차례곱, 영어: factorial)은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다. 예시를 들자면 4!은 4 x 3 x 2 x 1이 된다. 이 식을 4 x 3!로 바꿔서 쓸 수도 있다. 다만 1!은 1이 된다. 그 이유는 팩토리얼의 사전적 정의의 '그 수보다 작거나 같은 모든 양의 정수(자연수)의 곱이다.' 부분에서 힌트를 얻을 수 있다. 1보다 작은 양의 정수는 없기 때문에 1! = 1이 되는 것이다. 이 식을 1! = 1 x 0!로 바꿔서 쓸 수 있는데, 위에서 말했듯이 1! = 1이고, 양변의 합은 같아야 하므로 1 x 0! = 1이 되어야 하고, 이는 0..

• 캐시X -데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. -인터넷 네트워크는 매우 느리고 비싸다. -브라우저 로딩 속도가 느리다. -느린 사용자 경험 • 캐시O -캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. -비싼 네트워크 사용량을 줄일 수 있다. -브라우저 로딩 속도가 매우 빠르다. -빠른 사용자 경험 • 캐시 시간 초과 -캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. -이때 다시 네트워크 다운로드가 발생한다. • 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음 -캐시 만료후에도 서버에서 데이터를 변..

• 인증 Authorization 클라이언트 인증 정보를 서버에 전달함. Authorization: Basic xxxxxxxxxxxxxxxx 이런 식으로 나타낸다. WWW-Authenticate 리소스 접근시 필요한 인증 방법에 대한 정의이다. 401 Unauthorized 응답과 함께 사용함.\ • 쿠키 -Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) -Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달(헤더에 포함) • 모든 요청에 정보를 넘기는 문제 -모든 요청에 사용자 정보가 포함되도록 개발 해야함 -브라우저를 완전히 종료하고 다시 열면? • 쿠키 사용처 -사용자 로그인 세션 관리 -광고 정보 트래킹 -쿠키 정보는 항상 서버에 전송됨 -네트워크 트..

• HTTP Header -HTTP 전송에 필요한 모든 부가정보 -예) 메시지바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표현 • Content-Type -표현 데이터의 형식이다. 미디어 타입, 문자 인코딩 ex) text/html; charset=utf-8, application/json, image/png 등 • Content-Encoding -표현 데이터의 압축 방식이다. 표현 데이터를 압축하기 위해 사용하며, 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가,데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제함 • Content-Language -표현 데이터의 자연 언어이다. ex) ko, en, en-US • Content-Length..

상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 클라이언트가 인식할 수 없는 상태 코드를 서버가 반환하는 경우 상위의 상태 코드로 해석해서 처리함 *Redirection: 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) --------..

• 클라이언트 -> 서버 데이터 전달 방식 -쿼리 파라미터를 통한 데이터 전송: GET(정적, 동적 데이터 조회) -메시지 바디를 통한 데이터 전송: POST,PUT,PATCH(HTML Form, API 등을 통한 데이터 전송) *HTML Form 전송은 GET,POST만 지원하며, 일반적으로 많이 쓰이는 것은 POST 메서드이다. HTML Form submit시 POST 메서드로 HTTP 요청 메시지가 전송이 된다. Content-Type으로는 주로 application/x-www-form-urlencoded을 사용한다. *HTTP API 전송은 POST,PUT,PATCH의 경우에는 HTTP 메시지 바디를 통해 데이터를 전송하고, GET의 경우에는 조회, 쿼리 파라미터로 데이터를 전달한다. Conten..

• API URI 설계 • 회원 목록 조회/read-member-list • 회원 조회/read-member-by-id • 회원 등록/creat-member • 회원 수정/update-member • 회원 삭제/delete-member 이것은 좋은 URI 설계가 아니다. 가장 중요한 것은 리소스 식별이다. 리소스는 회원이라는 개념 자체가 리소스다. 읽기, 생성하기, 업데이트하기, 삭제하기가 리소스가 아님(동사가 아닌 명사여야 함) -> 즉, 회원이라는 리소스만 식별하면 된다.(회원 리소스를 URI에 매핑) • 회원 목록 조회/member • 회원 조회/members/{id} • 회원 등록/members/{id} • 회원 수정/members/{id} • 회원 삭제/members/{id} 리소스와 행위를 분..


• HTTP 요청 메시지 Start-line에는 HTTP메서드, 요청 대상, HTTP버전을 기입한다. -HTTP 메서드 GET(리소스 조회), POST(요청 내역 처리), PUT(내용 교체), DELETE(삭제) 등이 있으며, 서버가 수행해야 할 동작이다. -요청 대상 absolute-path[?query](절대경로[?쿼리]) -> 절대경로는 "/"로 시작하는 경로이다. -HTTP버전 HTTP/1.1, HTTP/2, HTTP/3 같이 버전을 기입한다. • HTTP 응답 메시지 Start-line에는 HTTP버전, 상태코드, 이유 문구를 기입한다. • HTTP헤더 header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용) 헤더에는 HTTP 전송에 필..