관리 메뉴

흰둥씨의 개발장

[함수형 코딩#1] 함수형 사고 본문

함수형 프로그래밍/쏙쏙 들어오는 함수형 코딩

[함수형 코딩#1] 함수형 사고

돈워리비해삐 2023. 6. 24. 23:08

함수형 프로그래밍 ? 
1. 수학함수를 사용하고 부수효과를 피하는 것이 특징인 프로그래밍 패러다임
2. 부수효과 없이 순수 함수만 사용하는 프로그래밍 스타일 

부수효과 ?
함수가 리턴값 이외에 하는 모든 일 

순수함수?
인자에만 의존하고 부수효과가 없는 함수 (인자에만 의존 = 같은인자를 넣으면 항상 같은 결과를 돌려줌 = 수학함수)

실용적 측면에서 함수형 프로그래밍 정의의 문제가 있기 때문에 "학문적접근 보다 기술과 개념으로 보기"
ㄴ1. 부수효과는 실제로 필요함 (=> 필요하면 써야함)
ㄴ2. 함수평프로그래밍은 부수효과를 잘 다룰 수 있음 (=> 부수효과가 필요하지만 문제될 수 있음을 인지하고 대응할 것)
ㄴ3. 함수형 프로그래밍으로 잘 만든 소프트웨어가 많음(실용적)

 

함수평 프로그래머는 코드를 3분류로 나눔  => 액션과 계산, 데이터 

  액션 계산 데이터
특징  호출하는 시점과 횟수에 의존
(호출할 때 조심해야함) 
- 시간에 의존
입력값을 계산해서 출력함
(같은 입력값으로 계산시 같은 결과값나옴)
- 시간에 의존하지 않아 다루기 쉬움
이벤트에 대한 사실을 기록
-정적이고 해석이 필요함 
예시 사용자가 작업 완료 표시함,
클라이언트가 서버로 메시지 보냄,
서버가 메시지 받음 ,
서버가 데이터 베이스 변경,
서버가 이메일로 알림 보냄(전송)  
서버가 누구에게 알림 보낼지 결정 클라이언트가 서버로 보낸 메시지 자체
함수형
프로그래밍
도구 
- 시간흐름에 따라 안전하게 상태바꾸기
- 순서를 보장하는 방법
- 액션이 한번만 실행되도록 하기
- 정확성을 위한 정적 분석
- 소프트웨어에서 쓸 수있는 수학적 지식
- 테스트 전략
- 효율적 접근위한 데이터 구성방법
- 데이터 보관기술
- 데이터로 중요한 것 알아내기위한 원칙

 

함수형 사고? 
ㄴ 1 ) 액션, 계산, 데이터
ㄴ 2) 일급 추상