분류 전체보기 102

[HTTP 완벽 가이드 14장] 보안 HTTP

14.1 HTTP를 안전하게 만들기대량 구매, 은행 업무 등을 위해서는 HTTP와 디지털 암호화 기술을 결합해야 합니다. HTTP는 원래 평문 통신 프로토콜로, 도청이나 데이터 위조에 취약합니다. 따라서 디지털 암호화 기술을 활용하여 HTTP 트랜잭션을 안전하게 보호하는 것이 필수적입니다.서버 인증: 위조된 서버가 아닌 진짜 서버와 이야기하고 있음을 알 수 있어야 합니다. 서버 인증은 웹사이트의 신뢰성을 보장하고, 사용자가 피싱 사이트에 속아 개인 정보를 유출하는 것을 방지합니다.클라이언트 인증: 진짜 사용자와 이야기하고 있음을 알 수 있어야 합니다. 클라이언트 인증은 사용자 계정을 보호하고, 권한 없는 사용자의 접근을 차단합니다.무결성: 데이터가 위조되는 것으로부터 안전해야 합니다. 데이터 무결성은 전..

[HTTP 완벽 가이드 12장] 기본 인증

12. 기본 인증개요인증(Authentication)은 사용자가 주장하는 신원이 실제 사용자의 신원과 일치하는지를 확인하는 과정입니다. 웹 시스템에서 인증은 사용자가 시스템에 접근하기 위해 자신의 신원을 증명하는 필수적인 절차입니다. HTTP는 이러한 인증을 위한 다양한 메커니즘을 제공하며, 이를 통해 서버는 클라이언트의 신원을 확인하고 권한을 부여할 수 있습니다.12.1.1 HTTP 인증 요구/응답 프레임워크HTTP는 서버와 클라이언트 간의 상호 작용을 통해 인증을 수행합니다.인증 요구: 서버는 클라이언트의 요청에 대해 인증 정보를 요구할 수 있습니다. 이때 401 Unauthorized 상태 코드와 함께 WWW-Authenticate 헤더를 보냅니다. WWW-Authenticate 헤더에는 사용 가능..

[HTTP 완벽 가이드 10장] HTTP/2.0

1. 웹 성능 향상을 위한 새로운 기준, HTTP 2.0웹 페이지를 구성하는 다양한 요소(HTML, CSS, 이미지 등)를 효율적으로 가져와 빠르게 보여주는 것은 웹 개발의 핵심 과제입니다. 과거 HTTP 1.1 프로토콜은 한 번에 하나의 요소만 가져올 수 있어 페이지 로딩 속도가 느리고, 여러 연결을 동시에 열어야 하는 등의 한계점이 있었습니다. 이러한 문제를 해결하기 위해 등장한 것이 바로 HTTP 2.0입니다.HTTP 2.0은 Google에서 개발한 SPDY 프로토콜을 기반으로 표준화된 프로토콜로, 웹 성능을 획기적으로 향상시켰습니다. 하나의 TCP 연결을 통해 여러 개의 요청을 동시에 처리하고, 헤더를 효율적으로 압축하며, 서버가 필요한 리소스를 미리 전송하는 등 다양한 기능을 제공합니다. 2. ..

[HTTP 완벽가이드 9장] 웹 로봇

웹 로봇은 사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램9.1 크롤러와 크롤링웹 크롤러 웹페이지를 한 개 가져오고, 다음 그 페이지가 가리키는 모든 웹페이지를 가져오는 것을 재귀적으로 반복하는 방식으로 웹을 순회하는 로봇9.1.1 어디에서 시작하는가: 루트 집합 루트집합: 크롤러가 방문을 시작하는 URL들의 초기 집합=> 충분히 다른 장소에서 URL을 선택하여 루트 집합을 만들어야 한다. 좋은 루트 집합이란?=> 크고 인기 있는 웹사이트, 새로 생성된 페이지들의 목록, 자주 링크되지 않는 잘 알려져 있지 않은 페이지들의 목록을 구성9.1.2 링크 추출과 상대 링크 정상화크롤러가 크롤링을 진행하면서 새 링크를 발견함에 따라 목록이 급속히 확장된다.9.1.3 순환 피하기..

12장 모든 웹 개발자가 관심을 가져야 할 핵심 웹 지표

12.1 웹사이트와 성능시작하며사용자는 속도가 빠르고, 보안이 좋으며, 사용성이 좋은 웹사이트를 기대합니다. 그러나 많은 개발자들은 이러한 성능에 크게 신경 쓰지 않는 경우가 많습니다.개발자의 기기는 대부분 일반적인 사용자의 평균적인 기기보다 성능이 뛰어나기 때문에 이러한 문제를 느끼지 못할 수 있습니다.성능을 개선하는 작업은 어렵고 재미있지 않으며, 눈에 띄는 성능 향상을 기대하기 어렵습니다.이번 포스팅에서는 웹 개발자가 관심을 가지며 개발해야할 핵심 웹 지표에 대해 설명합니다.12.2 핵심 웹 지표란?이전까지 성능 측정을 위한 뚜렷한 표준이나 측정 방법이 정해져 있지 않았으나, 구글에서 만든 Core Web Vitals가 등장했습니다. 주요 지표는 다음과 같습니다:최대 콘텐츠풀 페인트 (LCP)최초 ..

10장 리액트 17과 18의 변경 사항 살펴보기

10.1 리액트 17 버전 살펴보기10.1.1 리액트의 점진적인 업그레이드리액트 17은 애플리케이션이 너무 커서 한 번에 업그레이드하기 어려운 상황에서도 유용합니다. 버전이 서로 다른 리액트가 공존할 수 있도록 지원해 점진적인 업그레이드를 가능하게 합니다. 이는 애플리케이션의 부분적인 업그레이드를 통해 점진적으로 최신 버전의 기능을 활용할 수 있게 해줍니다.10.1.2 이벤트 위임 방식의 변경리액트 16에서는 이벤트 핸들러가 document 레벨에서 실행되었습니다. 그러나 리액트 17부터는 루트 요소로 변경되었습니다. 이는 각 이벤트가 리액트 컴포넌트 트리 수준에서 격리되므로, 이벤트 버블링으로 인한 혼선을 방지할 수 있습니다.10.1.3 import React from 'react'가 더 이상 필요 없..

3장 리액트 훅 깊게 살펴보기

3.1 리액트의 모든 훅 파헤치기3.1.1 useState함수형 컴포넌트는 매번 함수를 실행해 렌더링이 일어나기 때문에 함수 내부의 let으로 정의된 변수도 함수가 실행될 때마다 다시 초기화됩니다.useState는 클로저로 구현되어 외부에 해당 값을 노출시키지 않으면서 함수가 실행되더라도 이전의 값을 정확하게 꺼내 쓸 수 있습니다. 게으른 초기화useState 인수로 원시값을 넣지 않고 함수를 넣어줍니다. 초기값이 복잡하거나 무거운 연산을 포함하고 있을 때 사용하며, 리렌더링시에는 함수를 실행하지 않습니다. 이는 localStorage, sessionStorage 접근, 배열 순회 등이 필요할 때 사용하는 것이 좋습니다. import React, { useState } from 'react';const ..

8장 좋은 리액트 코드 작성을 위한 환경 구축하기

8.1 ESLint를 활용한 정적 코드 분석8.1.1 ESLint 살펴보기ESLint는 어떻게 코드를 분석할까?자바스크립트 코드를 문자열로 읽는다.자바스크립트 코드를 분석할 수 있는 파서로 코드를 구조화한다.2번에서 구조화한 트리 AST를 기준으로 각종 규칙과 대조한다.규칙과 대조했을 때 이를 위반한 코드를 알리거나 수정한다.ESLint는 파서 espree를 사용하여 자바스크립트 코드를 분석한다. AST 트리 예시를 확인하고 싶다면 아래 사이트를 참조해보자.https://astexplorer.net/ no-debugger 규칙Eslint에는 debugger; 선언을 금지한 규칙이 존재한다. 해당 규칙은 다음과 같이 작성되어있다.module.exports = { meta: { type: 'probl..

FE개발자가 프로모션 페이지 개발을 할 때 고려할 점

그동안 회사에서 3개 정도의 굵직 굵직한 프로모션 페이지 개발을 맡게 되었다.프로모션 페이지는 잠시동안만 사용자에게 오픈되는 페이지지만, 다양한 디자인과 애니메이션 기법들을 사용하여 사용자들의 이목을 끌어야하고, 여러 제휴사나 관련 부서와 협업해야 하므로 준비 기간 동안 많은 사람들과 커뮤니케이션 등이 필요하게 된다.프로모션 페이지 개발을 하면서 알게 된 레슨 런드에 대해 정리해보고자 한다. (ᵔ๑ᵕ̳ ᴥ ᵕ̳๑)っ‧⁺.* ೃೀ 프로모션 페이지 개발의 특징1. 로직은 매우 단순하다.다양한 예외 처리나, 오류 케이스 처리가 있는 서비스 개발 프로젝트와는 다르게, 프로모션의 경우 로직이 매우 단순한 편이다. 이벤트 내용을 보여주는 것이 주된 로직이고, 이외의 로직 처리는 이벤트 응모 버튼이나, 응모 내역 조..

코스모스

빅뱅, 캐플러의 법칙 등 고등학교 때 배웠던 내용들이 새록새록 기억나면서 너무 재미있게 읽었다. 과학이란 당연하다고 생각했던 것을 이론으로 정립하고 원리를 설명하게 해줌으로써 세상을 잘 이해하게 해준다는 점에서 매력적인 것 같다. 이 광활한 우주에서 이렇게 극히 드문 확률로 지구라는 곳에 살고 있는 우리들. 국가를 이루고, 법을 만들고, 책도 만들고, 영화도 만들고, 집도 짓고 이렇게 옹기 종기 살고 있다는 게 어떻게 보면 너무 귀엽고 하찮은 것 같다. ㅋㅋㅋ 나는 로또 확률이 매우 낮다는 걸 알기 때문에 절대 로또를 안 사는 사람인데, 사실 지구에 인간으로 태어나서 이렇게 살고 있다는 걸 생각해보면 로또 당첨 확률은 엄청 높은걸지도 모르겠다는 생각을 했다. 어쨌든 나는 인간으로 태어난 것에 만족하고 있..

일상/독서 2024.04.19