강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

A.J님의 프로필 이미지
A.J

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+ 응용편

효과를 each로 구분

"`효과를 each`로 구분한다"

해결된 질문

작성

·

325

1

01:00 ~ 01:30 사이의 설명: "함수를 실행했는데 전달한 인자와 같은 값이 입력과 출력값이 같다는 것은, 함수를 실행하지 않은 것과 같기 때문에 효과를 일으킨다는게 명확하다" 

입/출력에 변화가 없는 함수실행도 side effect 라는 설명인건가요? 

답변 6

1

MDU 유인동님의 프로필 이미지
MDU 유인동
지식공유자

결론적으로 말하면 부정적인 상황을 말할때는 사이드 이펙트 혹은 부수효과라고 말하는 편이고,

그냥 정말 일으켜야하는 효과를 말할때 혹은 잘 관리되고 있는 효과를 말할때는 좀 긍정적으로 말하고 있는 느낌이라고 보시면 될거 같아요.

1

MDU 유인동님의 프로필 이미지
MDU 유인동
지식공유자

말 그대로 효과는 이펙트를 말합니다.

사이드 이펙트라고 말하는게 좀 부정적인 느낌이 있잖아요?

그래서 좀 순화해서 그냥 이펙트라고 말하는 분들도 많더라고요.

저도 그냥 그래서 효과라고 부르기도 하는 정도에요 :)

1

A.J님의 프로필 이미지
A.J
질문자

each()를 사용함에 따른 문맥적 의미를 말씀하신대로 이해했습니다. 그러나 여전히 구분이 필요한 게 있는데, 

말씀하시는 "효과"는 side effect 가 아닌 다른 '단어'를 의미하나요? 

- 효과를 일으키다, 

- 효과가 있다

등등이 먼저 어떤 의미인지 알고싶습니다 

1

MDU 유인동님의 프로필 이미지
MDU 유인동
지식공유자

그런 의미는 아니구요.

A라는 함수가 인자와 리턴값이 같은 경우, 그 함수를 실행했을 때 반드시 내부에서 효과가 있는 함수일 수 밖에 없다는 의미입니다. 

어떤 값을 넣든 항상 인자와 완전히 동일한 값이 리턴되는 함수라는건 그 안에서 뭔가 어딘가에 효과를 일으키지 않고는 의미 없는 함수이기 때문에,

tap이나 each 같은 함수안에 사용하는 보조함수는 효과를 일으킬 수 밖에 없고, 

그렇기에 each로 감싸져있으면 "아 여기에 효과가 있겠구나"

라고 생각할 수 있도록 구분하기위해 사용된다는 의미입니다.

감사합니다.

0

MDU 유인동님의 프로필 이미지
MDU 유인동
지식공유자

감사합니다 :)

0

A.J님의 프로필 이미지
A.J
질문자

고맙습니다. 만족스런 답변이네요. 

A.J님의 프로필 이미지
A.J

작성한 질문수

질문하기