본문 바로가기
728x90
반응형

전체 글211

[#02. 비동기 프로그래밍] 리액티브 프로그래밍 (with Spring WebFlux) [[_TOC_]]Reactive Programming (with Spring WebFlux)컨셉📝주요 키워드반응성회복성탄력성메시지 주도이벤트 루프 기반 프로그래밍웹에서 사용자의 클릭, 입력과 같은 이벤트가 발생할 때 마다, 해당 이벤트는 데이터 스트림으로 처리새로운 데이터 스트림이 도착할 때 마다 반응(reacting)으로 프로그램이 동작즉, 새로운 데이터가 스트림에 도착할 때 마다 자동으로 이를 감지하고 필요한 작업을 실행(데이터 처리, 조회, UI 업데이트 등..)데이터 폴링이벤트 루프 기반데이터 감지주기적 확인- 시스템이 정기적으로 데이터의 변경 여부를 확인새로운 이벤트 발생 시 자동 반응- 시간에 따라 발생하는 이벤트를 데이터 스트림에 할당blockingblocking- 폴링 작업이 수행되는 동.. 2024. 4. 25.
[#01. 비동기 프로그래밍] 동기 API / 비동기 API 차이(with blocking/non-blocking) 비동기 프로그래밍💡 비동기 프로그래밍?작업 실행의 완료를 기다리지 않고, 다른 작업을 동시에 진행할 수 있는게 하는 프로그래밍 방식멀티스레딩과 유사하지만, 비동기 프로그래밍은 단일 스레드에서 이벤트 처리 및 콜백을 통해 구현되기도 하기 때문에 명시적 스레드 관리 없이도 동시성을 달성할 수 있다.동기 API 와 비동기 API의 차이동기 vs 비동기작업 완료 처리의 주체동기: 호출자가 작업 완료 처리 (호출자가 직접 처리 결과를 반환하여 획득)비동기: 메서드를 수행하는 피호출자가 작업 완료 처리 (처리 결과를 호출자에게 전달)Blocking vs Non-Blocking함수의 처리값이 언제 반환되는지blocking: 작업 완료 후 반환non-blocking: 즉시 반환💡 반환된 것은 최종 결과가 아닌 프로.. 2024. 4. 25.
OAS(OpenAPI Specification) - 개념, 구조 분석 및 튜토리얼 OAS (OpenAPI Specification)1. OAS 란?OAS는 OpenAPI Specification의 약자로, "OpenAPI 명세서" 라는 의미이다.여기서 사용되는 openAPI는 기존의 "개방된 API"(ex.지도API, 날씨조회API 등..)의 개념과는 조금 다르다.OpenAPI 또는 OAS(OpenAPI Specification)로 불리며, RESTful API를 정해진 표준 규칙에 따라 API Spec을 json 혹은 yaml 로 표현하는 방식을 의미한다.==> "Restful API 디자인의 정의 방법의 표준" 으로 정리할 수 있다.aka. OpenApi 3.0 Specification2. OpenAPI vs SwaggerSwagger라는 제품을 SmartBear라는 회사에서 구매.. 2024. 4. 25.
# 05. 데이터 베이스 모델링 데이터 베이스 모델링여러 절차적 과정에 의해 진행1. 순서요구사항 분석 -> 요구사항 명세서 생성개념적 모델링논리적 모델링물리적 모델링개념적 모델링 분석 관점으로 사용자의 요구사항을 분석E-R 모델을 통해 개체/관계/속성으로 분류논리적 모델링설계 관점에서 개념적 모델을 충실히 변환특정 유형군의 DBMS을 염두에 두고 표현릴레이션 스키마의 테이블 구조로 표현됨물리적 모델링논리적 모델링의 연장선으로 물리적 구조를 표현특정 DBMS의 특성과 구조에 적합하게 물리적 데이터 구조 명세최적화된 테이블 레코드 형식, 저장구조, 접근 방식 명세==> 좋은 데이터 베이스 설계는요구사항을 충실히 만족데이터의 일관성과 무결성 유지최적의 성능을 발휘2. 실습1. 요구사항 명세- 모든 DevOps팀원들은 식물에 물을 준다.- .. 2024. 4. 25.
# 04. DB 정규화 (정규화 필요성, 이상현상, 함수 종속성) 1. 정규화의 필요성잘못된 데이터베이스 설계는 데이터의 일관성을 훼손하고,데이터의 무결성을 손상한다.데이터의 일관성 훼손과 무결성 손상이 왜 나쁜가?=> 데이터에 대한 활용과 신뢰성이 떨어지게 된다. ==> 결론적으로, 잘못된 정보를 운용하게 됨데이터의 일관성 훼손과 무결성 손상은 왜 발생하는가?대부분의 경우, 불필요한 데이터 중복으로 인해 발생👍 좋은 설계 = 데이터 중복 최소화!이상 현상데이터 이상 : 불필요한 데이터 중복으로 인해 발생하는 부작용종류삽입 이상 : 데이터 삽입 시, 현재 필요한 컬럼의 데이터 외에 테이블의 다른 불필요한 컬럼의 값을 강제로 같이 입력해주어야만 데이터 삽입이 가능한 경우갱신 이상 : 데이터 수정 시, 중복된 속성값 중 일부가 수정되지 않을 경우 데이터 불일치가 발생하는.. 2024. 4. 25.
#03. 뷰와 인덱스 (정의, 사용법) [[_TOC_]]1. VIEW (뷰)VIEW(뷰)란?SELECT문 사용 시에 "자주" 사용되거나, "복잡한" 조인 조건인 경우,사용의 편의를 위해 생성하는가상의 테이블1-1. 뷰의 정의테이블과 뷰의 차이테이블 : 전체 조직의 관점에서 최적의 저장 단위로 생성뷰 : 개인의 관점에서 사용자의 편의를 위해 자유롭게 생성특징실제 데이터를 저장하지 않는 "가상 테이블"실제 테이블처럼 사용하도록 만든 "데이터베이스 객체"뷰는 데이터를 저장하지 않음주로 기반 테이블로부터 정의되지만, 또 다른 뷰를 기반으로 정의될 수 있음뷰 검색은 실제로는 뷰의 기반 테이블에 대한 검색으로 변환되어 수행된다.=> 생성된 뷰의 데이터는 snapshot처럼 소정된 값이 아닌,기반 테이블의 변경되는 정보를 실시간으로 반영하여 변경된다.뷰 .. 2024. 4. 25.
#02. RDMS 관계형 데이터(구조, 키의 종류), 관계대수(관계대수 연산) 3. 관계형 데이터데이터 구조 : 릴레이션 => 데이터의 정적 특성연산 : 관계 대수 => 행위적인 동적 특성제약 조건 : 무결성 제약 조건 => 구조적 제약/행위적 제약3-1. 관계형 데이터 구조릴레이션 : 2차원 테이블 형태관계형 데이터 모델은 테이블을 '릴레이션'이라고 부름릴레이션 스키마 : 테이블 명 + 속성명 (키 값은 밑줄로 표시)ex) 학생(학번, 이름, 성별, 학과)릴레이션 인스턴스 : 튜플들로 구성ex) {,}데이터 베이스의 구성데이터 스키마 => 데이터 베이스 안의 모든 릴레이션 스키마의 집합 (정적)데이터 인스턴스 => 특정 시점에서의 모든 릴레이션 인스턴스들의 집합 (동적)3-2. 제약 조건데이터 신뢰성 & 정합성을 유지하기 위해 제약 조건 명세릴레이션의 키(key) : 각 튜플들을.. 2024. 4. 25.
#01. 데이터베이스 개념 및 데이터베이스 시스템 (+DBMS) [[_TOC_]] 1. 데이터베이스 개념 1-1. 데이터베이스의 등장 파일 시스템 데이터 베이스 이전에는 파일 시스템을 사용 파일 시스템 : 응용프로그램마다 서로 다른 데이터파일 사용 ex) 수강신청 응용 프로그램 수강신청 데이터파일 성적처리 응용 프로그램 성적처리 데이터파일 졸업사정 응용 프로그램 졸업사정 데이터파일 파일 시스템의 문제점 데이터 종속성의 증가 - 파일 변경 시, 응용 프로그램의 파일처리코드 변경 필요 데이터 중복성의 증가 - 수강신청 데이터파일과 성적처리 데이터파일에 겹치는 데이터가 존재할 수 있으며, 데이터 일관성과 무결성의 유지가 어렵다 데이터 시스템의 등장 데이터베이스 시스템 : DB + DBMS DBMS 데이터베이스 관리 시스템 : 응용프로그램에서 DB에 접근할 수 있도록 해주는.. 2023. 8. 9.
[React] Redux (+Redux Toolkit) 03_Redux 3-1. What is Redux? 크로스 컴포넌트 또는 앱 와이드 상태를 위한 상태 관리 시스템 상태의 종류 Local State 데이터가 변경되어 하나의 컴포넌트에 속하는 UI에 영향을 미치는 상태 ex) 토글버튼, 입력필드 .. useState() , useReducer() 로 관리 Cross-Component State -> Redux 로 관리 다수의 컴포넌트에 영향을 주는 상태 ex) 모달 컴포넌트 prop chains, prop drilling 으로 관리 App-Wide State -> Redux 로 관리 애플리케이션의 모든 컴포넌트에 영향을 주는 상태 ex) 사용자 인증 상태 prop chains, prop drilling 으로 관리 3-2. Why use Redux? 기존 .. 2023. 7. 23.
728x90
반응형