본문 바로가기

더이상 하지 않는 Backend - NodeJS/Node-Express 개론(완)33

[O'REILLY] Node & Express - 21장 : 사이트 오픈 (완) 이번 포스팅은 사실 DevOps의 영역과 밀접한 관계가 있다. 단순한 서버의 비즈니스로직 개발을 넘어서 지속적이고 자동화된 솔루션을 구축하는 것에 대한 문화에 대한 기본적인 지식을 포함하고 있다. 1. 도메인 등록과 호스팅 - 인터넷의 모든 웹사이트/서비스는 인터넷 프로토콜(IP) 주소로 식별한다. - 도메인이름은 google.com 과 같은 사람이 이해하기 쉬운 주소이름을 숫자로된 IP 주소로 연결한다. - 호스팅은 웹사이트를 실행하는 컴퓨터를 가리킨다. - 도메인 등록업체는 대부분 호스팅 서비스를 제공하거나, 호스팅 업체와 파트너십을 맺고 있다. - 도메인이름과 IP주소를 연결하는 것은 DNS(Domain Name System)이다. 2. 보안 - 도메인 이름에는 가치가 있다. - 도메인을 탈취당할 .. 2023. 4. 21.
[O'REILLY] Node & Express - 20장 : 디버깅 1. 디버깅 원칙 - 디버깅은 보통 버그를 찾고 제거하는 작업이다. - 디버깅에서 가장 중요한 것은 '제외' 이다. 문제의 원인에서 제외해가며 남는 것이 범인이다. - 제외할 수 있는 것이 많을 수록 살펴봐야할 부분이 줄어든다. 2. 방법 - 코드 블럭을 주석처리하거나 비활성화해본다. - TDD 방법론을 통해 개발하여 단위테스트를 모두 제외하면서 디버깅할 수 있도록 한다. - 네트워크 트래픽을 분석해본다. - 직접 실행 입력을 해보고 QA해본다. - 버전관리를 통해 버그가 사라질 때 까지 앞뒤로 왔다리갔다리 하면서 테스트 해본다. - 복잡한 다른 시스템을 제외하고 버그부분만 똑 떼서 모킹해서 테스트 해본다. 3. 제외가 모든 것의 답은 아니다. REPL 활용 - 브라우저의 콘솔을 열면 REPL이 열린다... 2023. 4. 21.
[O'REILLY] Node & Express - 19장 : 서드파티 API - 소셜 네트워크, 지오로케이션 서비스, 맵 서비스 등의 서드파티 API가 있으면 비즈니스로직에 당연히 도움이 된다. - 서드파티 API의 필요성은 더 설명할 필요 없을듯 1. 소셜미디어 - 유튜브 , 페이스북 , 트위터 , 인스타그램 등의 서드파티 API를 활용하여 검색/호출/렌더링 등의 작업을 할 수 있다. - 소셜미디어와의 통합은 대부분 프론트엔드 작업이다. - 각 소셜미디어 개발팀에서 제공하는 API키와 자바스크립트 스니펫을 활용해 프론트엔드에서 API요청을 통해 각종 기능을 활용할 수 있다. - 서버에서는 소셜미디어의 API중에서도 검색, 최근트윗 조회 등의 기능을 별도로 요청해서 캐싱하여 성능을 개선할 수 있다. - 항상 사용하고자 하는 서비스의 개발팀이 제공하는 공식문서를 자세히 읽어보고 적.. 2023. 4. 21.
[O'REILLY] Node & Express - 18장 : 보안 처리 -2(인증) 1. 인증 - 인증은 크고 복잡한 주제이다. - 웹앱에서 빼놓을 수 없는 중요한 주제이고, 제발 직접 만들려고 하지 말자. - 앱의 보안시스템을 이해하는 것은 중요하지만, 직접 구현하는 시도는 '보안 전문가' 가 아니라면 접어두는 것이 좋다. 2. 인증과 권한 부여 - 인증은 사용자를 확인하는 작업이다. (Authentication) - 권한부여는 사용자에게 접근/수정/볼 권한을 주는 것이다.(Authorization) - 인증은 AuthN, 권한부여는 AuthZ라고 짧게 표기하는 사례가 많다. 3. 비밀번호 문제 - 비밀번호에서 문제는 사람이다. 사람이 만들기 때문에 가장 약한 고리이다. - 2018년 보안 분석 결과 대부분의 비밀번호가 '123456' 이었고, 'password'가 두 번째로 많았다고.. 2023. 4. 17.
[O'REILLY] Node & Express - 18장 : 보안 처리 1. HTTPS - 안전한 서비스를 만드는 첫 단계 - 패킷을 암호화해서 공격자가 정보에 접근하기 힘들게 만든다. - 공개 키 인증서(SSL 인증서)를 둔다. - 인증서를 발급하는 CA(인증기관, Certificate Authority)가 있다. - 인증 기관은 브라우저 제조사가 신뢰할 수 있는 루트 인증서를 사용할 수 있게 해준다. - 서버에 반드시 CA가 발급하는 인증서를 사용해야 한다. - HTTPS를 사용하려면, CA에서 인증서를 받아야 한다. 무료/유료 둘 다 있다. 2. 인증서 직접 생성 - 개발과 테스트 목적에만 사용해야 하는 인증서. - 인증서는 계층 구조를 가지므로 브라우저는 자신이 알고 있는 CA에서 생성한 인증서만 신뢰한다. - 개인적으로 만든 인증서는 신뢰하지 않는다. - 그래도 개.. 2023. 4. 17.
[O'REILLY] Node & Express - 17장 : 정적 콘텐츠 16장은 Only React에 관한 내용이므로 스킵한다. 1. 정적 콘텐츠의 종류 - HTML : 웹앱에서 뷰를 통해 HTML을 동적렌더링한다면 일반적으로 정적 자원이라고 말하지 않는다. SPA앱은 일반적으로 정적 HTML파일 단 하나를 클라이언트에 전송하며 이런 경우는 HTML을 정적 자원으로 간주한다. - CSS : 포스트CSS가 있더라도 어차피 클라이언트가 받는 css는 정적자원이다. - JS : 클라이언트사이드의 JS는 일반적으로 정적자원으로 간주한다. - 이진 파일 : PDF, 압축파일, 설치파일, 워드문서 등등 - 멀티미디어 : 이미지/비디오/오디오 2. 성능 고려사항 - 성능에서 고려할 점은 요청 숫자를 줄이는 것과 콘텐츠의 크기를 줄이는 것이 중요하다. - 둘 중에서는 HTTP요청 숫자 자.. 2023. 4. 13.
[O'REILLY] Node & Express - 15장 : REST API와 JSON - 지금까지 여러 REST API의 예제를 보아왔지만, 지금껏 '서버에서 데이터를 처리하고 클라이언트에게 html을 전송한다는 예제' 가 주를 이뤘다. - 하지만 2023 현재 대세는 상당수가 HTML, CSS, JS 등의 렌더링 파일 자체는 정적으로 받아오고, 실제 데이터는 JSON으로 AJAX를 통해 받아서 HTML를 구성하는 SPA의 형태를 띄는 경우도 많다. 물론 SEO가 구려서 SSR이 다시 대두되고 있어서 프로젝트의 형태와 목적에 따라서 적절히 구성하는 것이 현명하다. - 어쨌든 SSR 방식이더라도, 서버의 API는 매우 중요하며, API엔드포인트를 제공하는 방법을 알아야한다. - 웹 서비스는 HTTP로 접근할 수 있는 어플리케이션 프로그래밍 인터페이스 (Application Programmi.. 2023. 4. 11.
[O'REILLY] Node & Express - 14장 : 라우팅(Route) - 라우팅은 웹서비스에서 중요한 요소 중 하나이다. - 라우팅은 보통 파일 기반으로 운영된다. - 단순하지만 유연하지 않다. - 익스프레스 라우팅의 기술적인 측면에서는 정보구조(Information Architecture, IA) 의 개념을 알아야 한다. - IA는 콘텐츠를 개념적으로 구조화 하는것. - IA는 즉, 콘텐츠를 주의깊게 분류하고, 논리적으로 분류하고, 스스로 코너에 몰리지 않도록 하는 개념적 방법론이다. 1. 오랫동안 유지할 수 있는 IA의 수립 조건 - URL에 기술적 세부사항을 노출하지 않는다 - URL에 의미없는 정보를 노출하지 않는다. : 의미 없는 단어가 있다면 제거한다. - 의미 없이 긴 URL은 피한다. : 다른 조건이 모두 같다면, 짧을수록 좋다. 하지만 SEO도 명심해야 한.. 2023. 4. 10.