전체 글 36

[Javascript] Javascript 동작(1)

Javascript란? Javascript는 싱글 쓰레드로 동작하는 객체 기반의 스크립트 언어입니다. 웹 브라우저나 Node와 같은 런타임 환경에서 실행이 됩니다. Javascript에는 hoisting, call by sharing, prototype, closure 등 다른 프로그래밍 언어에서 찾아볼 수 없는 특징들이 있습니다. 또한 런타임 환경에서는 비동기 작업을 하기도 합니다. Javascript는 어떻게 동작할까? Javascript가 어떻게 동작하는지 알기 위해서 먼저 Execution context와 Execution Stack에 대해서 알아야 합니다. Execution context와 stack에 대해서 잘 알면 나중에 hoistong이나 closure와 같은 개념에 대해서 더 잘 이해할 ..

[Docker] Nestjs와 Mysql 연결 (Container 간 연결)

Docker-compose를 이용하면 여러 개의 컨테이너로 구성된 서비스들을 관리할 수 있습니다. 여러 개의 컨테이너로 구성된 서비스들끼리 연결하는 경우도 종종 있습니다. 저의 서비스의 경우 mysql과 Nest.js를 연동을 하려고 합니다. 연동을 할 때 어떤 점을 고려해야 하는지 간단하게 얘기해보겠습니다. 먼저, Docker에 대해서 알고 있어야 합니다. Docker는 간략히 말해 container 단위로 프로세스들을 격리하기 때문에, container끼리 영향을 주지 않습니다. 따라서 컨테이너끼리 연결을 하고자 한다면 docker network를 설정해주어야 합니다. Network에 대한 내용은 다른 블로그에도 정리가 잘 되어 있고 공식 document에도 정리가 잘되어 있으니 참고하면 되겠습니다...

Docker 2022.03.12

Overloading & Overriding

Overloading과 Overriding은 객체지향 프로그래밍에서 필수적으로 알아야 하는 개념입니다. 대표적인 객체지향 언어인 JAVA를 공부하지 않아도 python, javascript, typescript에서도 사용되는 개념입니다. 또한 Overloading의 경우는 클래스 내에 메서드뿐만 아니라 함수에도 적용이 됩니다. 이번 글에서는 Overloading과 Overriding의 개념에 대해서 정리를 해보려고 합니다. java와 typescript에서 overloading과 overriding의 규칙이 살짝 다른데 그 부분은 추후의 글에서 다뤄보도록 하겠습니다. Overloading Overloading이란 함수나 메서드의 이름은 똑같은데 return type이나 argument type, argu..

2022.03.10

[CDN] CDN을 사용하면 성능이 좋아질까?

CDN(Content Delivery Network)을 사용하면 물리적으로 멀리 있는 거리에서 데이터를 요청했을 때 더 빠르게 데이터를 받을 수 있다고 합니다. CDN을 사용하였을 때와 사용하지 않았을 때의 차이를 보여주는 사이트도 많습니다. CDN을 사용하면 성능이 좋아지는지 직접 S3와 CloudFront를 이용하여 네트워크 속도를 측정해 볼려고합니다. 측정 환경 Chrome browser(localhost) 컴퓨터 M1 프로 사용 네트워크 동일 사진 10개(각 4.2MB) html image tag(프레임워크 X) 물리적으로 먼 거리를 측정하기 위해 S3 bucket을 미국 버지니아 북부로 만들어서 성능 측정을 해보았습니다. 성능은 chrome 개발자 도구의 network 부분을 이용하여 했고 각 ..

2022.02.21

[AWS] EC2 ssh port 변경하기

AWS EC2에서 ssh port를 변경시키는 방법에 대해서 이야기를 해보려고 합니다. ssh는 기본적으로 22번 포트에서 실행이 되지만, 보안이나 다른 이유에서 ssh 포트를 변경하고 합니다. 꼭 AWS가 아니라 다른 서버에서도 가능하지만, 현재 갖고 있는 물리적인 서버가 없기에 AWS EC2에서 진행을 해보려고 합니다. 필요한 것 AWS 계정 실습 먼저, AWS에 접속하여 amazon linux2로 instance를 하나 생성해 줍니다. 생성을 할 때 기본 VPC가 있다면 기본 VPC에서 public subnet을 사용하면 됩니다. 기본 VPC가 없을 경우에는, 새로 생성한 VPC안에서 public subnet을 선택해 줍니다. public subnet을 선택하는 이유는 bastion server없이..

AWS 2022.01.19

[AWS] Public Subnet, Private Subnet, ALB, ASG 를 이용한 서버 아키텍쳐 구축(2) - AutoScaling Group 만들기

2021.08.20 - [AWS] - [AWS] Public Subnet, Private Subnet, ALB, ASG 를 이용한 서버 아키텍쳐 구축(1) - VPC 구축하기 [AWS] Public Subnet, Private Subnet, ALB, ASG 를 이용한 서버 아키텍쳐 구축(1) - VPC 구축하기 AWS를 이용하여 서버를 구축할 때 어떤 서비스를 이용하여 구축을 해야 할까요? 어떻게 구축해야 비용도 절감하고 안정적이게 구축을 할 수 있을까요? 이 질문에 대한 정답은 없습니다. 자신 hanrabong.com 이전 블로그 에서 VPC, Subnet, 라우팅 테이블 등 네트워크 관련하여 구축을 하였다면 오늘 블로그에서는 네트워크 안에 서버를 직접 만들어 보려고 합니다. EC2를 그냥 만드는 것이..

AWS 2022.01.15

[Database] SQL vs NoSQL

데이터를 저장해야하는 웹 애플리케이션을 개발할 경우 개발자들은 다음과 같은 문제에 직면하게 됩니다. SQL을 사용해야 할까? 아니면 NoSQL을 사용해야 할까? 저 또한 웹 애플리케이션을 개발 할 때마다 고민을 하곤 했습니다. 정해진 답은 없습니다. 경우에 따라 효율적인 데이터베이스를 사용하면 됩니다. 이 글에서 SQL과 NoSQL을 간략하게 설명하고 둘의 차이점과 어떤 경우에 어떤 데이터베이스를 사용하면 좋은지에 대해 다뤄보도록 하겠습니다. SQL 보통 SQL이라고 하면 데이터베이스가 아닌 Structured query language 한국말로 하면 구조화된 쿼리 언어를 말합니다. SQL를 사용하여 관계형 데이터베이스 시스템에서 데이터를 삽입, 수정, 조회, 삭제를 할 수 있습니다. 위 글에서는 SQL..

CS 2021.12.07

[Database] Indexing이란?

Index란? Index를 사전에 검색을 해보면 '색인' 이라고 나옵니다. 색인이라고 하면 조금 어렵게 느껴질 수 있는데 쉽게 말해서 목차라고 생각하면 편합니다. 예를 들어보겠습니다. 500 페이지가 넘는 책에서 원하는 정보를 찾는다고 생각해 봅시다. 목차가 없는 경우 한 페이지씩 넘겨보면서 원하는 정보를 찾아야 합니다. 운이 좋으면 10 페이지에서 찾을 수 있고 운이 안 좋으면 490 페이지에서 찾을 수 있습니다. 만약에 목차가 있다면 어떻게 찾을 수 있을 까요?? 앞에 목차를 보고 원하는 챕터를 펼쳐서 찾을 수 있습니다. 그러면 좀 더 빠르게 찾을 수 있겠죠 index가 바로 위와 같은 역할을 합니다. 데이터베이스에서 데이터를 찾을 때 모든 데이터를 다 훑어보는 것이 아니라 원하는 데이터들만 쏙쏙 뽑..

CS 2021.12.07

[AWS Storage Service] S3 (Simple Storage Service) 버킷 정책 생성 및 권한 부여

오늘은 AWS Storage Service 중 하나인 S3에 대해서 얘기를 해보려고 합니다. 개인적으로 EC2 다음으로 제가 많이 사용하고 있는 서비스입니다. S3를 이용하여 정적파일 웹 호스팅도 가능하고 load balancer 액세스 로그로 저장 가능하고 AWS cloudformation의 템플릿도 저장하는 등 많은 서비스들과 연동하여 사용할 수도 있습니다. S3의 특징을 간단히 얘기해보고 S3 활용하는 법에 대해서 얘기해 보겠습니다. S3 (Simple Storage Service) 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 Object Storage Service 99.9999999%의 내구성을 제공하도록 설계 간편하게 데이터를 관리할 수 있고 액세스 제어 가능 Lambda, ..

AWS 2021.09.13

[Linux] Linux File Hierarchy Structure

Docker를 공부하다가 Linux File Hierarchy Structure(FHS)를 찾아보았는데, 헷갈리고 잘 몰랐던 내용들이 많아 이 기회에 간략하게나마 정리를 해보았습니다. ※ 혼자 공부하며 정리한 내용이니 잘못된 내용이 있거나 궁금한 내용이 있으면 언제든 댓글 달아주세요!! Linux File Hierarchy Structure Linux 파일 계층 구조 또는 FHS(파일 시스템 계층 구조 표준)는 Unix 계열 운영 체제에서 디렉토리 구조와 디렉토리 내용을 정의 Linux Foundation에서 관리 FHS에서는 심지어 다른 물리적 머신이나 가상 머신에 저장이 되어 있더라도 모든 파일과 디렉토리는 root 디렉토리 밑에 존재 위의 사진을 바탕으로 디렉토리 하나씩 간략하게 얘기해 보겠습니다...

CS 2021.09.08

[AWS Run Command]Run Command로 원격으로 명령어 실행하기

안녕하세요!! 이번 글에서는 System manager에서 Run Command 기능을 사용하여 원격으로 EC2 instance에 접근하여 명령어를 실행 시키려고 합니다. ˙ 실습을 위한 필요한 조건 EC2 instance EC2 instance에 ssmmanagedInstanceCore IAM 역할 부여 EC2는 public subnet에 생성해주고 Session manager를 통하여 접근할려고 합니다. Session Manager로 접근하는 방법을 알고 싶으면 밑에 글을 참고해주시면 됩니다. 2021.08.18 - [AWS] - [AWS Session Manager] SSH 없이 Session manager로 EC2 instance에 접속 하기 [실습] Run Command를 사용하여 원격으로 ng..

AWS 2021.08.20