웹(web)
-
소수점을 표현하는 방법웹(web) 2024. 5. 8. 23:04
1) 이진기수법인간은 기본적으로 10진법을 사용하지만, 컴퓨터가 이해할 수 있는 숫자는 0과 1 뿐이다. 컴퓨터는 숫자와 문자, 이미지와 같은 데이터를 0과 1 만을 사용하여 저장한다. 0과 1을 사용하는 방법을 2진법이라 부른다.따라서, 컴퓨터에서 소수점을 다루는 방법을 알려면 10진수로 표현된 소수점을 2진수로 어떻게 표현하는지 알아야한다.일단 소수점 앞부분은 기존 정수를 변환하는 방법과 동일하다. 소수점 뒤에 있는 숫자들을 하나씩 2진수로 바꿔버리는 방법을 생각해볼 수 있지만 그렇게 하면 아래 예시처럼 서로 다른 10진수 숫자가 2진수로 변환되었을 때 같아지는 문제가 있다.잘못된 변환 방법 예시) 변환된 2진수가 같아짐0.9 -> 0.10010.41 -> 0.100 1소수점 뒤에 숫자는 정수부에서..
-
csrf 이란웹(web) 2024. 5. 2. 22:04
csrf(cross-site request forgery)란 공격자가 웹 보안 공격 중 유저가 의도하지 않은 행동을 하게 하는 것인데, 다음 세 가지 조건을 만족해야 성립한다.1. 공격자가 의도한 행동이 어플리케이션 안에서 일어난다.2. 쿠키 기반 세션을 사용하는 어플리케이션이어야 한다.3. 어플리케이션 개발자가 예측하지 못한 요청 파라미터여야 한다.간단하게 예를 들면 쿠키 기반 세션을 가진 웹 어플리케이션이라면, 로그인 인증이 되면 클라이언트 측 쿠키에 세션 유지를 목적으로 특정한 값(세션 키 등) 저장하여 사용할 수 있다. 이후 클라이언트서버 간의 통신 간 쿠키에 세션 인증이 되는 값이 있기 때문에 별도의 인증 없이도 권한에 대한 인증이 통과된다. my-website.com 사이트에서 비밀번호 변경..
-
-
ioredis 레디스 클러스터 설정웹(web)/백엔드 기초 2023. 11. 21. 18:38
레디스는 메모리 캐시로 disk i/o 에 비해 속도상 이점이 있으므로 빠른 처리를 필요로 할 때 이용할 수 있다. useCase로는 chat, response cache, 자주 조회되는 데이터, session manager, pub-sub 등 다양하다. (공식문서 참고: https://redis.com/solutions/use-cases) 레디스를 클러스터 방식으로 사용하는 이유는 클라이언트 입장에서 레디스가 죽지 않고 계속 서빙되도록 하기 위함이다. 최소 3개 이상의 master를 두어야하며 몇 가지 제약사항이 따른다. 이를 통해, 안정적인 레디스 서비스를 제공할 수 있다. nodejs 런타임에서 ioredis를 이용하여 클러스터를 설정하고자 하였는데 찾기가 어려웠다 단일 노드에 대한 사용은 많이 나..
-
크롬을 이용한 프론트엔드 디버깅웹(web) 2022. 4. 22. 14:44
크롬 개발자도구- Sources-Open Files 순서로 누른다 그러면 다음처럼 검색 창이 뜨는데 js를 쳐서 아무거나 눌러보자 검색창 검색 결과에서 하나를 클릭하면 파일이 보이게 된다. 코드 라인별로 라인 넘버가 표기되는데 클릭해보면 파란색으로 색이 바뀐다. 파란색으로 바뀌면 이 코드에 breakpoint를 걸게 된 것이다. 새로 고침을 헀을 때 브레이크 포인트에 해당하는 코드가 실행된다면 다음처럼 브라우저가 동작을 멈추고 디버깅 화면을 보여준다. 1이 step over, 2가 resume script execution 이다. 1은 해당 라인을 실행하고 다음 라인으로 넘어가게 해준다. 쉽게 말해 한줄 한줄 실행하는 것을 눈으로 볼 수 있다. 2는 다음 브레이크 포인트까지 멈추지 않고 실행하게 해준다...
-
-
버전관리(SemVer)에서 틸드(~)와 캐럿(^)웹(web) 2022. 1. 4. 22:58
npm package.json 에서 패키지의 버전을 관리하다 보면 ~1.0.1 이나 ^12.1.2 과 같은 것을 볼 수 있다. 여기서 틸드(~)와 캐럿(^) 에 대해서 살펴보자. 틸드와 캐럿을 사용하기 전에 1.1.3 과 같이 썼을 때 각 자리가 어떤 것을 의미하는지 짚고 넘어가자. npm 에서는 버전관리시에 SemVer 방식을 사용한다. https://semver.org/ Semantic version이라고 불리는 버전 방식을 기준으로 다음과 같이 해석된다. MAJOR.MINOR.PATCH 이라면 MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards compat..
-
HTTP/2웹(web)/HTTP 2021. 10. 3. 12:48
프론트엔드 개발시 http2에 대해서 기본적으로 알아야할 부분들을 정리한 글입니다. rfc 7540과 http2 in action, google dev 에서 필요한 부분들을 참고하여 작성하였습니다. 글 후반부에는 프론트엔드 개발시 http2 환경에서 최적화에 대한 내용도 포함하였습니다. terms by rfc7540 (https://datatracker.ietf.org/doc/html/rfc7540#section-2.2) - client: The endpoint that initiates an HTTP/2 connection. Clients send HTTP requests and receive HTTP responses. - connection: A transport-layer connection be..