Side effect를 유발하는 코드 - 블럭 외부에서 변수를 변경하는 경우 (공유 자원) - 메모리에 직접 접근하여 값을 변경하는 경우 (공유 자원) - 객체에 필드를 설정하는 경우 (공유 자원) - 예외를 던지거나 발생해서 프로그램을 중단 (실행 흐름) - 콘솔 출력이나 사용자의 입력 대기 (실행 흐름) - 파일을 입출력 (공유 자원) - 화면 출력 (공유 자원 /. 실행 흐름) 위와 같은 Side effect를 줄이는 방법으로 프로그래밍을 하도록 한다. IO 수행, 오류 처리, 데이터 변경 등의 처리를 보다 제한적이고 안전한 방법으로 한다. 이를 위해 함수형 프로그래밍을 살펴본다. 함수형 프로그래밍을 하기 위해서는 순수 함수를 이해하는 것이 중요하다. 위의 Side effect를 유발하는 코드의 공..