티스토리 뷰

https://www.notion.so/simsimjae/20-d626d399dfb8464783565dbbc43c34b3

아래 글들은 검색엔진 노출을 위한 글입니다. 

노션에서 확인하시면 이미지와 함께 정리된 글을 보실수 있습니다. 궁금하신점은 블로그 댓글이나 노션 코멘트를 이용해주세요(@comment)


제가 직접 만든 프로젝트입니다.

http://pickvs.com : 닥전닥후


순수 함수의 조건

  1. 사이드 이펙트를 만들지 않아야 함. → 함수 외부의 상태를 변경해선 안된다.
  2. 항상 같은 인풋에 같은 결과를 내야함. → 상황에 따라 결과가 달라지면 안된다.

왜 순수함수를 사용해야 하는가?

1. 가독성

사이드 이펙트는 코드를 읽기 힘들게 만든다. 동일한 인풋임에도 불구하고 상황에 따라 결과가 달라질 수 있기 때문에 이게 왜 이런 결과가 만들어졌는지 이곳 저곳을 살펴야 할 수 있다. 이말은 즉, 코드를 유지보수하기 어렵게 만든다는 말과도 같다.

순수함수는 컨텍스트와 관계없이 동작하기 때문에 가독성이 좋다.

단지 필요한 값들을 매개변수로 받을 뿐이며, 어플리케이션의 상태를 필요로하지 않는다.

2. 테스트 하기 좋음

순수함수는 같은 인풋엔 같은 결과가 나오기 때문에 단위 테스트를 작성하기가 다른 함수에 비해 간편하다.

→ 아직 해본적이 없어서 실감되진 않는다.

3. 모듈화와 재사용성

어플리케이션의 다른 부분을 전혀 사용하지 않고 변경하지도 않으며, 오직 매개변수에만 의존하여 동작하기 떄문에 아주 응집도가 높다고 할 수 있다. 따라서, 순수함수는 모듈화와 재사용성에 아주 큰 장점을 보인다.

4. 참조 투명성

참조 투명성이란? 프로그램 전체 코드에서 순수 함수의 실행부분을 순수 함수의 실행 결과값으로 치환해도 아무 문제 없이 그전과 똑같이 동작한다면 그 순수 함수는 참조 투명하다고 한다.

참조 투명성 예시

5. 병렬 코드(parallel code)

순수함수는 실행될때 오직 매개변수에만 의존하기 때문에 두개 이상의 순수함수가 동시에 병렬적으로 처리된다 하더라도 문제되지 않는다. 공유 메모리를 사용하는 멀티 쓰레드 환경에 적합하다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함