Computer Science

https://www.ssemi.net/what-is-the-bearer-authentication/ 토큰 기반 인증 Bearer AuthenticationOAuth를 들어가려고 생각하다가, 이전에 Bearer scheme 부터 조져야 겠다는 생각을 먼저 해봤다 블로그에 글을 쓸 때 마다 드는 생각Bearer scheme 에 대해서 정확히 설명을 하기 위해서 여러 자료들을 봤www.ssemi.net
개요 리액티브 프로그래밍은 데이터 스트림을 함수로 조작하고 비동기적으로 작업하는 프로그래밍 패러다임이다. 데이터 소스에서 발생하는 데이터 이벤트 스트림을 옵저버가 구독하여 처리한다. 리액티브 프로그래밍은 함수형 프로그래밍 개념을 활용하여 데이터 스트림을 선언적으로 처리하는 패러다임이다. 복잡한 비동기 프로그래밍을 단순화할 수 있다. 함수형 프로그래밍 (Functional Programming) 프로그램을 순수 함수(Pure Function)의 조합으로 구현하는 프로그래밍 패러다임 순수 함수 (Pure Fucntion) Deterministic: 동일한 입력에 대해서 항상 동일한 출력을 반환하고 Side Effect 없음: 함수를 실행하며 외부 상태를 변경하지 않는 함수 비동기 프로그래밍 (Asychron..
정의 객체 지향 프로그래밍에서 Factory는 다른 object를 생성하는 object이다. factory method: new Class object를 반환하는 메소드 예시 // ShapeFactory 클래스 class ShapeFactory { // 도형을 생성하는 Factory Method public Shape createShape(String type) { if (type.equalsIgnoreCase("circle")) { return new Circle(); } else if (type.equalsIgnoreCase("rectangle")) { return new Rectangle(); } return null; } } 생성자와 팩토리의 차이 클래스 기반 프로그래밍에서 Factory는 생성자..
HTTP(Hypertext Transfer Protocol)는 웹 서버와 클라이언트 간의 통신을 위한 프로토콜이다. 서버가 클라이언트의 요청에 응답하는 과정에서 발생하는 여러 상황을 나타내기 위해 HTTP 상태 코드가 사용된다. 상태 코드는 RFC 9110에 정의되어 있다. 1xx: 정보 1xx 시리즈의 상태 코드는 요청이 수신되었으며 처리가 진행 중임을 나타낸다. 주로 클라이언트에 추가 정보를 제공하거나 요청을 계속 진행할 것인지 여부를 알려준다. 100 (Continue): 클라이언트가 요청을 계속할 수 있음을 나타낸다. 101 (Switching Protocols): 서버가 업그레이드 요청을 수락하고 프로토콜을 변경할 것임을 나타낸다. 2xx: 성공 2xx 시리즈의 상태 코드는 클라이언트의 요청이 ..
TL;DR GET http://api.example.com/v1/store/employees/{emp-id} POST http://api.example.com/v1/store/employees 동사 대신 리소스를 나타내는 명사 사용 항상 URI가 동사를 사용하는 대신 리소스를 지정하는 명사로 명명되었는지 확인해야 한다. URI는 어떤 CRUD(Create, Read, Update, Delete) 작업도 나타내지 않아야 한다. CRUD는 HTTP Method(GET, POST...)로 표현한다. 또한 동사-명사 조합 (하이픈, 스네이크 케이스, 카멜 케이스)을 피해야 한다. 나쁜 예: http://api.example.com/v1/store/CreateItems/{item-id}❌ http://api.ex..
의미 REpresentational State Transfer Application Programming Interface Representational: 표현형. 리소스가 JSON, XML처럼 특정 형식의 표현을 가지고 있다는 개념 State Transfer: 상태 전달 Stateless Protocol: REST가 상태를 관리하지 않고, 클라이언트와 서버 간의 통신이 상태를 전송하고 유지하지 않는다 이전 요청과 상태를 공유하지 않는다 서버는 클라이언트의 정보를 저장하지 않는다 그래서 클라이언트의 요청이 자체적인 상태 정보를 포함하고 있어야 한다. 서버에 필요한 모든 정보를 포함하여. 이는 시스템의 확장성과 견고성을 향싱시킨다. 서버의 부하를 분산하고, 클라이언트가 장애를 겪거나 재시작될 때 시스템의 ..
시스템 분석 설계란? 시스템 분석 설계는 조직 내에서 정보 시스템을 개발하고 개선하는 과정이다. 시스템 분석 시스템이 어떤 기능을 수행해야 하는지를 자세히 이해하고 명세로 나타내는 것 시스템 설계 정보 시스템이 어떻게 구현되어야 하는지를 자세히 나타내는 과정 팀 단위로 개발하는 조직과 프로세스를 연구하는 학문이다. 탄생 배경 개발된 소프트웨어가 의도한 것과 다른 동작을 하거나, 사용자의 요구사항과 달라서 프로젝트가 실패하는 일이 발생했기 때문이다. 이로 인한 손실(비용)을 줄이기 위해 소프트웨어 공학이 발전하게 되었다. 주요 단계 1. 요구 분석 (Requirements Analysis) 시스템 분석 및 설계의 시작은 요구 분석이다. 이 과정에서는 아래와 같은 활동이 진행된다. 요구사항 수집: 사용자와 ..