오늘은 javascript의 변수인 let, var 상수인 const 를 알아보자. - let let은 ES6에 추가된 '변수' 로 값을 저장한 값을 수정할수있다. block 안에서 선언한 변수는 block scope를 가져 해당 scope에서만 사용할수 있다. 이처럼 첫번째 block 밖에서 선언한 변수 gname은 block밖에서도 사용하지만, block안에서 선언한 변수 name은 그 밖에서 사용하지 못해 출력이 되지 않았다. 근데 이게 ES6 부터 나온거면, 그전에는 변수를 무엇으로 썼을까? - var var는 ES6 이전 쓰던 '변수'이다. ES6이후로는 변수 선언시 거의 무적권 let을 사용하는데, var가 안쓰이게 된데에는 크게 2가지 이유가 있다. 1. var hoisting 대부분 프로그..
로컬에서 웹개발을 하다보면 배포를 할 상황이 반드시 온다. 실제 웹사이트처럼 배포하면 좋겠지만 DB를 붙이고, 프론트엔드와 백엔드의 통신을 확인하고 nginx 서버를 구성하는 일은 매우 복잡하다. 또 편리한 클라우드 플랫폼이 매우 많이 생기기는 했지만 내가 로컬에서 테스트 해보던 환경을 그대로 가지고 가려면 그에 맞게 프로젝트를 변경해야 할수도있고 초보자가 감당하기는 쉽지 않은 일들이다. 오늘은 아주아주 간단하게 리눅스 ec2 한대에, 프론트엔드 백엔드 mySQL을 모두 배포하는 방법을 소개하겠다. 준비물은 리눅스 ec2 한대, 그에 연결할 SSH 접속 툴, 배포하고싶은 프로젝트 정도이다. 이마저도 없다면 내가 준비해놓은 자료들을 이용하도록 하자. 무료로 ec2 생성하기 -> [AWS nodejs 웹서버..
여러가지 서버를 배포하고, 가상컴퓨터를 운영할때 터미널 접속 툴이 있으면 매우 편리하다. aws에서 기본적인 터미널을 제공하기는 하지만 실용적이지는 않다. 간단하게 Xshell로 연결하는 방법을 알아보작 먼저 xshell 설치 관리자를 설치해준다 xshell 무료 라이선스 링크 무료 라이선스 - NetSarang Website 다운로드 받은 파일을 실행해주고, 계속 다음을 누르다가 기본값 그대로 설치를 해준다 설치 완료후 실행시 이런화면이 나오는데 나중에 선택하고 넘어가면 된다. 이런 화면이 뜨면 설치가 완료된것이다. 이제 EC2와 연결을 해보자. 좌측 상단에 새로만들기를 눌러주면 이런창이 나오는데, 생성한 ec2의 public IPV4 DNS를 호스트 란에 입력해준다. EC2 가 없다면 다음을 참고해 ..
프리티어 ec2 인스턴스를 생성해서 nodejs 서버를 배포하려고 한다. 먼저 aws 왼쪽 위 검색 바에서 ec2를 검색하고, ec2 메뉴로 들어간다. 이런 창이 나오면, instance를 클릭 한다. 다음 이런창이 나오면 launch instance를 클릭한다. 여기서부터 중요하다. name : 인스턴스의 이름을 결정해준다. 나는 test_ec2로 생성했다. OS : 인스턴스에서 사용할 운영체제이다. 특별히 사용해야하는 OS가없다면 ubuntu 22.04버전으로 해준다. instance type : 인스턴스의 CPU , 램등 자원이 어느정도 할당될지 결정하는 것이다. free-tier를 기준으로 해야하기 때문에 t2.micro로 해준다. ! 이떄 모든 항목이 free-tier eligible인지 반드시..
bregman-arie/devops-exercises: Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, 가상화. DevOps 인터뷰 질문 (github.com) GitHub - bregman-arie/devops-exercises: Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terrafor Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ans..
MVC모델을 공부하다가 컨트롤러에서 render와 redirect 로 페이지를 이동하는데 둘의 차이가 궁금했다. 먼저 두 함수의 쓰임새는 이러하다 res.redirect([status,] path) res.render(view [, locals][, callback]) 보면 redirect는 파라미터에 path를, render는 view객체를 전달한다. 이말인 즉슨 render는 단순히 view파일을 띄워주고, redirect는 해당경로로 이동한다는 것을 의미한다. 예를들어 login요청시에 login화면을 띄워주는 두가지 방법에 대해 render는 등록된 view경로에서 login화면을 컨트롤러를 통해 가져다 주고, redirect는 현재 경로에서 /login 이 붙은 URL로 이동하는것이다.
이제 nodejs에 로컬에서 실행하는 DB로 MYsql을 연결해보겠다. 먼저 nodejs mysql을 연결해주는 라이브러리를 설치해준다 npm install -s mysql 이제 아래코드로 DB에 시험해볼 간단한 테이블을 생성한다. CREATE DATABASE login_lecture; CREATE TABLE users( id varchar(30) NOT NULL, name varchar(30) NOT NULL, psword varchar(30) NOT NULL, in_date datetime DEFAULT current_timestamp, PRIMARY KEY (id) ); INSERT INTO users(id,name,psword) values("lls","김철수","123"), ("asd","김강원..
MVC패턴에서의 model이란 데이터를 가지거나, 가져오는 처리를 해주는 기능을 의미한다 오늘은 컨트롤러에 존재하는 user데이터를 저장하는 기능과 user데이터를 조작하는 기능을 나눠 model을 분리해본다 먼저 src아래 models폴더와 그아래 UserStorage.js파일을 만들고 컨트롤러의 user를 옮겨주자 그다음 home.ctrl.js에서 models의 UserStorage를 가져오고, console에 로그로 띄워보자. 편의를 위해 response코드는 잠시 주석처리하자 이제 서버 실행후 로그인 버튼을 누르면 이렇게 user데이터들이 출력된다 하지만 MVC패턴의 구조상 controller에서 데이터를 직접 접근할수 없어야 한다. 따라서 데이터 은닉화를 위해 user앞에 #을 붙여주도록 수정한..