본문 바로가기

더이상 하지 않는 Backend - NodeJS35

(완)Node/Express : TDD - 2 2023. 4. 30.
Node/Express - TDD 오랜만에 필기공부 1. 필기공부 장점 : - 쓸 때는 머리에 잘 들어온다 - 이해가 안되는 부분을 천천히 곱씹으면서 보기 때문에 좀 더 자세히 이해가 가능하다. - 써놓으면 뭔가 기부니가 좋다. - 필기 실력이 는다? 2. 필기공부 단점 : - 악필이라 보기가 싫다. 다시 읽기 싫다. - 맥-아이패드 조합이면 유니버설 컨트롤로 D&D만으로 코드스샷같은게 쉽게 옮겨지지만, 다른 조합이라면 코드 스샷해서 파일 옮겨서 첨부하기 귀찮다. - 아주 오랜만에 읽는 거면 뭐라고 똥글을 싸놨는지 감도 안온다. 2023. 4. 28.
[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.