전체 글

전체 글

    [Node.js] JWT Token 생성 및 검증(오류 제거)

    jsonwebtoken 설치 $ npm install jsonwebtoken --save Node.js에서 위 코드를 입력하여 jsonwebtoken을 설치한다 npm WARN optional Skipping failed optional dependency /chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: fsevents@2.3.2 설치하게 되면 저는 위와 같이 오류가 났습니다. $ npm install jsonwebtoken --save --no-optional 그래서 위의 코드를 입력하여 optinal Skipping failed 오류를 없애줍니다. 하지만 아직 No reposito..

    [개념 스터디] 3주차

    타입스크립트 TypeScript = Type + JavaScript 타입스크립트는 자바스크립트에 타입을 부여한 언어로 자바스크립트의 확장된 언어라고 볼 수 있다. 특징 타입스크립트는 동적인 자바스크립트를 정적으로 바꿔준다 타입스크립트는 컴파일 이후에 자바스크립트가 된다 타입의 반환값을 명확하게 제시해준다 컴파일 단계에서 오류를 포착할 수 있다 정적 타입으로 지정되기 때문에 개발자의 의도를 명확하게 나타내어 가독성을 높인다 오류를 쉽게 포착할 수 있기 때문에 디버깅이 편하다 function sum(a: string, b: string) { return a + b; } sum("Type","Script); //TypeScript TypeScript를 이용하여 a와 b에 string 타입을 지정해준 코드. 만..

    [개념 스터디] 2주차

    HTTP HTTP 하이퍼 텍스트 전송 프로토콜(Hypertext Transfer Protocol)의 약자이다. 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이며, 웹에서 클라이언트와 웹 서버간의 통신을 위한 프로토콜 중 하나이다. HTTP 1.1/2.0 HTTP1.1은 연결당 하나의 요청과 응답을 처리한다. 그렇기 때문에 동시 전송 문제와 다수의 리소스를 처리하는데 속도와 성능의 문제가 존재합니다. 연결당 하나의 요청과 응답을 처리하기 때문에 패킷이 잘 도착했다는 응답이 늦어지게 되어 패킷 왕복 시간인 RTT가 증가합니다. HTTP2.0은 연결당 여러개의 요청과 응답을 처리합니다. 그렇기 때문에 한 커넥션에 여러 개의 메시지를 동시에 주고받을 수 있고, RTT가 감소하기 때문..

    도메인에 Let's Encrypt로 HTTPS 적용하기

    운영체제 : Ubuntu 18.04 (LTS) 웹서버 : Nginx BL : PHP DBMS : MySQL Certbot 설치 먼저 AWS EC2에서 자신의 인스턴스 보안 그룹의 인바운드 규칙에 HTTPS를 위 사진처럼 추가해줍니다. EC2 Management Console $ sudo apt update $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt install python3-certbot-nginx Certbot을 설치해주고 Certbot의 Nginx 패키지도 설치해줍니다. python3로 해도 되고 python으로 해도 됩니다 $ sudo vi /etc/..

    PHPMyAdmin 외부 접속 오류 및 수동 설치하기

    PHPMyAdmin 접속 오류 이전 글을 보면서 PHPMyAdmin 설치를 잘 하여 localhost/phpmyadmin은 잘 접속이 되지만, 도메인/phpmyadmin이나 도메인/phpmyadmin/index.php을 입력하면 아예 접속조차 되지 않는 경우가 있다. 이럴 때 보통 http error 500 phpmyadmin 에러를 나타내거나 다른 접속할 수 없다는 오류 페이지를 나타낸다. 나는 이를 해결하기 위해 3일 동안 밤새가며 이유가 뭔지 찾기 시작했고, 구글링을 하며 많은 해결 방법들을 실행해봐도 똑같은 오류 메시지가 나타났다. 3일 동안 밤새며 많은 시도 끝에 해결할 수 있었는데, 그 방법은 PHP와 PHPMyAdmin간의 버전 호환성을 맞춰주는 것이다. $ sudo php -v 먼저 저는 ..

    AWS에 PHPMyAdmin설치하기 (nginx)

    클라우드 서버 : AWS EC2 인스턴스 OS : Ubuntu 18.04.05 LTS WebServer : Nginx BL : PHP DBMS : MySQL PHPMyAdmin 기본 설치 $ sudo apt update $ sudo apt install phpmyadmin apache를 이용해서 설치할 분들은 apache를 선택하고 ok를 눌러주시면 되지만 저는 nginx를 사용할 것이기 때문에 아무것도 선택하지 않고 tab키를 눌러서 바로 ok만 선택했습니다. 또한 간혹 phpmyadmin을 삭제했다가 재설치하시는 분들은 아래 사진이 먼저 나온 후 위에 사진이 나오기도 하므로 당황하지 않고 진행하면 됩니다. phpmyadmin은 로컬에서 데이터베이스를 관리할 수 있는 프로그램이기 때문에 database..

    [개념 스터디] 1주차

    Node.js란 무엇인가 Node.js란 비동기 이벤트 주도 JavaScript 런타임으로써 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었다. 다수의 연결을 동시에 처리할 수 있으며 교착 상태에 대해 걱정할 필요가 없다. 또한 직접 수행하는 함수도 거의 없으므로 프로세스에서 결과 블로킹이 되지 않는다. Node.js에서는 발전된 이벤트 모델을 선택해서 라이브러리가 아닌 런타임 생성자로 이벤트 루프를 제공한다. 입력 스크립트를 실행한 후에 이벤트 루프에 바로 진입하며 진행할 콜백이 없다면 이벤트 루프를 종료한다. 또한 웹 라이브러리나 프레임워크의 기반으로 아주 적합하다. npm과 yarn이란 무엇인가 npm 자바스크립트 패키지 매니저로, node.js의 기본 패키지 관리자이다. npm으로 C..

    AWS EC2와 도메인 연결(가비아)

    💡 1. AWS의 Route 53으로 이동 AWS Route 53 💡 2. 호스팅 영역에서 호스팅 영역 생성 클릭 💡 3. 가비아에서 구매한 도메인 주소 입력 후 호스팅 영역 생성 완료하기 💡 4. 생성한 호스트 영역을 클릭 후 레코드 생성하기 💡 5. 값에 연결할 EC2 IP 주소를 넣은 후 레코드를 생성한다. (www.hy-dku-server.shop이나 test.hy-dku-server와 같은 서브 도메인을 넣고 싶다면 레코드 이름에 www나 test 같은 원하는 호스트 이름을 적는다.) 💡 6. 레코드 생성 후 💡 7. 레코드에서 생성된, 다음 4개의 값을 가비아에 적용하기 위해 복사 💡 8. My 가비아에서 연결할 도메인을 고른 뒤 네임 서버의 설정 버튼을 눌러준다 💡 9. 아까 복사했던 주소들..

    백준 10816번: 숫자 카드 2

    10816번: 숫자 카드 2 (acmicpc.net) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net Lower bound는 찾고자 하는 숫자이상의 값이 처음으로 나오는 인덱스 값을 반환하고 Upper bound는 찾고자 하는 숫자초과의 값이 처음으로 나오는 인덱스 값을 반환한다. 이분 탐색에서 배열은 항상 정렬된 상태여야 한다. n,L,k,M = int(input()),list(map(int, input().split())),int(input()),list(map(int, i..

    백준 1476번: 날짜 계산

    1476번: 날짜 계산 (acmicpc.net) 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 a,b,c = map(int, input().split()) e = [] s = [] m = [] for i in range(532): E=15*i+a S=28*i+b M=19*i+c e.append(E) s.append(S) m.append(M) if E in s: for j in range(len(m)): if E == m[j] and m[j..

    우분투 리눅스 E325

    우분투 리눅스에서 E325는 실행하려는 프로그램이 비정상적인 종료로 .swp 파일이 남겨져 있을 때 발생하는 오류이다. 이럴 때는 1. 위 사진처럼 오류가 뜬 상태에서 엔터를 눌러서 vi로 이동한다 2. :q를 입력해서 vi를 종료한다 3. vi를 나온 다음 "ls -la"를 입력해서 .swp 파일을 찾고 4. sudo rm .파일명.swp를 입력해서 삭제한다 앞에 "sudo"를 안붙이면 허가 거부가 떠서 삭제가 되지 않으므로 주의!!

    vi 명령어

    명령 모드 vi를 시작하게 되면 방향키를 이용하여 커서를 이동할 수 있고 입력 모드를 불러올 수 있다. i: 현재 커서 위치에 삽입 a: 현재 커서 바로 다음 위치에 삽입 dd: 현재 줄 삭제 입력 모드 vi를 실행하면 "i"나 "a"를 입력해서 자유롭게 코드나 글을 작성할 수 있다. 마지막 행 모드 입력 모드에서 "ESC"를 누르게 되면 명령 모드로 돌아오고 명령 모드에서 ":"를 입력하면 마지막 줄에서 입력을 할 수 있도록 해준다. q: 종료만 wq: 저장 후 종료 자료 참고 https://blockdmask.tistory.com/25 [vi 명령어] vi 명령어 정리 [리눅스나 유닉스에서 사용하는 vi 편집기 명령어 총 정리 입니다.] 1. vi 편집기 명령어 전체 구조 살펴보기 2. vi 명령어 ..