본문 바로가기

분류 전체보기

(179)
Firewall(DMZ) / VPC 1. Firewall (1) 방화벽 은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트랙픽을 모니터링하고 제어하는 네트워크 보안 시스템 (2) 방화벽은 일방적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성 (3) 서로 다른 네트워클르 지나는 데이터를 허용하거나 거부하거나 검열 ㅅ줭하는 하드웨어나 소프트웨어 장치 2. Firewall의 역할 (1) 신뢰 수준이 다른 네트워크 구간들 사이에 놓여서 신뢰 수준이 낮은 네트워크로부터 오는 해로운 트래픽이 신뢰 수준이 높은 네트워크로 오지 못하게 막는 것 (2) 신뢰 높은 구간 : 내부 네트워크. 신뢰 낮은 구간: 인터넷 구간, 외부 네트워크 구간 (3) 외부에 서비스를 제공하는 서버들을 위한 DMZ 구간이 있으..
SSL(TLS) / HTTPS 1. SSL / TLS (1) SSL/TLS 인증서는 시스템에서 ID를 확인하고 이후에 Secure Socket Layer / 전송 계층 보안(SSL/TLS) 프로토콜을 사용하여 다른 시스템에 대한 암호화된 네트워크 연결을 설정할 수 있도록하는 디지털 객체 (2) 인증서는 퍼블릭 키 인프라(PKI)로 알려진 암호화 시스템 내에서 사용 (3) 양쪽 모두가 인증 기관으로 알려진 타사를 신뢰하는 경우, PKI는 한쪽에서 인증서를 사용하여 다른 쪽의 자격 증명을 설정할 수 있는 방법을 제공 (4) SSL/TLS 인증서는 네트워크 통신을 보호하고 인터넷을 통한 웹 사이트 및 프라이빗 네트워크의 리소스에 대한 아이덴티티를 설정하는 역할 2. SSL/TLS 의 중요성 (1) 개인 데이터 보호 브라우저는 웹사이트의 S..
DNS / Load Balancer 1. DNS (1) DNS(Domain Name System) : 웹에서 도메인을 정리하고 확인하는 전화번호부와 같은 역할 (2) 'www.google.com'과 같은 웹 주소는 DNS를 통해 '74.125.19.147'과 같이 사이트를 호스팅하는 컴퓨터의 실제 IP 주소로 변환 2. DNS Record (1) 도메인에 관한 설정을 하기 위해 사용되는 일련의 문자들 (2) MX 레코드 메일 교환 레코드로 이메일을 도메인의 사용자 계정을 호스팅하는 서버로 전송 한 도메인 내에서 우선순위를 달리하여 여러 MX레코드를 정의할 수 있음 우선순위대로 레코드가 사용됨 (3) TXT 레코드 도메인 외부 소스에 다양한 목적으로 사용될 수 있는 텍스트 정보를 제공하는 DNS 레코드 도메인 소유권을 인증하고 SPF, DK..
TDD 1. TDD (1) TDD(Test Driven Development): 테스트 주도 개발 (2) 반복 테스트를 이용한 소프트웨어 방법론 (3) 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현 (4) 짧은 개발 주기의 반복에 의존하는 개발 프로세스 (5) 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중시 2. 테스트의 종류 (1) unit test(단위 테스트) 응용 프로그램에서 함수 처럼 가장 작은 단위을 테스트 (2) integration test(통합 테스트) 유닛들을 모아서 함께 테스트, 서버의 구성요소들이 함께 잘 작동되는지 테스트 (3) e2e(end-to-end) test..
Microservice 1. 모놀리식 아키텍쳐 (Monolithic Architecture) (1) 여러 작고 중요한 모듈들을 하나로 묶어서 배포하는 방식 (2) 하나의 프로젝트를 개발하고 테스트하고 빌드하기 때문에 단순 (3) 여러 모듈들이 함께 있어 작은 문제에도 다른 부분에 영향 (4) 서비스가 커질경우 하나의 프로젝트로 함께 묶는것이 버거워지고 복잡 2. 마이크로서비스 아키텍쳐(Microservice Architecture) (1) 모놀리식 아키텍쳐의 단점을 해결하기 위해 나온 아키텍쳐 (2) 한 프로젝트를 여러 작은 서비스로 분리하여 개발하고 운영, 베포하는 방법 (3) 여러 모듈을 분리했기 때문에 팀별로 독립적으로 개발 가능 (4) 서비스 운영시 발생하는 장애에 대해 좀 더 자유로워 질 수 있음 3. NestJS에서..
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) 메모리 저장소임에도 불구하고 다양한 데이터..
Transaction 1. 프로세스에서 발생 가능한 문제점 (1) 한 프로세스에서 여러가지 일을 해야 할 대 중간에 에러가 생겨 로직이 끝났다면 앞서 실행된 로직은 수행이 되고 뒤 쪽 로직이 수행되지 않는 다면 데이터 오염이 발생 (2) 이런 데이터 오염이 발생하는 문제를 해결하기 위해 ACID 트랜잭션을 사용 2. Transaction (1) transaction은 처리되는 작업의 단위 (2) Business Logic 에서 굉장히 중요한 기능 (3) 서로 다른 트랜잭션들을 처리하는 도중 하나의 단위 트랜잭션에서 에러가 발생한다면 이전에 성공한 트랜잭션들을 다시 rollback 시켜 데이터 Consistency가 깨지지 않도록 해줌 (4) 모든 작업이 성공 했을 경우 commit을 통해 확정 3. DB의 Transactio..
이미지 업로드 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에서는 파이르 저장한..
소셜 로그인 1. 소셜로그인 (1) 소셜 로그인은 Kakao, Naver, Google 과 같은 소셜 네트워킹 서비스의 기존 정보를 사용하여 웹사이트용으로 특별히 새 로그인 계정을 생성하는 대신 제 3자의 웹사이트에 로그인하는 SSO의 한 형태 (2) 사용자의 로그인을 단순화하고 웹 개발자에게 점점 신뢰있는 정보를 제공하도록 설계 (3) 일반적으로 플러그인이나 위젯을 사용하여 하나 이상의 소셜 네트워킹 서비스에서 웹사이트로 계쩡을 연결 (4) 사용자는 원하는 소셜 네트워킹 서비스를 선택하여 해당 서비스에 대한 로그인을 사용하여 웹사이트에 로그인을 함 (5) 사용자가 여러 사이트의 로그인 아이디나 비밀번호를 기억할 필요가 없고, 소셜 네트워킹 서비스에서는 사이트 소유자에게 통일된 정보를 제공 2. 소셜 로그인 인증 (..
CORS 1. CORS (Cross-Origin-Resource-Sharing) (1) 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 (2) 리소스가 자신의 출처(도메인, 프로토콜, 포트) 와 다를 때 교차 출처 HTTP 요청을 실행 (3) CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원 (4) 최신 브라우저는 XMLHttpRequest 또는 Fetch와 같은 API에서 CORS를 사용하여 교차 출처 HTTP 요청의 위험을 완화 2. 기능적 개요 (1) 교차 출처 리소스 공유 표준은 웹 브라우저에서 해당 정보를 읽는 것이 허용된 출처를 서버에서 설명할 수 있는 새로운..