TIL(Today I Learned)
9월 29일(수)
학습내용
- REST API
- REST API란?
- REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
- REST API는 왜 REST인가?
- Representational State Transfer의 줄임말
- REST API란?
- HTTP METHOD 중 PATCH의 용도는?
- 리소스의 일부분만을 수정할때 사용
- HTTP Status Code의 종류
- 1xx: 조건부 응답
- 2xx: 성공
- 3xx: 리다이렉션 완료
- 4xx: 요청 오류
- 5xx: 서버 오류
- OAuth란?
- OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준
- HTTP vs HTTPS
- HTTP의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것인데, HTTPS 프로토콜은 SSL(보안 소켓 계층)이나 TLS을 사용하여 이 문제를 해결하였다.
- SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 한다.
- SSL 인증서의 유무가 가장 큰 차이점이다. SSL은 서버가 신뢰할 수 있는 서버임을 보장하며, SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.
- Session vs Cookie vs Cache
- Session: 서버에서 유저의 인증상태(로그인 여부)를 임시로 저장한 파일
- Cookie: 브라우저를 사용하는 환경(로컬)에 서버에서 받은 데이터를 저장하는 파일
- Cache: Cookie와 마찬가지로 브라우저를 사용하는 환경(로컬)에 서버에서 받은 데이터를 저장하는 파일이지만, 이미지 같이 리소스가 큰 데이터를 또 다시 받지 않기 위해 로컬에 저장하는 것.
- OSI 7 Layer란?
- OSI 7 계층(OSI 7 Layer)는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것 이다. 이는 ISO(국제표준화기구)에서 개발한 모델이다.
- TCP란?
- 신뢰성을 보장.
- 3 핸드쉐이크를 통해 연결.
- 클라이언트가 서버에게 SYN 메세지를 난수를 SEQ 넘버로 보냄.
- 서버는 SYN 메세지를 받으면 SYN+ACK 메세지를 보내며, 클라이언트가 보낸 SEQ넘버에 1을 증가시킨 값과 난수를 ACK 넘버로 보냄.
- 클라이언트는 다시 서버에게 SYN을 보내며, 서버가 보낸 ACK넘버에 1을 더해서 보낸다. 그러면 TCP연결이 성립된다.
- 4 핸드쉐이크를 통해 연결을 종료.
- 흐름제어, 오류제어, 혼잡제어
- App Life Cycle
- 앱의 상태가 변화할 때, 상태에 따라 앱이 취해야 할 행위를 정해주기 위한 개념.
- 앱의 상태
- Not Running
- Inactive
- Active(Foreground)
- Background
- Suspended
- View Controller Life Cycle
- 뷰컨트롤러가 나타나고 사라지는 것처럼 상태가 변화할 때, 상태에 따라 뷰컨트롤러가 취해야 할 행위를 정해주기 위한 개념.
- 뷰컨트롤러의 상태
- viewDidLoad
- viewWillAppear
- viewDidAppear
- viewWillDisappear
- viewDidDisappear
참고
- REST API: https://www.redhat.com/ko/topics/api/what-is-a-rest-api
- REST API: https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
- HTTP 상태 코드: https://ko.wikipedia.org/wiki/HTTP_상태_코드
- HTTP Method: https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
- OAuth: https://ko.wikipedia.org/wiki/OAuth
- HTTP와 HTTPS 차이점: https://brunch.co.kr/@hyoi0303/10
- HTTPS와 SSL 인증서: https://opentutorials.org/course/228/4894
- 쿠키(cookie), 세션(session) 과 캐시(cache) - 네트워크 study3: https://velog.io/@kimtaeeeny/쿠키cookie-세션session-과-캐시cache-FE-study9
- OSI 7 계층: http://wiki.hash.kr/index.php/OSI7계층
- TCP 3 Way-Handshake 이해하기: https://blog.naver.com/agerio100/221948546623