본문 바로가기

Life/TIL

20210708 TIL

Facts

  • 웹을 지탱하는 기술 스터디 - REST
  • 모던 자바스크립트 튜토리얼 스터디 - 객체 기본 
  • 알고리즘 문제 - 숫자의 표현, 최솟값 만들기, 숫자 문자열과 영단어

Feelings

  •  프로그래머스 알고리즘 문제 새로운 1단계 카카오 문제가 나왔는데 내가 푸는 것도 괜찮긴 했는데 같이 푸니깐 진심 꿀잼이었다. 배가 부족한 부분도 시원하게 긁어주고 진짜 훨씬 더 좋은 코드가 되어서 너무 기분 좋았다. 알고리즘 풀이의 정반합 최고 예시랄까ㅎㅎㅎ 역시 짝프는 좋다 ㅎㅎㅎ 
  • 모던 자바스크립트 튜토리얼 스터디 준비를 나름 저번보다는 더 열심히 해가서 저번보다 설명을 좀 더 업그레이드해서 잘 해주긴 했는데 그래도 잘 설명을 못한 부분도 많다 ㅜㅜㅜ 그때 이번에 합류하신 예은님이 구세주처럼 설명을 해주셔서 너무 든든하구 감사했다 ㅜㅜ 역시 근데 내가 완전히 이해하지 못한 부분은 설명을 확실히 못하는 느낌이 들어서 더 확실히 이해를 해야겠구나 하는 생각이 들었다. 도움을 주기 위해서라도 더 열심히 하자.  

Finding

여러개의 문자를 각각의 다른 문자로 변경해야 할 경우 정규표현식 & 배열매서드 조합으로 간결하고 정확하게 결과를 얻을 수 있다.

Node 16버전부터는 replaceAll메서드도 지원한다.

 

 

REST란? 웹의 아키텍쳐 스타일.

아키텍쳐 스타일이란? 복수의 아키텍쳐의 규정, 특징, 양식, 방식 등

추상화 단위: 구현(apache, FireFox, IE 등 엔진) < 아키텍쳐(브라우저, 서버, 프록시, HTTP, URI, HTML) < 아키텍쳐 스타일(REST)  

웹은 클라이언트/서버의 아키텍쳐. 

 

REST에서 중요한것

리소스 

리소스란? 이름이 매겨진 자원, 이름이 바로 URI이다. 구체적인 리소스의 위치를 알 필요 없이 짧은 URI로 리소스를 가리킬 수 있다(어드레스 가능성). 하나의 리소스에 복수의 URI를 가질 수 있지만 어느게 정식 URI인지 알 수 없다. URI의 리소스의 상태가 변화할 수 있다.

 

REST 스타일

1. 클라이언트/서버: 웹은 HTTP를 이용해 통신하는 클라이언트/서버 아키텍쳐 스타일을 사용하는데 이게 바로 REST이다. 클라이언트와 서버가 분리되어 서버는 서버의 역할만 수행하고 복수의 서버를 가질 수 있고 서버를 확장할 수 있다. 

2. 캐시 서버: 클라이언트가 서버에 요청해서 얻은 리소스를 저장해 재 요청할 때 서버와의 통신 부 하를 줄여 효율성을 높여준다. 하지만 오래된 저장이 쌓이는 문제점도 있다. (이건 캐시서버에서 갱신을 하는 등 다른 처리가 있는걸로 기억한다.) 

3. 무상태성 서버: 클라이언트의 상태를 서버에서 가지고 있지 않아서 서버에서는 데이터베이스 처리 등 서버의 역할만을 수행할 수 있고 복수의 클라이언트와의 연결이 가능해진다. 근데 예외는 cookie로 세션관리이다. cookie는 상태성이 존재해서 REST에 반하지만 이건이 더 효과적인 방향인 경우가 있으니 선택적으로 사용할 수 있다.  

4. 유니폼 인터페이스: 8가지의 메서드로 유형을 고정해 아키텍쳐를 간결하게 만든다. 다양한 디바이스에서 통신이 가능하게 하고 하위호완성도 가능하게 한다. 

5. 계층화 시스템: 클라이언트 서버를 계층화하여 proxy서버를 중간에 끼우든 아니든 동일한 방법으로 통신 할 수 있다. 다양한 서버의 관심사의 분리가 가능해진다.

 6. 코드온디맨드: 코드를 서버에서 다운받아 실행시키는 것이 아니고 서버에서 다운받은 것을 클라이언트 통신을 통해 보내 클라이언트에서 실행시킨다. 보통 자원을 요청하는 리퀘스트-리스폰스 관계가 아닌 js같은 코드를 요청하고 응답받는 통신을 통해서 클라이언트에서 실행이 되고 확실한 자원을 주고받는 통신에 비해 응답받은 코드가 실행되면 어떻게 되는지는 알 수 없기 때문에 프로토콜 가시성이 떨어진다.  장점은 차후에 확장이 가능하고 새로운 기능을 추가할 수 있다는 점이다.

 

REST의 하이퍼미디어 측면과 분산시스템 측면 

하이퍼미디어: 리소스를 링크로 연결되어 찾아가기 때문에 링크로 이동한다는 것(작업의 최소단위(?)) 자체가작업에 의한 변화(상태)를 말해준다. (북마크 기능을 트위터에서 사용하는데 이걸 트위터에서도 같은 기능을 사용한다.) 이것으로 재사용성이 가능하다. 리소스를 링크로 연결해 하나의 애플리케이션으로 구성한다는 개념 -> 접속성 (RES의 근간을 이루는 사상)

애플리케이션 상태 엔진(?)

분산 시스템: 클라이언크/서버 구조와 그에 따른 계층화로 인해 시스템을 여러개로 분산시키는 것이 가능하고 각각 유니폼 인터페이스에 의해 아키텍쳐가 고정됨으로 디바이스에 구애받지 않고 추후에 프로토콜(?)이 변경될 가능성이 없으며 하위호환이 가능하다.  

Affirmation

  • 나는 도움이 많이 되는 스터디원이다.
  • 나는 하나도 확실히 아는 사람이다.

 

'Life > TIL' 카테고리의 다른 글

20210711 TIL  (0) 2021.07.12
20210709 TIL  (0) 2021.07.09
20210707 TIL  (0) 2021.07.08
20210706 TIL  (0) 2021.07.07
20210705 TIL  (0) 2021.07.06