u_ju
우주의 우당탕탕개발일지
u_ju
전체 방문자
오늘
어제
  • 분류 전체보기 (118)
    • 팀 프로젝트 (2)
    • 내배캠 WIL & TIL (91)
    • JS (0)
    • React (1)
    • CS (23)
    • Next (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Component를 처음 선언하는 것을 Mount 라고 한다던데...?#props #state
  • 배열#함수
  • 코딩#바보#오류투성이#팀프로젝트
  • 회의감#현타#나름뿌듯#고민거리#코딩#IT#CSS#JS
  • 일요일 오늘은 내가 바로 함수만들기 요리사 !

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
u_ju

우주의 우당탕탕개발일지

CS

순수함수란 무엇인가? 불변성과 사이드 이펙트와의 관계.

2023. 4. 5. 12:17

순수함수(Pure function)는 동일한 입력에 대해서는 항상 동일한 출력을 반환하며, 외부의 상태를 변경하지 않고 사이드 이펙트(Side effect)를 발생시키지 않는 함수를 말합니다. 즉, 함수의 실행이 외부에 영향을 미치지 않고, 함수 내부에서 관리되는 지역적인 상태만을 사용하여 결과를 반환하는 함수를 순수함수라고 할 수 있습니다.

순수함수의 특징은 다음과 같습니다:

  1. 불변성(Immutability): 순수함수는 함수 내부에서 받은 인자를 변경하지 않습니다. 입력이 동일하면 항상 같은 결과를 반환하기 때문에, 함수 내부에서 상태를 변경하면 이전에 호출한 결과와 다른 결과가 나올 수 있습니다. 따라서 함수 내부에서는 입력값을 변경하지 않고 새로운 값을 반환하는 방식으로 작성되어야 합니다.
  2. 사이드 이펙트 없음(No Side Effects): 순수함수는 외부의 상태를 변경하지 않습니다. 즉, 함수의 실행이 외부에 어떠한 영향도 미치지 않아야 합니다. 외부의 상태를 변경하거나 외부 자원을 참조하거나 I/O 작업을 수행하는 등의 작업을 하면 사이드 이펙트가 발생하게 됩니다. 순수함수는 이러한 사이드 이펙트를 최소화하거나 없애는 것을 지향합니다.

불변성과 사이드 이펙트 없음이 순수함수의 중요한 특성입니다. 이를 통해 코드의 예측 가능성과 테스트 용이성을 향상시키며, 코드의 안정성과 가독성을 높일 수 있습니다. 또한 순수함수는 함수형 프로그래밍에서 핵심적인 개념으로 사용되며, 병렬 처리와 같은 분산 환경에서 안전하게 사용될 수 있습니다. 반면에 순수함수가 아닌 경우에는 함수의 실행 결과가 상태에 의존하거나 외부에 영향을 미치기 때문에 코드의 예측이 어렵고 디버깅이 어려울 수 있습니다. 그러므로 순수함수는 함수형 프로그래밍에서 중요한 개념이며, 함수의 불변성과 사이드 이펙트 없음을 고려하여 함수를 설계하고 구현하는 것이 좋습니다. 이는 코드의 유지보수성과 확장성을 향상시키는 데 도움이 됩니다.

'CS' 카테고리의 다른 글

Semantic HTML의 필요성  (0) 2023.04.07
React의 state와 props에 관하여.  (0) 2023.04.05
Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 ?  (0) 2023.04.04
useRef가 필요한 상황과 사용 예시  (0) 2023.04.04
배열, 객체를 const 로 선언했는데 요소, 속성을 추가할 수 있는 이유  (0) 2023.04.04
    'CS' 카테고리의 다른 글
    • Semantic HTML의 필요성
    • React의 state와 props에 관하여.
    • Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 ?
    • useRef가 필요한 상황과 사용 예시
    u_ju
    u_ju

    티스토리툴바