본문 바로가기

nodejs9

(완)Node/Express : TDD - 2 2023. 4. 30.
[O'REILLY] Node & Express - 21장 : 사이트 오픈 (완) 이번 포스팅은 사실 DevOps의 영역과 밀접한 관계가 있다. 단순한 서버의 비즈니스로직 개발을 넘어서 지속적이고 자동화된 솔루션을 구축하는 것에 대한 문화에 대한 기본적인 지식을 포함하고 있다. 1. 도메인 등록과 호스팅 - 인터넷의 모든 웹사이트/서비스는 인터넷 프로토콜(IP) 주소로 식별한다. - 도메인이름은 google.com 과 같은 사람이 이해하기 쉬운 주소이름을 숫자로된 IP 주소로 연결한다. - 호스팅은 웹사이트를 실행하는 컴퓨터를 가리킨다. - 도메인 등록업체는 대부분 호스팅 서비스를 제공하거나, 호스팅 업체와 파트너십을 맺고 있다. - 도메인이름과 IP주소를 연결하는 것은 DNS(Domain Name System)이다. 2. 보안 - 도메인 이름에는 가치가 있다. - 도메인을 탈취당할 .. 2023. 4. 21.
[O'REILLY] Node & Express - 18장 : 보안 처리 1. HTTPS - 안전한 서비스를 만드는 첫 단계 - 패킷을 암호화해서 공격자가 정보에 접근하기 힘들게 만든다. - 공개 키 인증서(SSL 인증서)를 둔다. - 인증서를 발급하는 CA(인증기관, Certificate Authority)가 있다. - 인증 기관은 브라우저 제조사가 신뢰할 수 있는 루트 인증서를 사용할 수 있게 해준다. - 서버에 반드시 CA가 발급하는 인증서를 사용해야 한다. - HTTPS를 사용하려면, CA에서 인증서를 받아야 한다. 무료/유료 둘 다 있다. 2. 인증서 직접 생성 - 개발과 테스트 목적에만 사용해야 하는 인증서. - 인증서는 계층 구조를 가지므로 브라우저는 자신이 알고 있는 CA에서 생성한 인증서만 신뢰한다. - 개인적으로 만든 인증서는 신뢰하지 않는다. - 그래도 개.. 2023. 4. 17.
[O'REILLY] Node & Express - 5장 : 품질보증 1. 품질보증 1) 예산이 풍부하거나 규모가 큰 경우 - 보통 QA부서가 따로 있고, QA부서와 개발 부서 사이에는 적대적인 공기가 흐른다. - QA는 버그를 많이 찾아야하고, 개발부서는 버그가 적어야 한다. 2) 예산이 빠듯하고 규모가 작은 경우 - 개발 인력이 QA와 소프트웨어 개발을 모두 담당한다. - 개고생한다. 3) 결론 - 개발자도 QA 기술을 갖추는 것도 매우 좋은 경쟁력이다. - 전통적으로 QA 부서에서 담당했던 역량이 개발 쪽으로 넘어오는 추세가 되면서, 개발자들도 QA에 책임 지는 일이 많아졌다. - 이런 상황에서는 QA에 특화된 소프트웨어 엔지니어가 개발자들의 조언가 같은 역할을 하면서 개발 업무에 QA를 넣으 수 있게 돕는다. 2. QA 계획 - QA는 창의적인 과정과 다르게 질서의.. 2023. 3. 13.
[O'REILLY] Node & Express - 4장 : 디렉터리와 버전 관리 1. 파일과 디렉터리 구조 - 프로젝트 경로의 파일 숫자는 가급적 줄이는 편이 좋다. - 일반적으로 package.json, README.md 디렉터리 이정도 - 소스 코드는 대부분 src에 보관하지만, 간결함을 위해 여기서는 그렇게 하지 않는다. - 어떻게 디렉터리와 애플리케이션을 설계했는지에 따라 README.md 에 마크다운언어로 기록해두면 좋다. - 관습적으로 정해진 것들이 있지만, 애플리케이션의 성격에 따라 효율적으로 관리하는게 근본이다. - App의 DataStructure나 API의 흐름도와는 다를 수도 있다. 다만 그 흐름을 잘 이해할 수 있게 설계하는 것이 중요하다. 나는 이렇게 쓴다. Root backend frontend 2. 버전 관리 - 장점 : 1) 문서화 : 프로젝트의 역사 기.. 2023. 3. 10.
[O'REILLY] Node & Express - 3장 : 뷰엔진 설정하기 1. 뷰엔진 설정 - 저번 시간에 npm i express-handlebars 설치를 통해 모듈을 설치했으면 다음과 같이 코드를 추가해준다. meadlolark.js - 이 코드는 뷰 엔진을 생성하고 익스프레스에서 이 엔진을 기본값으로 사용한다. - views 디렉토리를 만들고 그 안에 layouts 서브디렉토리를 만든다. - 레이아웃을 사용하면 사이트에 존재하는 모든 페이지에 프레임워크를 제공해 유지보수 지옥을 피할 수 있다. - 이제 템플릿을 만든다. /views/layouts/main.handlebars - {{{body}}} 부분의 표현식은 각 뷰에서 HTML로 바뀐다. - 핸들바 인스턴스를 만들었을 때 defaultLayout: 'main' 으로 기본 레이아웃을 선언했으므로, 따로 명시하지 않는.. 2023. 3. 8.
[O'REILLY] Node & Express - 3장 : Express 1. 스캐폴딩 - 스캐폴딩(비계, 발판) 이란 루비에서 도입한 개념이다. 프로젝트의 뼈대를 미리 만들어두고, 새 프로젝트를 시작할 때마다 뼈대(템플릿)를 복사하면 된다는 아이디어이다. - 익스프레스는 스캐폴드를 생성하는 유틸리티를 제공한다. - 단, 익스프레스의 스캐폴딩 유틸리티는 서버사이드에서 HTML을 생성하는 방향에 치중해있고, API나 단일페이지 App에는 큰 도움이 되지 않는다. - express-generator 문서에서 확인할 수 있다. 2. 메도라크 여행사 웹사이트 - 이 책에서는 가상의 회사 메도라크 여행사의 웹사이트를 예제로 사용한다. 3. 초기 단계 - 설치 : 터미널에 npm init -y 입력. - package.json 의 entry point(main) : 'meadowlark.. 2023. 3. 7.
[O'REILLY] Node & Express - 2장 : NodeJS 시작하기 1. 기본지식 - 노드 : nodejs 패키지를 설치할 수 있다. - 터미널 : 터미널을 켜고 끌 수 있으며, cd, npm 등을 활용 할 수 있다. - IDE : 객기 말고 돈 없으면 VScode 쓰자. - npm : 노드 패키지를 위한 패키지 매니저. npm install, -g, -D 등의 옵션과 기본 명령어를 알고 있다. 2. 노드로 만드는 단순한 웹서버 - 웹 서버는 파일이 컴퓨터 어디에 있는지 확인하고 브라우저(클라이언트)에 그 파일을 전송한다. - 노드는 전통적인 웹 서버와는 다른 패러다임을 제시한다. 노드에서는 앱이 곧 웹서버이다. - 이벤트 주도 프로그래밍 : 노드의 배경이 되는 철학이다. 어떤 이벤트가 일어날지, 그 이벤트에 어떻게 반응해야 할지 프로그래머가 이해해야 한다. UI의 클릭.. 2023. 3. 6.