'CS' 카테고리의 글 목록 (2 Page)
본문 바로가기
728x90

CS86

미들웨어란? 미들웨어는 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어 (OS와 SW Application 사이) 즉, 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어이다. 대표적인 미들웨어는 WAS가 있다. 기본적으로 숨겨진 변환 계층으로 기능하는 미들웨어는 분산 응용 프로그램의 통신 및 데이터 관리를 가능하게 합니다. 데이터와 데이터베이스가 "파이프" 사이를 쉽게 통과할 수 있도록 두 가지 응용 프로그램을 함께 연결하기 때문에 배관이라고도 합니다. 미들웨어를 사용하면 사용자가 웹 브라우저에서 양식을 제출하거나 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청할 수 있습니다. 일반적인 .. 2022. 4. 12.
JWT-사전지식-CIA CIA란 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability) 기밀성 인가된 사용자만 정보에 접근할 수 있는 것 대처 방안 - 암호화 기밀성을 보장하기 위해 각종 접근통제를 실시하고 전산 자료에 대한 암호화 대책을 강구해야 한다. 공격 예시 스니핑, 스푸핑 무결성 정보에 대해서 허가된 사용자 또는 대상에 대해서만 수정 및 삭제등 가능해야 한다. 만약 수정 및 삭제가 허가되지 않은 사용자에 의해 이뤄진다면 해당 정보에 대해서는 무결성이 깨졌다고 한다. 대처 방안 - 누가 보냈는지(변조, 파괴 예방) 무결성을 확보하기 위해서는 접근 통제가 필요하며, 정보의 변경, 변경 위험이 있을 때 즉시 감시 및 복구 가 가능 매커니즘이 필요하다. 무결성을 확인하는 가장 대표.. 2022. 4. 8.
JWT-사전지식-TCP/IP TCP 는 통신 OSI 7계층 전송 계층(트랜스 포트) 계층에서 나오는 개념으로 데이터(요청)를 전송하는 방식 중 하나이다. OSI 7계층 응용 계층 : 무엇을 표현 계층 : 암호화 세션 계층 : 인증 체크 전송 계층(트랜스 포트) : TCP / UDP 네트워크 계층 : IP 데이터 링크 계층 : Port 물리 계층 : LAN, WIFI TCP / UDP TCP A가 B에게 요청 1을 보내면 B는 잘 받았다고 ACK를 보낸다. B가 ACK를 보낼 때 ACK가 유실 또는 통신의 불안정으로 ACK가 A에게 가지 않을 수 있다. ACK를 받지 못한 A는 한번 더 요청을 보냅니다. ACK를 받은 경우에만 다음 요청을 보내게 됩니다. 그래서 신뢰성을 가지고 있는 통신 기법중 하나이다. UDP A가 B에게 요청(데.. 2022. 4. 5.
JWT-Token-구조 JWT란 JWT(JSON Web Token)는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 자체 포함된 방법을 정의하는 개방형 표준( RFC 7519 )입니다. 이 정보는 디지털 서명되어 있으므로 확인하고 신뢰할 수 있습니다. JWT는 비밀( HMAC 알고리즘 사용)을 사용하거나 RSA 또는 ECDSA 를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있습니다 . 서명* 된 토큰 에 중점을 둘 것!! https://jwt.io/introduction JWT 구조 위와 같이 ( . ) 을 기준으로 3가지로 나눠지는데 이 3가지 부분을 각각 JOSE 헤더(JSON Object Signing and Encryption), JWT Claim Set, Signature라고 부른다. Ref.. 2022. 4. 1.
JWT-Token-왜-사용하는가 왜 사용하는가 사용자 인증을 위해 사용된다. Session vs JWT 일단 세션과 JWT토큰(이하 토큰)을 비교했을 때 토큰을 사용했을 때 오는 이점은 서버가 stateless 상태가 된다. stateless 의 장점은 서버와 클라이언트의 연결된 부분이 없어서 서버의 확장이 수월해진다. stateful 같은 경우 세션을 따로 저장해야 하기 때문이다. 장점 유효한 사용자라는 자체 인증 권한을 가진다. 액세스키 사용 시 DB조회 없이 인증 정보 사용할 수 있다. 유효한 권한을 가진다는 부분은 payload 에 넣을 수 있다.(단, 헤더 크기가 증가한다.) 단점 인증은 쉽지만, 인가 부분을 자체 인증을 구현하기엔 어려워 보인다. 인증정보만으로 서비스가 어려운 경우(작업에서 어떤 권한을 가지고 있나가 중요한 .. 2022. 3. 29.
server-토큰 기반 인증, 서버 기반 인증(JSON Web Token VS Session,Cookie) 서버 기반 인증 서버 측에서 사용자들의 정보를 기억하고 있어야한다. 정보를 기억하기 위해서 세션을 유지해야하는데, 이를 메모리나 디스크 또는 데이터베이스 등을 통해 관리한다. 서버 기반의 인증 시스템은 클라이언트로부터 요청을 받으면, 클라이언트의 상태를 계속해서 유지하며 서비스를 이용한다. 이러한 상태를 Stateful 서버(상태) 라고 한다. 특징 HTTP 프로토콜 요청에 따른 응답을 받으면 연결이 끊어진다. 통신이 종료되면 상태 정보가 남지 않아 Stateful 상태에서 Stateless 상태로 바뀐다. 단점 CORS(Cross-Origin Resource Sharing) 쿠키는 단일 도메인 및 서브 도메인에서만 작동하도록 설계되어 여러 도메인에서 관리하기 번거롭다. 확장성이 떨어진다. 서버를 확장하.. 2022. 3. 11.
동기(Synchronous), 비동기(Asynchronous), 블록킹(Blocking),논블록킹(Non-Blocking) Reference - https://poiemaweb.com/js-async 동기 비동기 차이 동기는 요청 후 결과를 받을 때까지 다른 일을 하지 못한다. 비동기는 요청 후 결과를 받을 때까지 다른 일(다른 요청)을 할 수 있다. 동기(Synchronous) - 블록킹(Blocking)방식 동기식 처리는 직렬 적으로 태스크(task)를 수행한다. 즉, 태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 블로킹(blocking, 작업 중단) 된다. T1, T2 트렌젝션의 단위를 동시에 맞춘다. 동기식 처리는 T1, T2의 -10000, +10000이 동시에 일어나기 위한 것으로, T1의 전송, T2의 결과 전송 후 동시에 진행 되어야 한다. 트랜젝션을 이용한 동시성 제어를 하기때문에 설계가 .. 2022. 2. 11.
데이터 통신 전송매체 전송매체 전기신호의 전송을 위한 전송회선. 실제로 전송하는 물리적인 통로 물리적 도체 기반인 전자기적 또는 관학적 신호를 전송하는 유선매체와 특별한 도채 없이도 전자기적 신호를 송수신하는 무선매체로 나뉜다. 유선매체 장비 간 연결 통로를 제공하는 선 현태의 전송수단 물리적 특성에 따라 트위스티드 페어 케이블, 동축 케이블, 광케이블로 구분된다 트위스티드 페어 케이블 구조 두개 이상의 구리 도선이 꼬아진 모양, 접지선과 신호선을 구분하기 위해 특정 색깔의 플래스틱으로 절연하고 있다. 전송 특성 서로 근접해 있는 두 가닥의 도선에 전기가 통할 경유 전자기적 간섭이 잘생한다. 두 도선을 평행상태로 위치하면 한 선에 흐르는 신호는 다른 선에 간섭을 일으키게 된다. 하지만 두 선이 직각으로 위치하게 되면 두 선이.. 2022. 1. 28.
Oracle 권한 및 역할 권한 허가 - GRANT GRANT Privileges [(Column[,...n]])] [,...] [ON 객체] TO {사용자 | 롤 | PUBLIC [,...n]} [WITH GRANT OPTION] Privileges - 허가할 권한 지정. REFFERNCES는 외래키 제약조건을 생성하기 위한 참조 허가 권한. REFFERNCES(컬럼이름) 형태로 사용 (아래 표 참고) Column - 사용 권한을 부여할 테이블의 열 이름을 지정. 꼭 ()안에 표시. 권한을 허가받은 사용자만이 대상 테이블의 지정된 Column 사용 가능 객체 - 사용 권한을 부여할 객체를 지정. 테이블이나 뷰 등의 이름이 온다. TO 사용자 - 사용자나 권한의 묶음인 ROLE에 권한을 추가할 수 있다. PUBLIC은 모든 사용자.. 2022. 1. 21.
트랜잭션 트랜잭션 DBMS에서 데이터를 다루는 논리적인 작업의 단위(데이터를 읽거나 쓰는 프로세스) 트랜잭션 특징 ( ACID 성질) 트랜잭션은 데이터베이스의 무결성을 유지하기 위해 원자성, 일관성, 고립성, 지속성을 갖는다. Atomicity 원자성 all or nothing 트랜잭션에 포함된 작업은 전부 수행되거나 아니면 전부 수행되지 않아야 한다. 트랜잭션이 원자처럼 더는 쪼개지지 않는 하나의 단위처럼 동작해야 한다. Cinsistency 일관성 트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스는 항상 일관된 상채를 유지해야 한다. Isolation 고립성 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경중인 데이터 값을 훼손하는 일이 없어야 한다. 다른 트랜잭션의 방해를 받지 않고 독립적으로 수행 Du.. 2022. 1. 14.
함수 종속성 함수 종속성(normalization) userId(pk) -> user_Address 와 같이 왼쪽 속성의 모든 값에 대하여 오른쪽 속성의 값이 유일하게 결정될 때 함수적으로 종속된다고 한다. 즉, 릴레이션 속성간의 함수적으로 종속하는 성질을 뜻한다. 릴레이션 속성간의 종속성을 파악해 릴레이션을 분리해 이상현상이 발생하지 않게 하는것이 중요하다. 함수 종속성 결정자(릴레이션의 기본키) 릴레이션의 기본키가 함수 종속성의 결정자가 된다. 기본키를 알아야 정규화 과정을 하기 수월하다. 함수 종속의 성질 R{X, Y, Z} augmentation: 만약 X→YX→Y이면, XZ→YZXZ→YZ이다. transitivity: 만약 X→YX→Y이고 Y→ZY→Z이면, X→ZX→Z이다. reflexivity: 만약 YY.. 2022. 1. 7.
DB 정규화 정규화 이상현상이 발생하는 테이블을 수정하여 이상현상을 최소화로 만드는 과정 정규화를 하기 위해 테이블의 기본키와 함수 종속성을 파악해야 한다. 이상현상의 개념 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다. 테이블을 독립적으로 나누지 않고 하나의 큰 테이블로 작성시 일어나는 이상현상이다. 삭제이상(Delectoin anomaly) 투플 삭제 시 같이 저장된 다른 정보가지 연쇄적으로 삭제되는 현상 -> 연쇄삭제 문제발생 삽입이상(insertion anomaly) 투플 사입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 션상 -> NULL 값 문제 발생 수정이상(update anomaly) 투플 수정시 중복으로 저장된 뎅터 일부만 수정되어 데이터의 .. 2021. 12. 31.
ER다이어그램 데이터 모델링에서 개념적 모델링 단계에서 사용되는 다이어그램으로 개체(Entity)와 속성(Attribute)의 관계를 표현한다. ER -> ERD(IE) ER 모델을 관계 데이터 모델로 개체 타입 약한 개체 타입에 강한 개체 타입의 기본키를 외래키로 관계 타입 1:1관계 개체가 가진 유형에 따라 다른 개체의 기본키를 외래키로 1:N관계 N위치 개체에 1위치 개체의 기본키를 외래키로 N:M관계 별도의 릴레이션으로 생성해 N위치 개체, M위치 개체의 각각의 기본키를 외래키로 모델의 차수가 3개 이상인 관계 별도의 릴레이션으로 생성해 각각의 기본키를 외래키로 가져와 복합키로 사용 다중값 속성 user 의 hobby 처럼 여러개의 속성을 가지면 그 속성을 따로 독립적인 릴레이션을 만들어 저장 2021. 12. 24.
데이터 모델링 데이터모델링이란 소프트웨어를 개발하기위해 데이터 모델링이 먼저 되어야한다. 데이터 모델링은 소프트웨어에 필요한 복잡한 데이터를 단순화하고 추상화시켜 데이터베이스화 하는 과정 데이터베이스 생명주기 데이터베이스의 생명주기와 소프트웨어 개발의 생명주기는 거의 유사하다. 큰 차이는 테스트 후 운영 및 유지보수 인 것이다. 데이터베이스 생명주기 (database life cycle) 요구사항 수집 및 분석, 설계, 구현, 운영, 감시 및 개선 소프트웨어 개발 생명주기(software life cycle) 요구사항 수집 및 분석, 설계, 구현, 테스트, 유지보수 요구사항 수집 및 분석 사용자, 개발자, 의뢰인의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하며, 정확하게 요구사항을 정리 설계 설계는 3가지.. 2021. 12. 17.
신호 데이터 통신을 할 경우 통신을 위해 정보를 전자기 신호 혹은 광신호로 변환해 전송매체를 통하여 전송한다. 이러한 신호에는 아날로그 신호와 디지털 신호로 크게 나뉜다. 아날로그 신호 : 음성, 진동 등 연속적으로 변하는 전자기파 디질털 신호 : 컴퓨터 등 데이터를 일련의 이산 값들로 표현하기 위해 사용되는 신호, 즉 무한한 단계들의 비연속적인 파형, 아날로그 신호보다 저렴하고 잡음에 둔하지만 감쇄현상으로 의미가 왜곡되어 피해를 입을 수 있다. 아날로그 데이터 : 연속적인 값 디지털 데이터 : 불연속적인 값 (이산적(discrete)) 위와 같은 신호들은 주기적 신호와 비주기적 신호로 나뉜다. 아날로그 신호의 구성요소 진폭 : 신호의 높낮이 (볼트(V전압), 암페어(A전류), 와트(W전력) 등) 위상 : 0.. 2021. 12. 10.
네트워크 및 데이터 통신 개념 정리 네트워크란 지역적으로 분산된 다수의 기기들을 결합시켜 상호 간의 정보전달을 가능케 하는 전달매체로 노드와 링크의 집합이다. 처리량과 지연 시간 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량(throughput) 초당 전송 또는 수신되는 비트 수라는 의미 처리량은 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 하드웨어 스펙에 영향을 받는다. *대역폭 : 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 지연시간(latency) 요청이 처리되는 시간을 말하며 어떤 메시지가 두 노드 사이를 왕복하는 데 걸리는 시간 지연 시간은 메체 타입, 패킷 크기, 라우터의 패킷 처리 시간에 영향을 .. 2021. 11. 26.
OSI 참조모델 정리 OSI 참조모델 국제표준기구 ISO에서 1980년 말경에 정보교환을 위해 필효한 최소한의 네트워크 구조를 제공하는 OSI 기본 참조모델을 제안, 1983년에 국제표준(ISO 7498)으로 제정되었다. 네트워크를 이해하기 위해서 공부해야한다... ISO에서는 OSI(Open System Interconnection:개방형 시스템 간 상호접속)을 위해 이기종 간 상호접속을 위한 가이드라인을 제시하고자 했다. OSI 참조모델의 목표 시스템 간의 통신을 위한 표준 제공과 통신을 방해하는 기술적인 문제들이 제거 단일 시스템 간의 정보교환을 하기 위한 상호접속점을 정의 제품 간의 번거로운 변환 없이 통신할 수 있는 능력을 향상시키기 위해 선택사앙을 축소 OSI 참조모델 표준이 모든 요구를 만족하지 못할시, 다른 방.. 2021. 11. 19.
ORACLE SQL 정리 - 2 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) NULL 값 처리 NULL값은 아직 지정되지 않은 값으로 0, ' ' 등과 다른 특별한 값 그래서 비교 연산자로 비교가 불가능. 집계 함수 사용시 주의점 NULL + 숫자 = NULL 집계 함수 계산시 NULL이 포함된 행을 예외 NULL 값을 확인하는 방법 - IS NULL, IS NOT NULL where IS NULL; NVL(속성,값) : NULL 을 다른 값으로 대치 혹은 연산 후 다른 '값'으로 출력 (AS와 비슷) ROWNUM 오라클 내부적으로 생성되는 가상 컬럼으로 SQL 조회 결과의 순번을 나타낸다. 부속질의.. 2021. 11. 12.
ORACLE SQL 정리 - 1 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) SQL 기능에 따른 분류 DDL (데이터 정의어) CREATE, ALTER, DROP 테이블이나 관계의 구조를 생성, 변경, 제거 DML(데이터 조작어) SELECT, INSERT, DELETE, UPDATE 테이블에 데이터를 검색, 삽입, 삭제, 수정 DCL(데이터 제어어) GRANT, REVOKE 데이터의 사용 권한을 관리 DDL CREATE TABLE 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령 PRIMARY KEY는 기본키, FOREIGN KEY 는 외래키 기본 문법 CR.. 2021. 11. 5.
관계대수 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 관계대수 관계대수 relational algebra 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어 관계대수와 관계해석 관계대수 : 어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적인 언어이며, DBMS 내부의 처리 언어로 사용된다 관계해석 : 어떤 데이터를 찾는지 명시하는 선언적인 언어로 관계대수와 함께 관계 DBMS 의 표준 언어인 SQL 의 이론적인 기반을 제공한다 -> 관계대수와 관계해석은 모두 관계 데이터 모델의 중요한 언어이며 실제 동일한 표현 .. 2021. 10. 29.
무결성 제약조건 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 키 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 것은 값이 달라야 한다. 즉 키가 되는 속성, 집합은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다. 키는 릴레이션 간의 관계를 맺는 데도 사용된다. 슈퍼키 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합 (식별할 수 있는 값은 모두 슈퍼키가 될 수 있다.) 후보키 투플을 유일하게 식별할 수 있는 속성의 최소 집합 (2개 이상의 속성으로 이루어진 키는 복합키라.. 2021. 10. 22.
데이터베이스 시스템 구성 및 구조 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) DB 기본 지식 데이터:관찰의 결과로 나타난 실제 값 정보:데이터에 의미를 부여한 것 지식:사물이나 현상에 대한 이해 데이터베이스:필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템 DBMS 사용자와 데이터베이스를 연결시켜 주는 소프트웨어 데이터베이스 데이터를 모아 둔 토대 데이터 모델 데이터가 저장되는 기법에 관한 내용 DBMS가 설치되어 데이터를 가진 쪽을서버, 외부에서 데이터 요청하는 쪽을 클라이언트 데이터베이스 언어 SQL DDL ( Data Definition La.. 2021. 10. 15.
Oracle, MySQL, PostgreSQL 차이점 이름 Oracle Mysql PostgreSql 비용 유료(비싸다) 무료(상업은 유로) 무료 종류 관계형 DBMS(RDBMS) 관계형 DBMS(RDBMS) 객체 관계형 DBMS(ODBMS) 장점 최고의 성능, 고성능 트랜잭션 처리를 제공, SQL문을 실행하는 가장 효율적인 방법을 선택한다.(데이블과 인덱스를 분석) 무료로 사용이 가능하고, top n개의 레코드를 가지고 오는 케이스에 특화 무료로 사용이 가능하고, 다양한 join 방법을 제공 처리 속도를 빠르게 하기 위해 여러 CPU를 활용하여 쿼리를 실행 데이터베이스 *클러스터 백업 기능을 제공 고도로 확장 가능, 임시 테이블과 구체화 된 뷰를 제공 단점 비싸다 Nested Loop Join만 지원, 복잡한 알고리즘은 가급적 지원하지 않는다 문자열 비교.. 2021. 10. 8.
macOS) Oracle DB 권한 설정 및 부여 실행중인 도커 확인 $ docker ps -a 도커 start $ docker start oracle12c 오라클 쉘 접속 (sqlplus) $ docker exec -it oracle12c bash -c "source /home/oracle/.bashrc; sqlplus /nolog1 로그인 SQL> conn SYS / as SYSDBA Enter password : Oracle_db1 계정 생성 및 권한 부여 계정 규칙 제한 풀기 $ alter session set "_ORACLE_SCRIPT"=true; 계정생성 (test1 / 1234) SQL> create user test1 identified by 1234; 권한 추가 SQL> grant connect, resource, dba to test.. 2021. 10. 1.
macOS) github blog with jekyll -(1) 로컬에 jekyll 설치 중에 마주하는 오류 로컬에 jekyll 설치하기 github 를 이용한 블로그를 운영하기 위한 설정 github는 시차가 있어서 즉각적으로 확인할 수 없어 불편하다. 그래서 블로그에 새로운 테마 혹은 플러그인이 적용했을 때 어떻게 변화하는지 바로 확인하기 위해 jekyll를 사용 Install Command Line Tool 사전에 Native 확장 기능을 컴파일할 수 있게 Command Line Tools 설치를 해야 한다. $xcode-select --install Install Ruby Jekyll 는 Ruby 2.4.0 버전 이상을 필요. Homebrew 사용 $brew install ruby 최신 버전 설치 Ruby의 경로를 쉘 환경 설정에 추가 bash 사용시 $echo 'export PATH="/usr/loca.. 2021. 9. 24.
728x90