프로그래머 는 수학 을 잘 해야 할까 ? - Evan ' s Tech Blog 
 사실 필자 도 수학 을 잘 하 는 편 이 아니 라 그냥 컴퓨터 공부 하 신 다른 분 들 처럼 학교 에서 배우 긴 했 는데 졸업 하 고 나 서 는 잘 기억 안 나 는 그냥 그 정도 의 수준 이 다 . 게다가 필자 는 손 으로 푸 는 계산 이 굉장히 약하 기 때문 에 수학 성적 이 좋 았 던 편 도 아니 다 . ( 사칙 연산 을 잘 틀린다 . ) 
 그래도 인터넷 에서 많 은 분 들 이 이 주제 에 대해서 이야기 해 주 시 기 도 했 고 , 실제로 개발 자 가 아닌 분 들 에게 이런 질문 을 받 은 적 도 있 어서 필자 도 한번 이 주제 에 대한 필자 의 생각 을 끄적여 볼까 한다 . 
 프로그래밍 은 수학 이 다 
 일단 근본 적 으로 우리 가 사용 하 고 있 는 이 컴퓨터 는 사실 0 과 1 을 사용 하 는 계산기 다 . 그렇 기 때문 에 컴퓨터 에 는 아무래도 수학 적 인 내용 이 많이 들어갈 수 밖 에 없 고 , 프로그래밍 을 할 때 도 알 게 모르 게 많이 녹 아 있 는 수학 적 인 개념 들 이 많 다 . 
 그래서 사실 필자 는 프로그래머 라면 수학 을 조금 은 할 줄 알 아야 한다고 생각 하 는 편 이 다 . 이 얘기 를 들 은 여러분 은 어 ? 난 수학 을 잘 못 하 는데 지금 개발 을 하 고 있 는데 ? 라고 생각 하 실 수 도 있 겠 다 . 
 그러나 여기 서 필자 가 말 하 는 수학 은 무슨 선형 대수학 이나 미적분 같 은 고등 수학 을 말 하 는 것 이 아니 다 . 필자 가 얘기 하 는 수학 은 대부분 명제 나 집합 , n 진법 과 같이 이미 우리 가 중고 등 학교 에서 배웠 던 정도 의 수준 을 이야기 하 는 것 이 다 . 
 물론 이 개념 들 도 결국 파고들 면 파고들 수록 점점 추상 적 이 고 어려운 개념 들 이 나오 지만 솔직히 그렇게 까지 알 필요 는 없 다고 생각 한다 . 우리 가 무슨 수학 을 연구 하 는 사람 도 아니 고 , 우리 는 그냥 프로그래머 로써 프로그래밍 에 필요 한 정도 만 알 고 있 으면 된다 . 중요 한 것 은 수학 이 라는 키워드 에 쫄 지 않 는 것 이 다 . 
 그래서 이번 포스팅 에서 는 필자 가 생각 했 을 때 프로그래밍 에 도움 이 되 는 수학 개념 3 가지 에 대해서 가볍 게 한 번 이야기 해 보 려고 한다 . 
 수학 에 쫄 지 말 자 ! 
 요즘 핫 한 주제 인 머신 러닝 이나 인공 신경망 같 은 경우 호기심 을 자극 하 는 키워드 지만 , 구글링 을 해 보 면 나오 는 검색 결과 는 우리 의 공부 의 욕 을 꺾 어 놓 는다 . 
 해답 이 어떤 데이터 에 의존 적 인 경우 , 비용 은 관측 값 에 대한 함수 가 되 어야 하 며 , 그렇 지 않 을 경우 에 는 데이터 와 관련 된 어떤 것 도 모델링 할 수 없 게 된다 . 많 은 경우 비용 은 근사 될 수 만 있 는 통계 로 주어진다 . 
 인공 신경망 - 학습 위키 백 과 
 난 분명 수식 을 보 고 있 는데 숫자 보다 영어 가 더 많이 보이 고 … 
 솔직히 저런 수식 을 처음 보 면 무슨 외계어 같 기 도 하 고 무슨 말 을 하 는 지 도통 알 수 가 없 다 . 게다가 간단 한 예 랍시고 설명 하 고 있 는 것 은 전혀 간단 하 지 않 게 생겼 다 . ( 빡 침 ) 
 이런 것 들 이 바로 우리 의 공부 의 욕 을 깎 아 먹 는 수학 의 모습 이 다 . 하지만 저 수식 이 진짜 어렵 고 복잡 한 의미 일까 ? 
 저 기호 와 알파벳 이 어떤 의미 인지 만 알 면 우리 는 이 수식 을 코드 로 포 팅 할 수 있 는데 , 막상 짜 놓 고 보 면 굉장히 간단 하 다 . 
 쨘 , 이제 아까 저 수식 이 어떤 내용 인지 조금 더 이해 가 잘 될 것 이 라고 생각 한다 . 혹시 저 수식 이 어떤 내용 인지 이해 하 지 못했 더라도 코드 는 이해 할 수 있 으니 말 이 다 . 
 여기 까지 보 고 나 면 이제 더 이상 저 수식 이 낯설 게 만 느껴 지지 는 않 을 것 이 다 . 그리고 위 에서 도 한 번 얘기 했 지만 필자 가 말 하 고 싶 은 것 은 저 수식 을 코드 로 작성 할 수 있 냐 없 냐 가 아니 다 . 저런 수식 도 코드 로 바꿔 보 면 그렇게 어려운 수식 이 아니 라는 것 을 말 하 고 싶 은 것 이 다 . 쫄 필요 가 없 다 ! 
 그냥 우리 에게 for 문 은 익숙 하 지만 $\ sum $ 이 익숙 하 지 않 을 뿐 이 다 . 만약 어떤 수식 을 보 고 모르 는 기호 가 나오 면 한 번 의미 를 찾아보 자 . 물론 그 중 에 는 의미 자체 가 어려운 기호 도 있 다 . ( $\ int $ 같 은 적분 기호 … ? ) 하지만 대부분 의 경우 그냥 알파벳 은 변수 , 기호 는 규칙 ( 프로그래밍 에서 의 명령문 ) 이나 특별 한 함수 를 의미 하 기 때문 에 하나하나 뜯어보 고 코드 로 작성 해 보 면 생각 보다 단순 한 경우 가 많 다 . 
 이제 더 이상 수학 이 별 거 없 다는 걸 알 았 으니 수학 이 라는 단어 자체 에 쫄 지 말 고 한 번 씹 고 뜯 고 맛보 고 즐겨 보 자 . 
 알 면 도움 이 되 는 수학 개념 3 가지 
 자 그럼 이제 본론 으로 들어가 서 , 우리 가 프로그래밍 을 할 때 도움 이 될 만 한 수학 의 3 가지 개념 들 을 살펴보 자 . 
 사실 필자 가 이야기 하 고 싶 은 것 은 개념 이 기 때문 에 위 에서 예 로 들 었 던 것 처럼 수식 이 나오 는 대수학 같 은 건 아니 다 . 그리고 이 포스팅 에서 설명 하 는 개념 들 은 사실 수학 보다 논리학 에 가까운 느낌 이 기 때문 에 반드시 숫자 와 연관 지어서 생각 할 필요 는 없 다 . 
 이 개념 들 은 우리 가 중학교 , 고등학교 에서 이미 배웠 던 개념 들 이 다 . 다만 수능 을 보 고 나 면 딱히 쓸 일 이 없 기 때문 에 까먹 었 을 뿐 이 다 . 물론 이과 계열 의 전공 을 택하 신 분 이나 문과 중 에서 도 경제학 처럼 수학 과 연관 이 깊 은 전공 을 택하 신 분 은 계속 수학 을 공부 하 기 때문 에 까먹 지 않 았 을 수 있 지만 그 외 의 경우 는 사실 까먹 을 수 밖 에 없 다 . 
 뭐 어쨌든 필자 가 설명 할 개념 들 은 전부 어릴 때 한 번 정도 는 들 어 봤 던 논리 에 대한 개념 들 이 니까 조금 은 가벼운 마음 으로 한 번 즐겨 보 도록 하 자 . 
 명제 ( Proposition ) 
 자 처음 으로 이야기 하 고 싶 은 개념 은 중학교 1 학년 인가 ? 2 학년 때 배우 는 명제 이 다 . 사실 명제 는 굳이 프로그래밍 을 위해서 가 아니 더라도 그냥 논리 적 인 사고 를 하 기 위해서 기본 적 으로 알 고 있 어야 하 는 개념 이 다 . 
 명제 는 참 , 거짓 과 같 은 논리 적 인 진릿값 을 가지 는 것 을 말 한다 . 즉 , 참 과 거짓 을 구분 할 수 없 는 문장 은 명제 로 치 지 않 는다 . 
 즉 , 에 반 은 키 가 크다 와 같 은 문장 은 명제 로 성립 될 수 없 다는 것 이 다 . 다른 사람 이 필자 를 봤 을 때 키 가 크 다고 생각 할 수 도 있 고 작 다고 생각 할 수 도 있 는 주관 성 이 들어가 는 문장 이 기 때문 이 다 . 
 그렇 다면 명제 는 우리 가 프로그래밍 을 할 때 어디 에 사용 된다는 걸까 ? 
 명제 가 말 하 는 참 과 거짓 은 우리 가 프로그래밍 할 때 사용 하 는 True , False 나 1 , 0 과 동일 한 개념 이 다 . 즉 , 우리 가 중학생 때 수학 교과서 로 배웠 던 명제 는 조건식 과 동일 하 다고 할 수 있 다 . 간단 한 코드 를 한번 보 자 . 
 이 코드 에서 필자 가 제시 한 명제 는 array 변수 에 담긴 배열 에 " a " 라는 원소 가 포함 되 어 있 다 이 고 이 명제 가 참 일 경우 if 문 내부 의 코드 가 , 거짓 일 경우 에 는 else 문 내부 의 코드 가 실행 된다 . 이 처럼 조건문 에 사용 되 는 조건 은 반드시 명제 여야 하 므로 명제 에 익숙 한 프로그래머 는 어떤 요구사항 을 들 었 을 때 , 그 요구사항 을 충족 할 수 있 는 명제 를 빠르 게 제시 해 나갈 수 있 다 . 
 이 명제 라는 개념 은 필자 가 앞 으로 설명 할 다른 개념 들 이나 다른 수학 의 개념 에서 도 가장 기초 가 되 는 개념 이 기 때문 에 우리 가 중학교 에 입학 하 자마자 배우 는 것 이 다 . 수학 은 긴가민가 한 학문 이 아니 라 정확 한 질문 과 정확 한 답 을 제시 할 수 있 어야 하 는 능력 이 필요 한 학문 이 기 때문 에 명제 가 가장 기초 가 된다 . 
 다음 으로 이야기 할 것 은 명제 와 마찬가지 로 우리 가 중학교 입학 하 고 나 서 배웠 던 집합 이 다 . 집합 도 명제 와 마찬가지 로 알 게 모르 게 많이 사용 되 는 개념 이 기 때문 에 집합 에 대한 확실 한 개념 을 알 고 있 다면 프로그래밍 할 때 많 은 도움 을 준다 . 
 동글동글 귀여운 벤 다이어그램 과 프로그래밍 은 왠지 거리 가 멀 어 보이 지만 사실 우리 는 저 개념 을 매일 매일 프로그래밍 할 때 사용 하 고 있 다 . 바로 논리식 을 작성 할 때 말 이 다 . 논리식 은 위 에서 말 한 명제 처럼 True , False 둘 중 에 하나 로 평가 받 을 수 있 는 식 을 이야기 한다 . 보통 우리 는 명제 여러 개 를 논리 연산자 로 묶 은 식 을 많이 사용 한다 . 이 논리식 과 집합 이 무슨 관계 가 있 다는 걸까 ? 
 드 모르간 의 법칙 을 벤 다이어그램 으로 나타낸 모습 
 필자 는 드 모르간 법칙 이 빛 을 발하 는 순간 이 바로 자연어 를 논리식 으로 변환 할 때 라고 생각 한다 . 보통 회사 에서 비즈니스 로직 을 짜 다 보 면 PO 들 이 어떤 기능 의 작동 여부 에 조건 을 추가 하 는 경우 가 많 은데 문제 는 조건 을 추가 할 때 기존 에 있 던 조건 들 까지 모두 생각 하 면서 말 해 주 지 않 는다는 것 이 다 . 
 필자 가 지금 까지 일 을 하 면서 겪 은 조건 중 에 가장 복잡 했 던 경우 를 예 로 들 어 보 겠 다 . 필자 는 예전 에 멤버 십 결 제 기능 을 개발 한 적 이 있 었 는데 문제 는 결제 수단 을 입력 할 수 있 는 폼 의 렌 더 조건 이 굉장히 복잡 하 다는 것 이 었 다 . 물론 처음 부터 이렇게 복잡 한 건 아니 였 고 , 기능 이 추가 됨 에 따라 점점 조건 이 복잡 해진 케이스 이 다 . 
 당시 조건 이 었 던 논리식 을 자연어 로 그대로 써 보 겠 다 . 
 조건 1 . 사용자 의 멤버십 이 해지 상태 가 아니 고 결제 수단 도 가지 고 있 지 않 다 . 
 조건 2 . 사용자 가 결제 수단 을 가지 고 있 고 결제 수단 을 핸드폰 으로 가지 고 있 으며 , 현재 사용 자 가 고른 상품 이 현재 사용 자 가 가지 고 있 는 상품 이 아니 고 현재 멤버십 이 해지 예약 상태 가 아니 다 . 
 ( 조건 1 || 조건 2 ) 이 면 결제 수단 등록 폼 이 활성 화 된다 . 
 조건 version 1 
 뭐 사실 저 사단 이 난 건 1 차 적 으로 개발자 인 필자 의 잘못 이 긴 하 지만 굳이 핑계 를 대 자면 시간 에 쫒겨서 맨날 야근 하 면서 개발 하 다 보 니 저런 괴물 같 은 논리식 이 탄생 해 버렸 다 … 
 저렇 게 개판 쳐 놓 고 나 서 도 다른 할 것 도 너무 많 았 기 때문 에 일단 묻 어 놓 고 다른 프로젝트 를 또 개발 하 던 중 에 PO 가 필자 에게 이야기 했 다 . 
 에 반 , 저희 결제 수단 등록 폼 에 조건 하나 만 더 추가 할 수 있 을까요 ? 
 저 얘기 를 듣 고 다시 저 코드 를 보 고 PO 얼굴 을 한번 본 뒤 , 저걸 어떻게 든 뜯어고쳐야 겠 다는 결론 에 다다른 필자 는 조용히 노트북 을 들 고 화이트 보드 앞 으로 간 후 , 저 복잡 한 조건 들 을 어떻게 든 이해 할 수 있 는 수준 으로 만들 기 위해서 발버둥 쳤 는데 그 결과 가 이것 이 다 . 
 조건 1 . 사용자 가 멤버십 가입 상태 가 아니 고 , 사용 자 가 등록 한 결제 수단 이 카드 가 아니 다 . 
 조건 2 . 사용자 가 멤버십 가입 상태 이 고 사용 자 가 등록 한 결제 수단 이 휴대폰 이 며 , 현재 구매 하 려고 선택 한 멤버십 이 나 의 멤버십 과 다른 상품 이 다 . 
 조건 3 . 사용자 의 결제 수단 정보 가 없 다 . 
 ( 조건 1 || 조건 2 || 조건 3 ) 이 고 사용 자 가 선택 한 결제 수단 이 카드 라면 결제 수단 등록 폼 이 활성 화 된다 . 
 조건 version 2 
 사실 이것 도 간단 한 논리식 은 아니 지만 그래도 조건 1 , 조건 2 , 조건 3 만 읽 어 보 았 을 때 이전 의 조건 에 비해서 어떤 상태 인지 좀 더 알아보 기 쉬워졌 다 . ( 라고 자기 합리 화 를 해 봅니다 . ) 이 당시 필자 가 논리식 을 정리 할 때 사용 했 던 방법 이 벤 다이어그램 과 드 모르간 법칙 이 었 다 . 
 벤 다이어그램 으로 논리식 을 펼쳐 놓 음 으로써 여러 개 의 논리식 중 사실 같 은 명제 이 지만 역 의 꼴 을 취하 고 있 는 친구 들 을 쉽 게 찾 을 수 있 었 고 겹치 는 명제 들 을 골라서 합치 고 좀 더 알아보 기 쉬운 단위 로 조건 을 나누 고 해서 저렇 게라도 만들 어 놓 은 것 이 다 . 
 물론 이 코드 는 언젠가 개선 을 해야 한다 … 언젠가 … 
 그리고 추가 적 으로 이런 논리식 외 에 도 데이터베이스 에 질의 를 던질 때 사용 하 는 SQL 의 JOIN 개념 도 보통 벤 다이어그램 으로 표현 한다 . 
 이런 경우 복잡 한 논리식 이나 SQL 의 JOIN 문 을 보 고 벤 다이어그램 이 바로 머리 속 에 떠오른다면 그냥 코드 나 자연어 로 이해 하 는 것 보다 는 좀 더 직관 적 이 고 빠르 게 이해 할 수 있 지 않 을까 ? 라는 생각 을 해본다 . 
 수학 적 귀납법 ( Mathematical Induction ) 
 수학 적 귀납법 ( Mathematical Induction ) 은 수학 에서 사용 하 는 증명 방법 중 하나 이 다 . 주로 어떤 명제 가 모든 자연수 에 대하 여 성립 함 을 보이 기 위해 사용 한다 . 수학 적 귀납법 이 무엇 인가 를 자세히 알아보 기 전 에 먼저 우리 는 논리학 의 논증 법 투 톱 인 귀납 논증 과 연역 논증 에 대해서 알 아야 한다 . 
 간단 하 게 이야기 하 자면 귀납 논증 은 지금 까지 그래왔 으니까 앞 으로 도 그럴 것 이 다 라는 느낌 이 고 연역 논증 은 전제 가 맞 다면 결론 도 반드시 맞 다 라는 느낌 이 다 . 이걸 너무 자세히 설명 하 면 글 이 길 어 지 기 때문 에 간단 한 예시 로 간 만 보 겠 다 . 
 먼저 귀납 논증 은 이런 느낌 이 다 . 
 2000 년 여름 은 더웠 다 , 2001 년 여름 도 더웠 다 … . 2019 년 여름 도 더웠 다 . 그러므로 여름 에 는 반드시 덥 다 . 
 귀납 적 인 이런 논증 방식 은 모든 전제 가 참 이 라고 해도 반드시 결론 도 참 이 라는 법 이 없 다 . 당장 위 의 예시 만 봐도 2020 년 여름 에 는 기상이변 으로 인해서 눈 이 올 수 도 있 지 않 을까 ? ( 투모로우 … ? ) 
 즉 , 귀납 논증 은 언제나 오류 가 존재 할 확률 이 있 다 . 여기 까지 만 보 면 왠지 허점 투성이 논증 법 인 것 같 지만 그래도 현대 과학 은 귀납 논증 을 통해 끊임없 는 가설 을 제시 하 고 그걸 증명 함 으로써 발전 해왔으므로 상당 한 가치 가 있 는 논증 법 이 라고 할 수 있 다 . 
 반면 에 연역 논증 은 이런 느낌 이 다 . 
 맥북 은 애플 이 만든 다 . 내 컴퓨터 는 맥북 이 다 . 그러므로 내 컴퓨터 는 애플 이 만들 었 다 . 
 연역 논증 중 에서 가장 대표 적 인 사례 인 삼단 논법 이 다 . 이게 바로 위 에서 얘기 한 어떤 부분 적 인 전제 가 맞 다면 결론 도 반드시 맞 다 라는 의미 이 다 . 만약 결론 이 거짓 이 라면 전제 중 하나 도 무조건 거짓 이 다 . 즉 , 연역 논증 은 이미 전제 에 담겨 있 던 것 을 증명 하 는 데 는 탁월 하 지만 귀납 논증 처럼 새로운 지식 을 탐구 하 기 에 는 부적절 하 다 . 
 하지만 우리 가 프로그래밍 을 할 때 는 새로운 지식 을 탐구 하 는 것 이 아니 라 그냥 내 코드 가 오류 없이 완벽 한가 를 증명 하 기 위한 논증 법 을 사용 해야 하 므로 귀납 논증 보다 는 연역 논증 이 더 알맞 다 . 
 필자 가 이 두 논증 법 을 전부 설명 한 이유 는 바로 수학 적 귀납법 이 귀납 논증 이 아니 라 연역 논증 이 기 때문 이 다 . 
 아니 … 귀납법 이 라며 … ? 
 수학 적 귀납법 은 어떤 명제 $ P $ 가 있 을 때 다음 2 가지 만 충족 시키 면 모든 자연수 에 대해서 $ P $ 가 성립 한다는 것 을 의미 한다 . 
 $ P ( 1 ) $ 은 참 이 다 
 $ P ( n ) $ 이 참 이 면 $ P ( n + 1 ) $ 도 참 이 다 . 
 그러므로 명제 $ P $ 는 모든 자연수 에 대해서 참 이 다 . 
 이렇게 만 얘기 하 면 또 머리 가 아파지 니까 예시 를 살펴보 자 . 수학 적 귀납법 은 보통 도미노 로 예시 를 많이 들 기 때문 에 필자 도 도미노 를 예 로 설명 하 겠 다 . 
 맨 처음 에 있 는 도미노 가 쓰러진다 . ( $ P ( 1 ) $ 이 참 ) 
 무작위 로 고른 $ n $ 번 째 도미노 가 쓰러질 때 항상 $ n + 1 $ 번 째 에 세워진 도미노 도 쓰러진다 . ( $ P ( n ) $ 이 참 이 면 $ P ( n + 1 ) $ 도 참 ) 
 그러므로 맨 처음 에 있 는 도미노 를 쓰러트리 면 반드시 모든 도미노 가 순서 대로 쭉쭉 쓰러진다 . 
 이것 이 수학 적 귀납법 의 논리 전개 방식 이 다 . 간단 하 게 얘기 하 자면 전제 가 참 이 라는 것 을 먼저 보인 후 에 그 전제 에서 보편 적 인 결론 을 이끌 어 내 는 것 이 다 . 
 이런 수학 적 귀납법 은 알고리즘 의 정당 성 을 검증 할 때 아주 유용 하 게 쓰일 수 있 다 . 왜냐면 알고리즘 이 란 것 은 굉장히 보편 적 인 규칙 이 고 , 어떤 형태 로 든 반드시 반복 적 인 요소 를 가지 고 있 기 때문 이 다 . 
 그럼 한번 유명 한 알고리즘 인 $ n ! $, 팩토리 얼 을 구하 는 알고리즘 을 한번 수학 적 귀납법 으로 풀 어 보 자 . 
 그러므로 이 논리 는 참 이 다 . 
 이런 식 의 논리 적 인 사고방식 은 당장 코딩 할 때 직접 적 인 도움 이 되 지 는 않 겠 지만 , 복잡 한 문제 를 만났 을 때 일반 화 된 해결 법 을 찾아낼 수 있 는 능력 을 키워 준다 . 사실 이런 논증 법 을 적용 할 수 있 는 문제 는 일상 에서 도 얼마 든지 찾아볼 수 있 으므로 평소 에 도 한 번 이렇게 생각 하 는 습관 을 들여 보 는 것 도 나쁘 지 않 다 . ( 연애 할 때 는 절대 이러 지 말 자 . ) 
 사실 이 포스팅 에서 설명 한 저런 것 들 다 몰라도 느낌 적 인 느낌 으로 프로그래밍 을 잘 할 수 는 있 다 . 하지만 곰곰히 생각 해 보 자 . 저런 것 들 을 모르 고 프로그래밍 을 하 고 있 었 다고 생각 했 던 분 들 도 그냥 이론 으로 정리 하 지 않 았 을 뿐 이 지 알 게 모르 게 저 개념 들 을 전부 사용 하 고 있 었 을 것 이 다 . 
 그리고 필자 가 생각 했 을 때 수학 을 배우 면 가장 좋 은 점 은 내 가 만들 고 싶 은 것 을 만들 때 적어도 이론 에서 막히 는 일 은 없 다는 것 이 다 . 
 필자 가 예전 에 작성 했 던 포스팅 인 행성 궤도 계산 이나 역전 파 알고리즘 같 은 포스팅 만 봐도 수식 이 많이 나와서 어려워 보일 수 있 다 . 사실 필자 도 저 친구 들 을 처음 만들 때 학교 에서 배운 수학 같 은 건 이미 가물가물 한 상태 였 기 때문 에 거의 처음 부터 다시 공부 해서 결국 은 저 프로젝트 를 완성 할 수 있 었 다 . 
 물론 선형 대수학 부터 시작 해서 오일러 회전 , 쿼 터니 온 등 이름 만 들어도 토할 것 같 은 이론 들 이 처음 에 는 필자 에게 도 상당 한 두려움 으로 다가왔 지만 일단 이해 가 안 되 더라도 문서 를 계속 보 고 조금 이 라도 이해 되 는 부분 이 있 다면 코드 로 작성 한 후 에 하나하나 실행 시켜 보 면서 공식 의 매 커 니즘 을 눈 으로 직접 보다 보 니까 어느 순간 부터 는 그래도 처음 보다 많이 익숙 해졌 던 것 같 다 . ( 근데 사실 지금 도 잘 모른다 . ) 
 수학 은 그렇게 무서운 친구 가 아니 다 . 위 에서 예시 로 나왔 던 인공 신경망 알고리즘 의 수식 도 처음 보 면 뭔가 어려워 보이 고 복잡 해 보이 지만 막상 코드 로 풀 어 보 니 별 거 아니 였 던 것 처럼 말 이 다 . 여러분 은 이미 프로그래머 로써 알 게 모르 게 수학 이나 논리학 의 개념 이 몸 에 배 어 있 는 사람 인데 이제 와서 수학 을 겁내 는 것 도 좀 이상 하 지 않 은가 ? 이제 는 그런 마음 을 다 털 어 버리 고 한 번 수학 과 친해져 보 자 . 
 수학 은 그냥 프로그래밍 언어 처럼 여러분 이 상상 하 는 것 을 실현 시켜 줄 수 있 는 도구 라고 생각 하 자 . 
 이상 으로 프로그래머 는 수학 을 잘 해야 할까 ? 포스팅 을 마친다 . 
 논리학 수학 알고리즘 프로그래밍 
 1 프로그래밍 은 수학 이 다 
 2 수학 에 쫄 지 말 자 ! 
 3 알 면 도움 이 되 는 수학 개념 3 가지 
 3 . 1 명제 ( Proposition ) 
 3 . 2 집합 ( Set ) 
 3 . 3 수학 적 귀납법 ( Mathematical Induction )