전체 글

네, 저 밑바닥에서 왔습니다
·🫧 Database/SQL
데이터베이스란? 데이터베이스(Database)의 정의 DB란 여러 사람에게 공유되어 사용될 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합을 이야기한다. 데이터베이스의 체계적인 관리는 데이터베이스 관리 시스템 (DBMS)을 통해 이루어진다. DBMS는 데이터를 정리하고 보관하기 위한 용도로 사용된다 => 이를 위해 데이터 추가, 변경, 삭제, 검색 등의 기능을 수행함 (대표적인 DBMS는 Oracle, MySQL, MsSQL, Teradata, SyBase 등이 있다) 데이터베이스 관리 시스템(DBMS)의 특성 DBMS는 실시간 접근성, 계속적인 변화, 동시 공용, 내용에 의한 참조 등의 특성을 지니고 있다 1. 실시간 접근성(Real-time-processing) : 컴퓨터가 접근할 수 있는 ..
·💫 Backend/Node
알게 모르게 cors 에러를 처리하기 위해 Express.js에서 미들웨어를 사용해왔는데문득 이게 정확히 뭔지 궁금증이 생겼습니다..  CORS는 Cross-Origin Resource Sharing의 약자로, 다른 출처 리소스 공유에 대한 허용/비허용 정책이다=> 이 정책은 브라우저에서 실행되는 웹 애플리케이션이 다른 출처(Origin)로부터 리소스에 접근할 때 적용됨 브라우저는 기본적으로 Same-Origin Policy를 따르며, 이는 스크립트나 스타일 등의 리소스 요청이동일한 출처에서 온 것이어야 한다는 정책이다. (동일한 출처(Origin)란 프로토콜, 호스트, 포트가 동일한 것을 의미) https://www.naver.com:3000/ 과 같은 URL이 있다면https가 프로토콜www.nave..
·💫 Backend/Node
session 로그인만 해오던 내가 JWT를..? 바로 시작하겠습니다~  JWT는 JSON Web Tokens 의 줄인말로 웹에서 정보를 안전하게 전송하기 위한 표준 방식 중 하나이다 JSON 객체를 사용하여 정보를 암호화된 문자열로 표현하며 JWT는 토큰 자체가 정보를 포함하고 있어 별도의 저장 공간이 필요 없다! => 서버와 클라이언트 간의 상태를 유지하지 않음 하지만, 세션/쿠키 방식에 비해 JWT 토큰의 길이가 길기 때문에 토큰 발급 및 검증 요청이 많아질수록 서버에서 자원 낭비가 발생한다는 단점이 있다 JWT는  Header, Payload, Signature 세 가지 부분으로 구성되어 있다 Header는 토큰의 유형과 토큰을 서명하는 알고리즘을 지정하는 두 가지 부분으로 이루어져있다 Paylo..
·💫 Backend/Node
그동안 MySQL을 이용해 개발할 때 Sequelize를 사용했었는데이번에 진행중인 Node.js 프로젝트에서 TypeORM을 처음 사용해봐서 공부를 해보겠습니다..  우선 ORM이 뭔지부터 알아봐야하는데 ORM이란 Object-Relational Mapping의 약자로, 객체와 관계형 데이터베이스 간의 매핑을 제공하는 기술이다 (개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스를 다룰 수 있게 도와줌)  그럼 관계형 데이터베이스는 또 뭐냐,,,? 관계형 데이터베이스는 데이터를 테이블 형식으로 저장하고, 테이블 간의 관계를 이용하여 데이터를 조직화하는데이터베이스 시스템이다.=> 이러한 데이터베이스는 관계형 모델에 기반하고 있으며, 데이터를 행과 열의 형태로 표현하는 테이블을 사용함! 이런 관계형 ..
'AWS 교과서' 책이 끝이 보이기 시작하네요.. 워드프레스 소개 지금까지 개별적인 AWS 서비스들을 학습해왔고 10장에서는 AWS 서비스를 활용하여 워드프레스(wordpress) 블로그를 구성하는데 여기서 워드프레스는 손쉽게 블로그, 웹 사이트, 쇼핑몰 등 웹 사이트를 제작할 수 있는 오픈 소스 플랫폼이다 웹 시스템 구성 요소 일반적으로 웹 시스템을 구성하려면 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버가 필요하다 웹 서버는 클라이언트 요청에 대해 정적, 동적 콘텐츠를 제공하며, 웹 애플리케이션 서버는 클라이언트 요청에 따라 동적 콘텐츠를 제공한다 그리고 데이터베이스 서버에서 데이터를 가져오거나 저장해서 활용한다 웹 사용자가 얼마 되지 않고 소규모일 때 웹 시스템을 하나의 서버에서 구성하여 서비..
이 장의 주제인 AWS 오토 스케일링 서비스를 살펴보기에 앞서, 먼저 스케일링은 무엇이고 어떤 종류로 분류되는지 이해해야 한다! 스케일링 스케일링이란 IT 측면에서 스케일링(scaling)이란 IT 자원을 확장하거나 축소하는 기능을 의미한다 IT 자원의 사용 요구는 항상 고정적이지 않고 특정 상황이나 이벤트에 따라 가변적이다 => 이렇게 IT 자원의 사용 요구가 가변적일수록 자원의 성능 및 수량을 확장하거나 축소하는 개념인 스케일링은 필수이다 (스케일링으로 IT 자원의 고가용성과 내결함성을 확보할 수 있음) 스케일링의 종류 스케일링 기법은 확장 및 축소 방향에 따라 수직 스케일링과 수평 스케일링으로 구분된다 수직 스케일링 수직 스케일링은 IT 자원의 용량을 확장, 축소하는 것으로 스케일 업(scale-u..
사용자 인증과 권한 통제는 온프레미스 환경과 더불어 클라우드 환경에서도 가장 중요한 보안 요소이다 이 때문에 AWS는 더욱 안전하게 사용할 수 있도록 AWS IAM 기능을 제공한다 AWS IAM을 살펴보기 전에 먼저 AWS IAM 위에서 AWS 리소스가 어떻게 생성되고 관리되는지 알아보자! AWS 리소스 생성하고 관리하기 AWS 리소스를 다루는 방법을 살펴보자! AWS 관리 콘솔 AWS 관리 콘솔에서는 AWS 리소스를 생성하고 관리하는 데 사용할 수 있는 '웹' 기반 사용자 인터페이스를 제공한다 => 직관적이기 때문에 AWS 입문 단계에서 사용하기에 굉장히 편리 (앞선 실습들은 AWS 관리 콘솔초럼 웹 기반 GUI 방식으로 진행했음) AWS 명령줄 인터페이스 AWS 명령줄 인터페이스(AWS CLI)는 A..
CDN이란 CDN은 Contents Delivery Network의 약어로, 콘텐츠 제공자와 사용자가 지리적으로 멀리 떨어져 있는 환경에서 콘텐츠를 빠르게 전달하는 네트워크 기술이다 => 콘텐츠 형태가 대용량이나 실시간성을 요구하는 현재 추세에 콘텐츠를 빠르게 전달하는 것은 굉장히 중요한 이슈! CDN 환경 CDN 기술이 없는 일반적인 네트워크 통신 환경에서는 원본 콘텐츠를 가지고 있는 오리진(origin) 서버에서 사용자에게 콘텐츠를 전달한다 => 이런 환경에서 오리진 서버에 높은 부하가 발생하고 지리적으로 멀리 떨어져 있는 사용자에게 콘텐츠를 전달할 때 지연 시간이 길어지는 것은 불가피함 이런 이슈를 CDN 기술로 극복할 수 있음!! => CDN 기술 핵심은 캐시 서버를 지역적으로 분산하고 콘텐츠를 ..
AWS가 제공하는 고급 네트워킹 기능 중 AWS의 관리형 DNS 서비스인 Amazon Route 53을 살펴보기에 앞서 DNS가 무엇인지부터 이해해 보자! DNS란 DNS 서비스 DNS는 Domain Name System의 약어로, 네트워크 통신을 위한 주소 체계를 문자 형태인 도메인으로 매핑하여 연결하는 서비스이다 => 네트워크 통신 주소는 일반적으로 IP 주소를 사용하는데, 한마디로 IP 주소를 문자 형태의 도메인 주소로 매핑해서 사용하는 서비스를 의미한다 ex. 도메인 주소를 이용한 통신 과정을 살펴보면 1. 웹 서버의 IP 주소를 도메인 주소로 사용하고자 jungyo.com 도메인을 구매하고 등록한다 2. 사용자는 jungyo.com이라는 도메인 주소가 어떤 IP 주소인지 모르고 있으므로 해당 정..
·🔥 Algorithm
Do it! 알고리즘 코딩테스트 : 파이썬  시간 복잡도시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말함 파이썬에서는 2000만 번~1억 번의 연산을 1초의 수행 시간으로 예측표기법에는1. 빅-오메가 Ω(n) : 최선일 때의 연산 횟수2. 빅-세타 θ(n) : 보통일 때의 연산 횟수3. 빅-오 O(n) : 최악일 때의 연산 횟수가 있고 → 코딩 테스트에서는 당연히 빅-오 표기법을 기준으로 수행 시간을 계산하는 것이 좋음!(항상 최악의 경우를 생각하고 로직을 짜야함) 시간 복잡도를 바탕으로 코드 로직을 개선하려면 코드의 시간 복잡도를 도출할 수 있어야함!시간 복잡도 도출 기준은 1. 상수는 시간 복잡도 계산에서 제외 2. 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 됨 디버깅문법..
이번 실습은 AWS의 관계형 데이터베이스인 Amazon RDS를 배포하고 웹 서버와 연동하는 것으로, 고가용성 확보를 위한 Multi-AZ 기능과 성능 확장을 위한 Read Replica 기능을 알아보자 웹 서버와 Amazon RDS 연동하기 CloudFormation으로 기본 인프라 배포하 실습에 필요한 기본 인프라 자원은 AWS CloudFormation으로 자동 배포한다 AWS 관리 콘솔에서 서비스 > 관리 및 거버너스 > CloudFormation으로 들어가 스택 생성을 누른고 Amazon S3 URL에 https://cloudneta-aws-book.s3.ap-northeast-2.amazonaws.com/chapter6/dblab.yaml 을 입력한다! 스택 세부 정보 지정 페이지에서 다음과 ..
AWS가 제공하는 데이터베이스 서비스를 살펴보기에 앞서 데이터베이스가 무엇이지 이해해야한다 데이터베이스와 DBMS 데이터와 데이터베이스 데이터는 어떤 이론을 세우는 데 기초가 되는 자료로, 문자와 숫자, 그림, 영상 등의 형태로 된 단위이다 데이터는 원시적인 자료에 불가할 뿐 특정한 의미와 가치는 없음 => 이런 데이터를 특정 목적에 따라 가공하고 이론을 세워 의미와 가치를 부여한 결과를 정보라고 한다 요즘 같이 데이터가 홍수처럼 넘쳐나는 세상 속에서 유의미하고 가치 있는 데이터만 추출하여 어떤 정보를 도출하는 것은 굉장히 중요한 일이다 => 그러기 위해서는 원천 데이터를 모아 두는 것이 필요한데, 이때 데이터를 하나에 모아두는 것을 데이터베이스라고 하며, 데이터베이스는 간단히 데이터를 모아 두는 집합이..