전체 글

전체 글

    NestJS aws-EC2 프리티어 micro 배포 에러 및 해결방법

    NestJS aws-EC2 프리티어 micro 배포 에러 및 해결방법

    aws 프리티어 micro를 사용하면 RAM이 1GB로 아주 작기 때문에 NestJS의 build 과정이 몹시 오래걸리거나 멈춰 버릴 수 있다. (npm install 자체도 힘든 경우가 많다) 해결 방법은 여러가지가 있다 내가 해결한 방법 몇가지 1. Swap File을 이용해 EC2 메모리 부족 현상을 해결 2. 로컬환경에서 build 후 배포 (pm2 사용) 3. Docker를 사용하여 배포 1. Swap File을 이용해 EC2 메모리 부족 현상을 해결 실제 디스크의 용량을 이용하여 부족한 메모리를 대체할 공간을 swap memory(스왑 공간)이라 한다. Swap 메모리는 완전히 RAM을 대체하는 것이라 보기 어렵다. 실제 디스크 용량을 할당하여 RAM을 대체하는 것이기 때문에 RAM으로 접근하..

    Docker 환경에서 MySQL 로그인시 Access denied for user... Error 해결하기

    Docker 환경에 설치한 MySQL에 계정을 생성할때 도메인을 일반적인 localhost로 지정하면 에러가 발생한다. 그렇기 때문에 에러 메세지에 나오는 Docker 가상 IP로 지정을 해서 계정을 생성해야 한다. 1. MySQL 콘솔 접속하기 $ docker exec -it mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 360 Server version: 8.0.21 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights re..

    [CS] 프록시(Proxy)란

    [CS] 프록시(Proxy)란

    프록시(Proxy)란 프록시(Proxy)는 "대리"의 의미로, 인터넷과 관련해서 쓰이는 경우, 특히 내부 네트워크에서 인터넷 접속을 할 때에, 빠른 액세스나 안전한 통신등을 확보하기 위한 중계서버를 "프록시 서버"라고 일컫는다. 클라이언트와 Web서버의 중간에 위치하고 있어, 대신 통신을 받아 주는 것이 프록시 서버이다. 프록시(Proxy)의 사용 목적 1. 개인정보 보호 프록시 서버 X - 사용자가 네이버에 들어갈 때 IP 주소가 전달 프록시 서버 O - 프록시 서버의 IP를 전달. 즉, 사용자의 IP를 보호할 수 있다. 2. 속도 향상 - 캐시 사용 사용자가 특정 페이지를 요청할 때, 프록시 서버를 통해 웹 페이지를 가져온다. 가져온 웹 페이지를 프록시 서버의 DB에 저장하고 사용자에게 전달. 같은 ..

    [Mac] - node, npm 완전삭제 및 재설치

    1. node 완전 삭제 sudo rm -rf /usr/local/lib/node sudo rm -rf /usr/local/lib/node_modules sudo rm /usr/local/lib/dtrace/node.d sudo rm /usr/local/share/man/man1/node.1 sudo rm -rf /usr/local/share/doc/node sudo rm -rf /usr/local/share/systemtap/tapset/node.stp sudo rm -rf /usr/local/include/node sudo rm /usr/local/bin/node sudo rm /usr/local/bin/npm sudo rm /usr/local/bin/npx //아래는 경우에따라 필요하면 입력한다. ..

    [LeetCode] Group Anagrams

    [LeetCode] Group Anagrams

    const groupAnagrams = function(strs) { const data = {}; // 단어를 키로, anagram 단어들을 값으로 가진다. const result = []; // 리턴할 결과를 저장하는 배열 for(let str of strs) { // 주어진 단어 배열을 반복문으로 돌린다. const word = str.split('').sort().join(''); // 주어진 단어를 쪼개고 정렬하고 합쳐서 key가 될 값으로 만든다. if (!data[word]) data[word] = []; // data에 없다면 초기화를 해주고, data[word].push(str); // 추가한다. } for(let key in data) { result.push(data[key]); //..

    [백준 1339] 단어 수학 / Node.js

    [백준 1339] 단어 수학 / Node.js

    https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 첫번째 풀이 ( 실패 ) let [N,...input] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map((v) => v.split('')) input.sort((a,b) => b.length-a.length) let map = new Map(); let num = 9; let result = input...

    [CS] OOP의 특징 (추상화/캡슐화/상속/다형성)

    OOP 객체지향 프로그래밍 기본의 만들었던 내용을 재사용할 수 있다는 장점이 있다. 프로그램을 독립된 단위인 객체들의 모임으로 보고 각각 객체는 메시지를 주고 받고 데이터를 처리함. 추상화(Abstraction) 어떤 실체로부터 공통적인 부분이나 관심 있는 특성들만 한곳에 모은 것 구현 세부사항 대신 기능 측면에서 클래스의 모델링을 목적으로 한다. 인터페이스와 구현을 분리한다. 캡슐화(encapsulation) 데이터 보호 비슷한 역할을 하는 속성과 메소드들을 하나의 클래스로 모아, 접근 지정자를 통해 제어하는 것 은닉화 : 객체의 세부 내용이 외부에 드러나지 않아 외부에서 데이터를 직접 접근하는 것을 방지한다. 캡슐 내부의 로직이나 변수들을 감추고 외부에는 기능(api)만을 제공하는것 상속(inheru..

    [TypeScript] 추상 클래스(Abstract Class)

    추상화(Abstraction) 추상화는 객체 지향 프로그래밍(OOP:Object-Oriented Programming)의 핵심 아이이디어 중 하나이다. 복잡성을 최소화하고 고급 아키텍처 문제를 해결하는데 도움이 되는 기술이며, 하위 수준의 세부 사항을 미리 구현할 필요가 없다. 상위 수준에 집중하고 나중에 세부 사항을 구현한다. OOP에서는 두 가지 유형의 클래스가 존재한다. 추상 클래스와 구체 클래스이다. 위에서 말한 상위 수준은 추상 클래스이며 하위 수준은 구체 클래스이다. 구체 클래스 new 키워드를 사용하여 생성할 수 있다. 추상 클래스 추상 클래스는 구체 클래스가 가져야 하는 속성과 함수를 설정하는 클래스 추상 클래스는 클래스 앞에 abstract 키워드를 사용하여 선언 new 키워드를 사용하여..

    [CS] 트랜젝션

    [CS] 트랜젝션

    트랜잭션이란 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다. 하나의 트랜잭션은 Commit되거나 Rollback된다. 트랜잭션의 성질 Atomicity(원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다. Co..

    [CS] OSI 7 계층

    [CS] OSI 7 계층

    OSI 7 계층 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문 1계층 - 물리계층(Physical Layer) 이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 생각하면 된다. 이 계층에서는 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다. 케이블, 리피터, 허브를 통해 데이터 전송 2계층 - 데이터 링크계층(DataLin..