개발공부/함수형코딩 4

함수형 코딩 - #Chapter 4

함수에는 입력과 출력이 있습니다. 입력은 함수가 계산을 하기 위한 외부정보입니다. 출력은 함수 밖으로 나오는 정보나 어떤 동작입니다. 입력과 출력은 명시적이거나 암묵적일 수 있습니다. -명시적 입력 :인자 -암묵적 입력 : 인자 외 다른 입력 ex) 전역변수 읽기 -명시적 출력 : 리턴값 -암묵적 출력 : 리턴값 외 다른 출력 ex) 전역변수 값 변경 액션에서 계산을 빼내기 (계산 추출) 1. 계산 코드를 찾아 빼낸다 (리팩토링) 2. 새 함수에 암묵적 입력과 출력을 찾는다. 3. 암묵적 입력은 인자로 암묵적 출력은 리턴값으로 바꾼다. 예시문제 // 전역변수 : shopping_cart_total function update_shipping_icons(){ var buy_buttons = get_buy_..

함수형 코딩 - #Chapter 3

액션과 계산, 데이터는 어디에나 적용할 수 있습니다. 장보기 과정 액션 냉장고 확인하기 액션 운전해서 상점으로 가기 액션 필요한 것 구입하기 액션 운전해서 집으로 오기 각 과정들이 액션인 이유 -냉장고 확인하기 : 냉장고를 확인하는 시점에 따라 냉장고에 있는 제품이 다르다. -운전해서 상점으로 가기 : 두 번 운전해서 상점에 가면 연료가 두 배로 든다. -필요한 것 구입하기 : 누군가 브로콜리를 구입하면 브로콜리가 다 떨어질 수도 있기 때문에 구입하는 시점이 중요하다. -운전해서 집으로 오기 : 이미 집에 있다면 상점에 있는 것이 아니기 때문에 상점에서 집으로 올 수 없습니다. 언제 하는지가 중요한 단계입니다. 각 액션들을 데이터와 계산으로 나눠보자 ex) 냉장고 확인하기 데이터 현재 재고 데이터 필요한..

함수형 코딩- #Chapter 2

계층형 설계 함수형 프로그래머는 유지보수를 잘 하기 위해 계층형 설계를 사용합니다. 각 계층은 코드의 변경 가능성에 따라 나눕니다. 각 계층은 그 아래에 있는 계층을 기반으로 만들어 집니다. 그래서 각 계층에 있는 코드는 더 안정적인 기반 위에 작성할 수 있습니다. 이런 구조로 소프트웨어를 만들면 코드를 쉽게 변경할 수 있습니다. 가장 위에 있는 코드는 의존성이 거의 없기 때문에 쉽게 바꿀 수 있습니다. 아래에 있는 코드들은 위에 있는 코드보다 의존성이 많아 바꾸기 어렵지만 자주 바뀌지 않습니다. 함수형 프로그래머는 이 아키텍처 패턴이 계층을 만들기 때문에 계층형 설계(stratfied design)이라고 부릅니다. 계층형 설계는 일반적으로 비즈니스 규칙, 도메인 규칙, 기술 스택 계층으로 나눕니다. 계..

함수형 코딩 - #Chapter 1

(학문적 정의) 함수형 프로그래밍이란(functional programming FP) 1. 수학 함수를 사용하고 부수 효과side effect를 피하는 것이 특징인 프로그래밍 패러다임 2. 부수 효과 없이 순수 함수pure function만 사용하는 프로그래밍 스타일 - 부수효과 : 함수가 리턴값 이외에 하는 모든 일을 말한다. 부수효과는 함수를 부를 때마다 발생하기 때문에 문제가 될수 있다. ex) 메일 보내기, 전역 상태 수정하기 - 순수함수 (=수학함수) : 인자에만 의존하고 부수 효과가 없는 함수 인자에만 의존한다는 말은 같은 인자를 넣으면 항상 같은 결과를 돌려준다는 말이다. 실용적 측면에서 (학문적)함수형 프로그래밍 정의의 문제점 1. 부수 효과는 필요하다. - 부수 효과는 소프트웨어를 실행하..