전체 글 241

[함수형코딩]WEEK3 불변성 이야기

함수형 코딩책에서 사용하는 개념어들은 이렇게 바꿔서 생각하면 쉽다.액션 -> 부수효과 , 계산 -> 순수함수, 데이터 -> 불변성 이번에 읽은 챕터에서는 더 다양한 이야기를 하고 있지만,책을 읽으면서 가장 중요하다고 생각되는 불변성과 그에 따른 복사 개념들을 정리해 보려고 한다. 책에 있는 내용과 내가 찾아본 내용을 추가해 작성했다! 🚀 불변성은 왜 중요할까? 책에서 액션을 줄이는것 만큼이나 중요한 것은 불변성을 유지하는 것이 중요하다고 말하고 있다.  불변성이란 말 그대로, 값을 바꾸지 않고 새 값을 만든다는 것인데 예를 들면, 📌 가변 방식const arr = [1, 2, 3];arr.push(4); //원본이 바뀜const user = { name: 'Lee', age: 30 };user.age..

FE/BOOK 2025.03.29

[함수형코딩]WEEK2 함수형 사고: 더 좋은 액션 만들기

🚀 프로그래밍에서 액션과 계산이란? 버그의 대부분은 예측할 수 없는 동작 에서 발생된다.특히나 외부 상태를 변경할때 우리가 의도하지 않은 결과가 나올 수 있다. 함수형 프로그램밍은 액션은 최소화, 계산은 최대화 하는 방식으로코드를 더 예측 가능하고, 유지보수하기 쉽게 만든다.  함수형 코딩책에서 사용하는 개념어들은 이렇게 바꿔서 생각하면 쉽다.액션 -> 부수효과 , 계산 -> 순수함수, 데이터 -> 불변성 🚀 계산 이란? - 동일한 입력 -> 동일한 결과를 반환- 외부 상태를 변경하지 않는다. - 암묵적 입력과 출력이 없는 함수 📌 잘못된 예let total = 0;function addToTotal(value) { total += value; // 외부 상태(total)를 변경 ❌ return..

FE/BOOK 2025.03.19

[함수형 코딩] WEEK1 액션, 계산, 데이터

지난 회사에서 XML로 작성된 코드를 React로 변경하는 업무를 진행하면서, 리팩터링 작업에 대한 고민을 굉장히 많이했다.리팩터링의 가장 중요한 포인트는 ' 결과의 변경 없이 코드의 구조를 재조정 하는 것 ' 인데,특히나 작업시 가장 고민되었던 포인트는 ' 어떤 기준으로 코드를 재 조정할껀데? ' 였다. 위 책을 통해 그 고민에 대한 답을 찾을 수 있을 것 같아서 스터디를 시작하게 되었다.  WEEK1에서는 액션, 계산, 데이터의 구분에 대한 내용을 다뤘다.액션, 계산, 데이터함수형 프로그래밍에서는 코드를 액션, 계산, 데이터로 나눈다.액션계산데이터실행 시점과 횟수에 의존 = 부수효과, 부수효과가 있는 함수, 순수하지 않은 함수 ex) 이메일 보내기, DB읽기입력으로 출력을 계산, 호출 시점이나 횟수에..

FE/BOOK 2025.03.12

맥북 터미널 최초 셋팅 명령어 정리 (oh-my-zsh)

1. install homebrew mac os 용 패키지 관리자인 homebrew를 먼저 설치해줍니다. (oh-my-szh설치하기 위해서 필수는 아니지만 맥에서 다양한 패키지 설치를 할때 기본적으로 필요하기 때문에 가장 처음 설치하는 것이 좋음)https://brew.sh/ko/  HomebrewThe Missing Package Manager for macOS (or Linux).brew.sh/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 터미널에 명령어 치고 나면 비밀번호를 두번정도 쳐줘야 하니 까먹지 말 것 1-1. intel 칩이 아닌 경우원래는 설치 후 brew -v 하면..

카테고리 없음 2025.02.11

[HTTP 완벽가이드] 18장 웹 호스팅

1. 호스팅 서비스과거에는 회사가 자체 컴퓨터 하드웨어를 구매하고, 망을 구축하며 자체 네트워트 연결을 확보해 관리했다. 웹이 빠르게 대게가 되면서, 모든 사람이 웹 사이트를 원하게 되었지만, 개발을 위한 환경이 구축된 사람이 드물었다. 환경 구축을 위한 시간을 절약하기 위해 전문적으로 관리하는 웹 호스팅 서비스를 제공하는 사업이 증가했다. 2. 가상 호스팅컴퓨터 한대를 여러 고객이 공유하게 해서 저렴한 웹 호스팅 서비스를 제공하는 것을 공유 호스팅 혹은 가상 호스팅이라고 부른다.가상 호스팅은 비용, 공간, 관리에 이점이 있으므로 가상 호스팅을 제공하는 업체는 한 서버에 많은 웹 사이트를 호스팅 하려고 한다. 업자는 복제 서버 더비( = 서버팜 이라고 불림)를 만들고 서버 팜에 부하를 분산할 수 있다. ..

FE/BOOK 2025.02.10

[HTTP 완벽가이드] 17장 내용 협상과 트랜스 코딩

종종 하나의 URL이 여러 리소스에 대응할 필요가 있는 경우가 있다. 영어 사용자에게는 영어 버전을 프랑스어 사용자에게는 프랑스어 버전을 보내줄 수있다. 클라이언트와 서버가 이런 판단을 할 수 있도록 내용 협상 방법을 제공한다. 서버는 또한 특정 URL에 대해 어떤 콘텐츠가 클라이언트에게 적절한지 판단 할 수도 있어야 한다. 어떤 경우에는 서버가 커스터마이징된 페이지를 자동으로 생성하기도 한다. 1. 내용 협상 기법서버에 있는 페이지 중 어떤 것이 클라이언트에게 맞는지 판단하는 세가지 방법클라이언트에게 선택지 주기서버가 자동으로 판단하기중개자에게 선택하도록 부탁하기2. 클라이언트 주도 협상서버는 클라이언트에게 선택지를 보내주고 클라이언트가 보고 싶은 것을 선택하는 것 이다. 서버의 입장에선 가장 구현하기..

FE/BOOK 2025.02.10

[HTTP 완벽가이드] 16장 국제화

1. 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원HTTP 메시지는 어떤 언어로된 콘텐츠, 이미지, 동영상 혹은 그외 다른 종류의 미디어를 상자처럼 실어 나를 수 있어, HTTP에서 엔터티 본문이란 그저 비트들로 가득 찬 상자에 불과하다.  국제 콘텐츠를 지원하기 위해, 서버는 클라이언트에게 각 문서의 문자와 언어를 알려주어, 클라이언트가 올바르게 풀어내고, 처리해서 제공하도록 할 필요가 있다. 서버는 클라이언트에게 문서의 문자와 언어를 Content-Type charset 매게변수와 Content-Language 헤더를 통해서 알려준다.클라이언트는 서버에게 자신이 어떤 차셋 인코딩 알고리즘들과 언어들을 이해하며, 어떤 것을 선호하는지 Accept-Charset과 Accept-Language 헤더를..

FE/BOOK 2025.02.05

[HTTP 완벽가이드] 15장 엔터티와 인코딩

더보기엔터티(Entity)란 무엇인가요?**엔터티(Entity)**는 데이터베이스나 소프트웨어 개발에서 사용되는 개념으로, 독립적으로 존재하는 객체 또는 데이터 단위를 의미합니다. 엔터티는 실제 세계의 개념, 사물, 사람, 또는 이벤트를 표현할 수 있습니다. HTTP가 보장하는 것- 객체는 올바르게 식별되므로 브라우저나 다른 클라리언트는 콘텐츠를 바르게 처리할 수 있다. - 객체는 올바르게 압축이 풀릴 것이다. - 객체는 항상 최신이다. - 사용자의 요구를 만족할 것이다. - 네트워크 사이를 빠르고 효율적으로 이동할 것이다. - 조작되지 않고 온전하게 도착할 것이다.  HTTP는 콘텐츠를 나르기 위해 라벨링된 엔터티를 사용한다.  1. 메지지는 컨테이너, 엔터티는 화물HTTP 메시지를 컨테이너라고 한다면..

FE/BOOK 2025.01.15

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

HTTP의 보안버전은 효율적이고, 이식성이 좋아야하고, 관리가 쉽고, 현실 변화의 적용력이 좋아야 한다. HTTP보안에 대한 특징 1. HTTPS 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화 한다. HTTP 하부에 전송 레벨 암호 보안 계층을 제공함으로써 동작하는데, 이 보안 계층은 안전 소켓 계층 (SSL) 또는 그를 계승한 전송 계층 보안(TLS)를 이용하여 구현된다. 인코딩 및 디코딩은 보안계층에서 일어나기 때문에 HTTPS를 사용하기 위해 클라이언트와 서버가 프로토콜을 처리하는 로직을 크게 변경할 필요는 없다.더보기SSL (Secure Sockets Layer)정의: 인터넷 통신을 암호화하여 데이터를 안전하게 전송하기 위해 설계된 프로토콜입니다.역할: 클라이언트(예: 웹 브..

FE/BOOK 2025.01.15

[HTTP 완벽가이드] 13장 다이제스트 인증

다이제스트 인증은 기본 인증에서 결함을 수정한 인증 방식으로 널리 쓰이지는 않지만, 여전히 유용한 정보이다.다이제스트 인증이 가장 안전한 프로토콜은 아니다. 하지만 기본 인증 보다는 강력하다.하지만 안전한 HTTP트렌젝션을 위한 많은 요구사항을 만족하려면, TSL와 HTTPS가 더 적합한 프로토콜이다.  1. 기존 인증보다 나은 개선점a. 비번을 네트워크 평문으로 보내지 않는다b. 인증 체결을 가로채는 악의적인 사람을 차단한다 c. 메시지 내용 위조를 막을 수 있다d. 알려진 공격을 막을 수 있다 1.1 비번 지키미비번을 네트워크로 보내는 대신, 클라이언트는 비번을 비가역적으로 뒤섞은 '지문' 혹은 '요악'을 보낸다. 클라이언트 & 서버는 둘다 비번을 알고있기 때문에 대응이 가능하기 때문에 이런 작업이 ..

FE/BOOK 2025.01.10