티스토리

CodeFlex
검색하기

블로그 홈

CodeFlex

eiiyy12.tistory.com/m

nickmorohe 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • Redis 1. Redis (1) Memcached와 비슷한 캐시 시스템으로 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원 (2) Redis는 모든 데이터를 메모리에 저장하고 조회, 인메모리 데이터베이스 (3) 다양한 자료구조를 제공하여 개발하기에 편함 (4) 키-값 저장소로 NoSQL 2. Redis의 특징 (1) 영속성을 지원하는 인메모리 데이터 저장소 (2) 읽기 성능 증대를 위한 서버 측 복제를 지원 (3) 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지우너 (4) 다양한 서비스에서 사용되며 검증된 기술 (5) literal, list, hash, set, sorted set 과 같은 다양한 데이터형을 지원 (6) 메모리 저장소임에도 불구하고 다양한 데이터.. 공감수 0 댓글수 0 2022. 12. 18.
  • Transaction 1. 프로세스에서 발생 가능한 문제점 (1) 한 프로세스에서 여러가지 일을 해야 할 대 중간에 에러가 생겨 로직이 끝났다면 앞서 실행된 로직은 수행이 되고 뒤 쪽 로직이 수행되지 않는 다면 데이터 오염이 발생 (2) 이런 데이터 오염이 발생하는 문제를 해결하기 위해 ACID 트랜잭션을 사용 2. Transaction (1) transaction은 처리되는 작업의 단위 (2) Business Logic 에서 굉장히 중요한 기능 (3) 서로 다른 트랜잭션들을 처리하는 도중 하나의 단위 트랜잭션에서 에러가 발생한다면 이전에 성공한 트랜잭션들을 다시 rollback 시켜 데이터 Consistency가 깨지지 않도록 해줌 (4) 모든 작업이 성공 했을 경우 commit을 통해 확정 3. DB의 Transactio.. 공감수 0 댓글수 0 2022. 12. 18.
  • 이미지 업로드 1. Image Upload Process(Brower -Frontend-Backend) (1) 브라우저에서 사용자가 업로드할 이미지 파일 선택 (2) 브라우저에서 선택된 파일을 변수에 저장 (4) 브라우저에서는 파일 객체를 백엔드 서버에 업로드 요청을 함 (5) 백엔드 서버에서는 API를 통해 받은 파일을 DB에 저장 시 BLOB 타입으로 저장 (6) 파일은 큰 용량을 차지 하기 때문에 DB에 저장하지 않음 => Storage service를 제공하는 Cloud에 저장 2. Image Upload Process(Brower - Frontend-Backend -Cloud) (1) 브라우저에서 파일 첨부 후 파일 업로드 API를 요청하면 Storage에 파일을 저장 (2) Storage에서는 파이르 저장한.. 공감수 0 댓글수 0 2022. 12. 18.
  • 소셜 로그인 1. 소셜로그인 (1) 소셜 로그인은 Kakao, Naver, Google 과 같은 소셜 네트워킹 서비스의 기존 정보를 사용하여 웹사이트용으로 특별히 새 로그인 계정을 생성하는 대신 제 3자의 웹사이트에 로그인하는 SSO의 한 형태 (2) 사용자의 로그인을 단순화하고 웹 개발자에게 점점 신뢰있는 정보를 제공하도록 설계 (3) 일반적으로 플러그인이나 위젯을 사용하여 하나 이상의 소셜 네트워킹 서비스에서 웹사이트로 계쩡을 연결 (4) 사용자는 원하는 소셜 네트워킹 서비스를 선택하여 해당 서비스에 대한 로그인을 사용하여 웹사이트에 로그인을 함 (5) 사용자가 여러 사이트의 로그인 아이디나 비밀번호를 기억할 필요가 없고, 소셜 네트워킹 서비스에서는 사이트 소유자에게 통일된 정보를 제공 2. 소셜 로그인 인증 (.. 공감수 0 댓글수 0 2022. 12. 18.
  • CORS 1. CORS (Cross-Origin-Resource-Sharing) (1) 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 (2) 리소스가 자신의 출처(도메인, 프로토콜, 포트) 와 다를 때 교차 출처 HTTP 요청을 실행 (3) CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원 (4) 최신 브라우저는 XMLHttpRequest 또는 Fetch와 같은 API에서 CORS를 사용하여 교차 출처 HTTP 요청의 위험을 완화 2. 기능적 개요 (1) 교차 출처 리소스 공유 표준은 웹 브라우저에서 해당 정보를 읽는 것이 허용된 출처를 서버에서 설명할 수 있는 새로운.. 공감수 0 댓글수 0 2022. 12. 18.
  • 결제 시스템 1. 결제 프로세스 (1) 구매자가 상품에 대한 정보와 금액을 판매자에게 전달 (2) 판매자는 전달받은 금액을 PG사에게 결제해줄 것을 요청 (3) PG사는 요청받은 정보를 은행사에게 다시 결제 요청 (4) 은행사는 요청받은 금액을 구매자의 계좌에서 출금 후 PG사로 전달 (5) PG사는 판매자에게 금액을 전달(수수료 제외) (6) 판매자는 금액 확인 후, 구매자에게 상품 배송 2. PG사 (Payment Gateway) (1) 구매자와 판매자 사이의 결제를 안전하게 이뤄질 수 있도록 대행해주는 역할을 하는 회사 (2) 대표적인 PG 사 : KG 이니시스, NHN, KCP, LGU+ (3) 모바일 환경: KG 모빌리언스, 다날, 카카오Pay 3. 결제 솔루션 (1) 결제 시스템을 직접 구현하는데는 위와 .. 공감수 0 댓글수 0 2022. 12. 18.
  • Authentication / Authorization 1. Authentication(인증) (1) 유저가 아이디와 비밀번호로 로그인 (2) 서버에서 해당 계정 정보를 검증 (3) 계정 정보가 정확하다면, 서버 측에서 유저에서 accessToken 발급 (4) 클라이언트 측에서 전달 받은 토큰을 저장해두고, 서버에 요청을 할 때마다 해당 토큰을 함께 서버에 전달 (5) 서버는 토큰을 검증, 요청에 응답 2. 기존 서버 기반 인증 시스템 (1) 서버가 유저의 인증 기록을 세션에 저장, 로그인 유저가 많아지면 서버가 과부하 (2) 세션을 사용하면 분산된 시스템을 설계하고 서버를 확장하는 것이 어려움 (3) 세션을 관리할 때 사용되는 쿠키는 여러 도메인에서 관리하는 것이 번거로움 (4) 위와 같은 시스템의 단점을 보완하기 위해 토큰 기반 인증 시스템을 사용하게 .. 공감수 0 댓글수 0 2022. 12. 5.
  • 암호화 (단방향, 양방향) 1. 암호화 (1) 평문(Plaintext) : 해독 가능한 형태의 메세지(암호화된 메시지) (2) 암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지) (3) 암호화(Encryption) : 평문을 암호문을 변환하는 과정 (4) 복호화(Decryption) : 암호문을 평문으로 변환하는 과정 2. 암호화의 종류 (1) 양방향 암호화 : 암호화와 복호화 과정을 통해 송, 수신 간 주고 받는 메시지를 안전하게 암호화하고 평문으로 복호화 하는 과정 (2) 단방향 암호화: 해싱(Hashing)을 이용한 암호화 방식 , 평문을 암호문으로 암호화는 가능하지만 암호문을 평문으로 복호화는 불가능 3. Hash(단바향 암호화) (1) 원본데이터를 매핑시켜 완전히 다른 암호화된 데이터로 변환 (2.. 공감수 0 댓글수 0 2022. 12. 5.
  • Login Process 1. 사용자가 로그인 2. 서버에서 사용자가 입력한 ID, PW를 회원 DB에서 값을 비교(Authorization) 3. 로그인이 완료되면 accessToken(JWT), refreshToken(JWT) 발급 accessToken : 해당 데이터 payload를 통해 전달 refreshToken : 쿠키를 통해 전달 4. 만료된 accessToken을 첨부하여 요청을 보냄 5. 서버가 인가를 해보면서 토큰이 만료되었음을 확인하고 에러를 반환 accessToken 만료가 되어 인가시 에러가 반환되면 refreshToken으로 accessToken을 재발급 받는 API를 프론트에서 요청 6. 토큰이 만료되었음을 확인하고 토큰 재발급 요청(restoreAccessToken)를 쿠키와 함께 요청 restore.. 공감수 0 댓글수 0 2022. 12. 5.
  • 브라우저 저장소(Web Storage), Cookie 1. Web Storage (1) HTML5부터 제공하는 기능으로 , 특정 데이터를 서버가 아니라 클라이언트 브라우저에 저장 할 수 있도록 제공하는 기능 (2) 키/값 쌍으로 데이터를 저장, 키를 기반으로 데이터를 조회 (3) 사이트의 도메인 단위로 접근이 제한 2. Web Storage Type (1) LocalStorage 브라우저를 닫았다가 다시 열어도 계속 유지 저장한 데이터를 명시적으로 지우지 않는 이상 영구적으로 보관이 가능 도메인마다 별로도 LocalStorage가 생성 도메인만 같으면 전역으로 공유가 가능 Windows 전역 객체의 LocalStorage라는 컬렉션을 통해 저장과 조회 됨 (2) SessionStorage 브라우저가 열려있는 한 페이지를 Reload 해도 계속 유지 하지만 .. 공감수 0 댓글수 0 2022. 12. 5.
  • JWT(JSON Web Token) 1.JWT(JSON Web Token) (1) 유저의 정보를 담은 객체를 암호화하여 문자열로 만들어 암호화된 키(accessToken)를 브라우저로 전달해 줌 (2) 브라우저 저장소에 저장해두었다가 유저 정보가 필요한 API를 사용할 때 API 요청과 함께 보내주면, 이를 백엔드에서 복호화해서 사용자를 식별한 후 접근이 가능하게 함 (3) 발급 받아온 서버에서 정상적으로 발급을 받았다는 증명하는 signature를 가지고 있음 (4) 사용자 정보를 DB를 열어보지 않고도 식별 할 수 있게 됨 2. JWT 토큰의 구성 (1) header: 토큰의 타입, 암호화 시 사용한 알고리즘 정보 (2) payload: 토큰 발행정보(발행자, 발행일, 만료일) (3) signature : 토큰의 비밀번호 3. JWT .. 공감수 0 댓글수 0 2022. 12. 5.
  • DB Schema / ERD 1. DB Schema (1) 데이터 베이스 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조 (2) 데이터 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성 (3) 데이터베이스 사용자가 자료를 저장, 조회, 삭제 변경 할 때 데이터베이스 스키마를 참조하여 명령을 수행 (4) 스키마의 3층 구조 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것 내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 .. 공감수 0 댓글수 0 2022. 11. 20.
  • TypeORM 1. TypeORM (1) TypeORM은 NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, TypeScript, JavaScript (ES5, ES6, ES7, ES8) 등등에서 지원되는 ORM (2) ORM은 객체지향프로그래밍을 사용하는 타입 시스템들 사이에서 데이터를 변환하기위한 프로그래밍 기술 2. Active Record pattern (1) 소프트웨어 엔지니어링에서 활성 레코드 패턴은 아키텍처 패턴 (2) 메모리 내 개체 데이터를 관계형 데이터베이스에 저장하는 소프트웨어에서 찾을 수 있음 (3) model 안의 모든 요청 방식을 정의할 수 있음 (4) model 방식을 통하여 저장, 삭제,객체 불러오기를 할.. 공감수 0 댓글수 0 2022. 11. 20.
  • NestJS 1. NestJS (1) NestJS는 TypeScript를 지원하는 Node.js의 서버 어플리케이션 프레임워크 (2) 효율적이고 확장 가능 (3) OOP(Object Oriented Programming) 객체지향 프로그래밍, FP(Functional Programming) 함수형 프로그래밍, FRP(Functional Reactive Programming) 비동기 함수 프로그래밍 (4) Node.js, Javascript 를 위한 모듈, 라이브러리들이 존재 했었지만 구조적(Architecture) 문제를 해결하지 못하여 등장 (5) Java의 Spring과 Python의 장고 같은 프레임워크 들이 있는데 Java의 Spring과 유사함 (6) Architecture를 통일하고 소통 비용을 절감함으로.. 공감수 0 댓글수 0 2022. 11. 20.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.