본문 바로가기

CS23

[web] REST, REST API API : 다른 sw 시스템과 통신하기 위해 따라야 하는 규약 (ex. /post/userid 로 ~한 작업을 한다) REST (REpresentational State Transfer) API의 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍쳐. REST API : REST 아키텍쳐를 따르는 API RESTful API : REST 아키텍쳐를 구현하는 웹 사이트 REST의 구성 요소 1. Method POST, GET, PUT, DELETE 2. Resource uri, 어떤 자원인지 ex. http://myweb/users 와 같은 자원의 이름 3. Message json 형태, 세부사항 전달 => 이런 구성요소로 이루어진 API 작동 방식을 REST API라고 한다 REST의 특징 Uniform.. 2024. 2. 19.
[web] 쿠키와 세션 1. 배경 HTTP는 connectionless, stateless 한 성질을 가지고 있다. connectionless : request 후 response를 받으면 연결을 끊음. 그냥 끝 stateless : 통신이 끝나면 그 상태 정보를 유지하지 않음. 즉, HTTP는 request -> response 후 연결을 끊고, 통신이 끊어지면 그 상태 정보(누가 어디서 접속했는지 ... )는 유지하지 않는다. 이렇게 되면 페이지를 요청할 때마다(이동할 때마다) 로그인이 풀리게 된다. 이를 보완하기 위해 쿠키, 세션이 등장 2. 쿠키 클라이언트(로컬)에 저장되는 키-값 데이터 파일 유효 시간이 있으면, 브라우저가 종료되어도 로그인이 유지된다. 방법 response 헤더에 Set-Cookie 속성 reques.. 2024. 2. 19.
[web] 브라우저 1. 브라우저 동작 원리 사용자 --요청--> 브라우저 (.html파일 해석 후 보여줌) --자원 요청--> 서버 Parse Tree -> DOM(Document Object Tree) 트리를 만듦 css -> CSSOM(CSS Object Tree) 트리 만듦 DOM 트리 + CSSOM 트리 = 렌더 트리 만듦 만들어진 렌더트리로 레이아웃을 실행하여 위치 계산 브라우저에 직접 나타내기 (페인트) 1. 2. 파싱 1-1. html 파싱 과정 html -> parse tree -> DOM tree parse tree: html 문자열을 단순히 구조화 DOM tree: 실제 html 엘리먼트(태그)로 구성 1-2. html parser 특징 오류에 너그럽다. (fogiving nature) 에러가 있어도 자.. 2024. 2. 16.
[Flutter][React Native] 작동 원리 & 차이점 1. Flutter 작동 원리 플러터는 구글에서 만든 cross-platfrom 프레임워크로, Dart 언어를 사용한다. 다른 네이티브 언어는 OS에 바로 렌더링하라 요구하는데 반에, Flutter는 Flutter Engine을 거쳐서 작동한다. ** 여기서 렌더링이란, 코드를 2D화면에 나타내는 작업 네이티브 언어나 RN은 OS에서 렌더링을 하지만, Flutter는 Flutter Engine에서 렌더링을 한다. 그래서 React Native와는 달리 어느 OS에서든 화면이 같다. 다만 flutter 자체 UI를 사용하기 때문에, 이를 손수 Native 코드로 바꾸기 어렵다는 단점이 있다. 이 때문에 Flutter는 iOS, Android, MacOS, Web(JS), 임베디드까지 작동하는 cross-p.. 2024. 2. 7.
[디자인 패턴] MVC, MVP, MVVM 참고 https://beomy.tistory.com/43 [디자인패턴] MVC, MVP, MVVM 비교 웹 개발자로 일을 하면서 가장 먼저 접한 디자인패턴이 바로 MVC 패턴이었습니다. 그만큼 유명하고 많이 쓰이는 디자인패턴인 MVC 패턴과 MVC 패턴에서 파생되어져 나온 MVP 패턴과 MVVM 패턴을 이야 beomy.tistory.com 0. 배경 및 목표 역할을 나눠서 유지보수와 개발을 하자! 캡슐화, 가상화, 응집도는 높이고 결합도는 낮춤 개발할 때, input/output이 명확하고 모듈 간 역할이 정해져 있기 때문에 개발하기 편하고 다른 사람이 알아보기도 쉽다 역할이 구분되어 있기 때문에, 어디서 문제가 발생했는지 비교적 쉽게 찾을 수 있다. 1. MVC 역할 Model : 데이터, 데이터 처리.. 2024. 2. 5.