일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- git commit 협업
- 가상면접2장
- formik react-query submitting not working
- 시스템설계면접
- cypress React
- formik submitting not working
- git commit merge
- react-ga
- FirebaseAnalytics
- 시스템설계면접팁
- file not found Error
- 테스트코드책
- s3이미지다운로드됨
- gitsquash
- 시스템설계면접예시
- Git commit 합치기
- 시스템설계방법
- 리팩터링2판테스트
- 시스템설계
- awss3
- git squash
- 전략패턴
- 가상면접3장
- 리팩토링2판4장
- react
- 디자인패턴
- 헤드퍼스트전략패턴
- cypressBDD
- 리액트구글애널리틱스
- 가상면접으로대규모시스템
- Today
- Total
목록FrontEnd (129)
mingg IT
7장 신뢰할 수 없는 코드를 쓰면서 불변성 지키기 레거시 코드나 신뢰할 수 없는 코드로부터 내 코드를 보호하기 위해 방어적 복사를 만듬 얕은 복사와 깊은 복사를 비교함 카피-온-라이트와 방어적 복사를 언제 사용하면 좋은지 알 수 있음 이번 장 같은 경우에는 언제 얕은 복사를 사용하고, 언제 깊은 복사를 사용하면 좋을지 개념적으로 설명되어있다. 사실 현업을 진행하면서 습관적으로 데이터의 불변성을 위해 복사를 사용하는데 언제 어떤 복사를 이용해야할지 원칙적으로 정리해본 적은 없었다. 이번 장을 통해 그런 점들을 한번쯤 상기시키고 개념화 할 수 있어서 좋았다. 방어적 복사 블랙 프라이데이 행사를 위해 장바구니 항목에 세일을 적용하고 싶다. 카피-온-라이트 원칙을 지키면서 안전하게 함수를 사용하는 원칙을 방어적..
6장 변경 가능한 데이터 구조를 가진언어에서 불변성 유지하기 장바구니를 예시로 들었을때 동작에서 읽기, 쓰기를 분류할 수 있음 읽기 데이터를 바꾸지 않고 정보를 꺼내는 것 쓰기 데이터를 바꾸는 것 장바구니 동작 제품 개수 가져오기 => 읽기 제품 이름으로 제품 가져오기 => 읽기 제품 추가하기 => 쓰기 제품 이름으로 제품 빼기 => 쓰기 제품 이름으로 제품 구매 수량 바꾸기 => 쓰기 함수형 프로그래밍에선 쓰기 동작은 불변성 원칙에 따라 구현해서 최대한 읽기로 바꾸어야함. 카피-온-라이트 원칙 3단계 복사본 만들기 복사본 변경하기 복사본 리턴하기 연습문제 1 적용 전 var mailing_list = []; function add_contact(email) { mailing_list.push(email..
1장 부터 읽었을때 가장 인상깊고 재밌었던 장이다. 함수 내 코드를 분리할때 어떤 기준으로 나눌지 애매한 경우가 많았는데 비즈니스 규칙, 계산, 액션 등으로 나누는 기준을 알려줌 수정 전 (4장 코드) var shopping_cart = []; var shopoing_cart_total = 0; function add_item_to_cart(name, price) { shopping_cart = add_item(shopping_cart, name, price); calc_cart_total(); } function calc_cart_total() { shopping_cart_total = calc_total(shopping_cart); set_cart_total_dom(); update_shipping_..
4장 액션에서 계산 빼내기 함수형 프로그램 적용 전 장바구니 예시 var shopping_cart = []; var shopping_cart_total = 0; // 장바구니 카트에 추가 function add_item_to_cart(name, price) { shopping_cart.push({ name: name, price: price, }); calc_cart_total(); } // 장바구니 총액 계산 function calc_cart_total() { shopping_cart_total = 0; for (var i = 0; i < shopping_cart.length; i++) { var item = shopping_cart[i]; shopping_cart_total += item.price;..
액션 실행 시점과 횟수에 의존 부수 효과, 부수 효과가 있는 함수, 순수하지 않은 함수 ex) 이메일 보내기, 데이터베이스 읽기 계산 입력으로 출력을 계산 순수함수, 수학 함수 ex) 최댓값 찾기, 이메일 주소가 올바른지 확인하기 데이터 이벤트에 대한 사실 ex) 사용자가 입력한 값, API로 읽은 값 액션, 계산, 데이터를 구분 하는 시점 문제에 대해 생각할 때 코딩할 때 최대한 액션에서 계산을 빼냄 계산에서는 데이터를 분리할 수 있는지 검토 액션이 계산이 될 수 있는지, 계산은 데이터가 될 수 있는지 고민 코드를 읽을 때 액션, 계산, 데이터 중 어떤 것에 속하는지 살펴보기 액션은 시간에 의존하기 때문에 더욱 조심히 액션, 계산, 데이터 구분 예시 전부다 액션임. 각 플로우를 좀 더 세분화 해보자 냉..
현실에서의 함수형 사고 토니의 피자가게 예시 일급함수: 함수를 인자로 받는 함수 액션 호출 횟수와 시점에 의존 하는 것 ex) 반죽 펴기, 피자 배달, 재료 주문 계산 어떤 것을 결정하거나 계획하는 것 계산은 아무 때나 사용해도 주방이 엉망진창이 될 걱정이 없음 ex) 조리법에 나온 것을 두배로 만들기, 쇼핑 목록 결정 데이터 변경 불가능한 데이터 ex) 고객 주문, 영수증, 조리법 계층형 설계 상위로 갈 수록 자주 변경됨 아래로 갈 수록 의존성이 많아 바꾸기 어렵고, 자주 바꾸지 않음 일급 추상 타임라인 다이어그램 로봇 한대가 피자를 만들기위해 진행되는 액션 액션은 실행 시점에 의존하기 때문에 실행 순서가 중요함 분산 시스템을 타임라인으로 시각화하기 로봇 3대를 동시에 이용해서 피자를 만들면 더 빠를 ..
1장 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다 함수형 프로그래밍 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임 순수 함수만 사용하는 프로그래밍 스타일 부수 효과 함수 리턴값 이외에 하는 모든 일 ex) 이메일 보내기, 파일 읽기, 불빛을 깜빡이기, 웹 요청하기, 자동차에 브레이크 밟기 함수형 프로그램에서 중요한 것은 액션, 데이터, 계산을 구분 하는 것이다. 액션 호출하는 시점과 횟수에 의존함 ex) sendEmail, saveUserDB, getCurrentTime() 계산 계산은 입력 값을 계산해 출력하는 것 같은 입력값은 항상 같은 출력값이 옴 어디서 계산해도 결과는 같고 외부에 영향을 주지 않음 테스트가 쉬움. 언제든지 몇번을 불러도 안전함 ex) sum(num..
1장 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다. https://mingg123.tistory.com/266 [함수형 프로그래밍] 1장 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다 1장 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다 함수형 프로그래밍 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임 순수 함수만 사용하는 프로그래밍 스타 mingg123.tistory.com 2장 현실에서의 함수형 사고 https://mingg123.tistory.com/267 [함수형 프로그래밍] 2장 현실에서의 함수형 사고 현실에서의 함수형 사고 토니의 피자가게 예시 일급함수: 함수를 인자로 받는 함수 액션 호출 횟수와 시점에 의존 하는 것 ex) 반죽 펴기, 피자 배달, 재료 주..