suyeongpark

지성을 추구하는 디자이너/ suyeongpark@abyne.com

명제논리 2

개념

  • 카르노맵이란 논리식을 간단하게 바꾸는 방법. 아래와 같이 생긴 표를 사용한다.
    • 표에서는 인접한 것끼리 1번만 변하는 형태로 열을 쓴다. 그래야 묶을 수 있음.
p \ qr 00 01 11 10
0        
1        
  • 쌍대원리
    • 모든 명제논리 법칙들에 대하여 ∨ ↔ ∧ , t ↔ c, ⇒ ↔ ⇐ 바꿔도 법칙이 성립한다.
  • XOR (⊻)
    • p와 q가 다를 때만 참

논리식

  • p ⇒ p ∨ q
  • p ∧ q ⇒ p
  • (p → q) ∧ (q → r) ⇒ p → r
  • (p ∨ q) ∧ ¬q ⇒ p
  • (p → q) ∧ p ⇒ q
  • (p → q) ∧ ¬q ⇒ ¬p
  • p ∨ (p ∧ q) ≡ p
  • p ∧ (p ∨ q) ≡ p
  • (p → q) ∧ (r → s) ⇒ (p ∨ r → q ∨ s)
  • (p → q) ∧ (r → s) ⇒ (p ∧ r → q ∧ s)
  • ¬(p ∨ q ∨ r) ≡ ¬p ∧ ¬q ∧ ¬r
    • 항의 개수가 무한히 많아도 성립한다.
    • ¬(p1 ∨ p2 … ∨ pn) ≡ ¬p1 ∧ ¬p2 … ∧ ¬pn
  • p ⊻ q ≡ (¬p ∧ q) ∨ (p ∧ ¬q)
  • p ⊻ q ≡ q ⊻ p
  • p ⊻ (q ⊻ r) ≡ (p ⊻ q) ⊻ r
  • p ⇒ q 일 때
    • r ∨ p ⇒ r ∨ q
    • r ∧ p ⇒ r ∧ q





명제논리 1

개념

  • 4대 논리학자 – 아리스토텔레스, 라이프니츠, 프레게, 괴델
  • 시대가 지나다보니 논리가 기호화됨. 그래서 수학처럼 계산할 수 있게 되어서 기호논리학이 수학의 일부가 됨.
  • 명제 (p, q, r)
    • 참이거나 거짓, 둘 중 하나의 진리값을 가지는 식이나 문장
  • 명제함수
    • 변수 x에 값을 대입하면 명제가 되는 식이나 문장
  • 동치 (p ≡ q)
    • 명제 p와 q의 진리값이 같은 경우
  • 명제의 연산 – 부정(not), 논리합(or), 논리곱(and), 조건문(if p, q)
    • 부정은 원래 명제의 부정
    • 논리합은 p, q 중 하나 이상이 참인 경우 참, 그 외엔 거짓
    • 논리곱은 p, q 가 모두 참이고, 그 외엔 거짓
    • 조건문은 p가 거짓이면 무조건 참, p와 q가 참이면 참
p q ¬p p ∨ q p ∧ q p → q p ↔ q
0 0 1 0 0 1 1
0 1 1 1 0 1 0
1 0 0 1 0 0 0
1 1 0 1 1 1 1
  • 항진명제(t)
    • 모든 경우에 참(1)인 명제
  • 모순명제(c)
    • 모든 경우에 거짓(0)인 명제
  • 함의
    • 같다는 것보다는 좀 더 약한 개념 (ex 부등호)
    • p ⇒ q : p → q ≡ t

논리식

  • p → q ≡ ¬p ∨ q
  • p ↔ q ≡ (p → q) ∧ (q → p)
  • p ⇔ q : p ≡ q
  • p ∨ t ≡ t
  • p ∧ t ≡ p
  • p ∨ c ≡ p
  • p ∧ c ≡ c
  • p ∨ ¬p ≡ t
  • p ∧ ¬p ≡ c
  • p ⇒ t
  • c ⇒ p
  • p ∨ p ≡ p
  • p ∧ p ≡ p
  • ¬(¬p) ≡ p
  • p ∨ q ≡ q ∨ p
  • p ∧ q ≡ q ∧ p
  • ¬(p ∨ q) ≡ ¬p ∧ ¬q
  • ¬(p ∧ q) ≡ ¬p ∨ ¬q
  • p ∨ (q ∨ r) ≡ (p ∨ q) ∨ r
  • p ∧ (q ∧ r) ≡ (p ∧ q) ∧ r
  • p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
  • p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r)
  • p → q ≡ ¬q → ¬p (대우)
  • p → q ≡ p ∧ ¬q → c (귀류법)


클린 코드

제목 그대로 깨끗한 코드를 작성하기 위한 가이드를 담은 책. 왜 좋은 코드를 작성해야 하는가 –나쁜 코드도 돌아는 간다. 하지만 코드가 깨끗하지 못하면 개발 조직은 기어간다– 에서부터 시작하여 좋은 코드를 작성하기 위한 예제들이 담겨 있다.

개인적으로는 이전에 읽었던 <코드 컴플릿> 덕분에 개념이 잡혀 있던터라 크게 새롭지는 않았다. 이런 류의 책들을 한 번 경험해 봤다면 다른 책들은 굳이 읽을 필요는 없을 듯. 온라인에서 쉽게 검색 가능한 언어별 코딩 스타일만 참조를 하면 될 것 같다. –개인적으로는 C# 을 주력으로 사용하는데, C#의 코딩 스타일 표준에서 좋지 않게 보는 스타일이 책에 쓰여 있는 것을 보고 묘하게 웃겼다.

현실적으로 비즈니스 요구사항이 개발 자체보다 우선하거니와 프로그래머 자신의 역량도 점점 오르기 때문에 코드는 대단히 역동적으로 바뀌게 마련인데, 그러다 보면 아무래도 이상적인 코드를 작성하는 것은 말 그대로 이상적인 일일 수도 있다. 사실 완벽이라는 것도 관점에 따라 다른 것이라 완벽한 코드를 작성한다는 것 자체가 도달할 수 없는 일일 수 있음.

그래도 더 나은 결과를 얻기 위해 부단히 노력하고 그것이 오랜 기간 훈련이 된다면, 의식하지 않아도 저절로 더 나은 결과물이 나올 것이라 믿는다.

2019

꿈에서 도망가지 말자.
진정으로 하고자 하는 이는 어떻게든 해 낸다.
— 1월 19일

기회가 아니라 결과의 평등을 바라는 사람들이 세상을 망친다.
— 1월 19일

편하게 살거나 자신을 위해 사는 사람을 존경하는 사람은 없다.
어려운 상황에서도 남을 위해 사는 사람이 존경 받는다.
— 1월 12일

항상 도약만 해서도 안 되지만, 항상 개선만 해서도 안 된다.
꾸준히 개선하면서 때로는 도약을 해야 한다.
— 1월 6일

현상을 보고 미래를 예측하지 마라. 변화는 구조에 기인한다.
— 1월 6일

재능 있는 사람이 나쁜 길로 빠지는 것이 가장 위험하다.
— 1월 1일

무엇을 하든 의미 있는 시간을 보내라.
— 1월 1일

도널드 노먼의 UX 디자인 특강

UX 디자인의 대부 도널드 노먼의 사용자 경험 디자인에 대한 여러 이야기를 담은 책.

책의 내용이 <심플은 정답이 아니다>의 연장선이라 다루는 논의가 비슷한데, 단순함을 추가하는게 아니라 복잡함을 다루는 방법에 주목해야 한다는 내용. 복잡한 총량의 법칙과 같은 도저히 줄일 수 없는 복잡함의 수준에 이르렀을 때 –자동차의 복잡함을 아무리 줄여도 초인종의 복잡함만큼 줄일 수는 없다– 그것을 어떻게 다뤄야 한다는 여럿 논의가 담겨 있다.

개인적으로 도널드 노먼의 책들을 좋아해서 여러 권 읽어 봤는데, 이 책 내용이 <심플은 정답이 아니다>의 연장선 –거의 같은 내용에 다른 이야기가 좀 더 추가된– 이기 때문에 굳이 읽을 필요는 없었던 책이라는 느낌이 들었다. 내용 자체는 좋으니 그 책을 안 본 사람이라면 읽을만 할 듯.



우연의 설계

복잡성에 대해 이야기하면서 무작위성과 확률에 대해 집중하여 이야기 하는 책. 무작위성이 어떻게 현실 세계에 영향을 미치는가를 여러 분야에 걸쳐 설명하고 있다.

나도 현실 세계는 점진적인 것으로는 도달할 수 없는 영역이 있고, 그것을 넘어서기 위해서는 도약이 수반되어야 한다고 믿는 입장이고 –이른바 혁신과 최적화– 책에서 주장하는 바와 같이 우주의 아주 본질적인 부분에 무작위성이 개입되어 있다고 믿기 때문에 책의 내용을 매우 흥미롭게 읽을 수 있었다.

우주는 확률과 지수적인 변화 –카오스– 에 기반하기 때문에 우주의 모든 요소를 측정하더라도 미래 예측은 본질적으로 불가능하다. 우주라는 비디오 테이프를 처음으로 돌려 다시 재생하면 나라는 개인은 물론 지금과 같은 모습의 호모 사피엔스라는 종도 출현하지 않을 것이다. –물론 도구를 사용하고 집단 협업이 가능한 지적인 생명체는 생명이 출현했다면 시간의 문제일 뿐 대단히 높은 확률로 존재할 것이다– 책에서도 언급 되지만 초기의 작은 오차는 지수적인 변화로 인해 급격한 차이를 만들고 나중에는 전혀 본체를 잡아 먹어 전혀 다른 양상을 만들어 낸다. –양자역학의 확률적인 부분을 다중우주라는 개념으로 결정적인 것으로 확장시키는 것은 사실 못 믿겠다. 그냥 우주가 불완전하고 불확정적이라는 것을 받아들이자는게 내 입장.

이것을 이해하면 불확실성을 받아들이는 것이 중요하다는 것을 깨닫게 되고, 어떻게 불확실한 외부세계에 대응할 것인가를 생각할 수 있게 된다 –책에 나오는 완전 무작위는 그 방법 중의 하나.

요즘 책을 좀 훑듯이 읽는 습관이 생겼는데, 기회가 되면 꼼꼼히 정리를 해 봐야겠다. 복잡성에 대한 대중적인 책에서 이미 많이 언급되는 내용도 많지만, 보다 촘촘하게 이해할 수 있는 내용도 많은 듯.

카카오 AI 리포트

AI 관련 연구, 개발자나 현업 사람들 등 다양한 사람들이 다양한 관점에서 AI에 대해 정리한 리포트를 한 권의 책으로 엮어낸 책. 자율주행(+교통)과 의료에 대한 이야기 비중이 좀 크다.

서점에서 얼핏 보고 기술적인 내용이 있길래 샀는데, AI 기술 자체에 대한 내용은 일부 적용 사례 리포트에 정리된 것이었고 대부분은 새로 등장한 AI 기술에 대한 전망이나 응용에 대한 내용이라 그냥 일종의 ‘2019년 트랜트’ 같은 책처럼 읽으면 될 듯 하다.

사실 나도 딥러닝 기술에 대해서는 몰라서 오히려 너무 기술적인 내용은 자세히 있더라도 이해는 못 했을 듯. 실제로 잘 이해 못한 리포트들이 많았다.

죽기 전에 알아야 할 5가지 물리법칙

교양 물리 서적. 제목에서 알 수 있듯 5가지 물리학 개념을 발견자 개인에 대한 이야기와 함께 다루고 있다. 큰 틀에서 보자면 고전 역학에서 상대성 이론 – 양자역학으로 가는 줄기에 있는 내용이 다뤄지는데 추가로 엔트로피 개념이 정립된 통계 역학 부분도 다뤄지고 있다. –이 부분 때문에 이 책을 읽었음.

가볍게 읽을 수 있는 내용이기 때문에 관심 있다면 한 번 쯤 읽어 볼 만한 책. –중간에 수식도 살짝 나오는데, 나는 내가 물리학도도 아니고 이런 내용은 대개 넘겨가며 읽는 편. 설마 책에 틀린 수식을 써 놨을까

개인적인 취향이 어쩌다 맞았는지 모르겠지만 교양 물리학은 보통 위 흐름 (고전역학 -> 상대성 이론 -> 양자역학) 대로 다뤄지는데, 묘하게도 그 흐름에서 전자기학은 잘 다뤄지지 않는 것 같다. 전자기학을 보려면 전자기학을 다루는 내용을 따로 찾아서 봐야 함. 묘한 일.

일상적이지만 절대적인 과학철학지식 50

제목 그대로 과학 철학에 대한 여러 이야기들을 담은 책. 과학을 접하면 한 번쯤 들어 봤을 법한 합리주의, 귀납주의, 유물론, 패러다임 등 여러 개념들에 대한 내용이 담겨 있다.

흥미롭게도 ‘불완전성’, ‘불확정성’ 같은 어떤 내용에 대한 설명도 담겨 있는데, 과학사에 큰 영향을 미친 여러 것들을 두루 담았다고 보면 될 듯.

이전에 읽은 <일상적이지만 절대적인 뇌과학지식 50>과 달리 번역도 깔끔해서 교양으로 읽기 좋다. 과학 자체에 대한 책은 많지만 이렇게 과학사와 과학 철학을 훑는 책은 많지 않아서 기회가 되면 다시 한 번 꼼꼼히 읽어 보고 정리해 두고 싶다는 생각을 했음.

일상적이지만 절대적인 뇌과학지식 50

제목 그대로 뇌과학에 대한 대중 교양서. 이전에 읽다가 포기한 물리학편 보다는 좀 더 대중적이고, 이전에 읽었던 화학편과 비슷한 듯. 뇌과학에 대해 아예 아무것도 모르면 따라가기 어려운 부분들이 좀 있다.

그래도 재미있는 내용이 많았고, 배운 것도 많았다. 차후에 따로 공부해도 괜찮겠다 싶었음. 다만 번역이 영 별로.