
- 중요한 데이터베이스를 저장할 때에는 🧂 솔트와 함께 해시 함수를 통과시켜 🌈 레인보우 테이블로부터 지켜내자
- 개발 생산성을 높여주는 객체 지향 프로그래밍
- 프로그래밍 문제 해결시 새로운 관점과 접근 방식을 얻고 싶다면, 함수형 프로그래밍을 학습하자
2024.02.20
에피소드 35 ~ 38
책에서 기억하고 싶은 내용을 써보세요.
✔️ 무작위성
✔️ 동작 규칙
1️⃣ 동일한 입력값에 대해 동일한 출력값을 가짐 2️⃣ 입력값이 아주 살짝만 바뀌어도 출력값은 완전히 다른 결과가 나옴 3️⃣ 단방향 함수✔️ 한계와 해결방안
🌈 레인보우 테이블 (rainbow table) : 해시 함수가 변경한 값을 원래의 값과 연결한 표 (➡️ 보안 문제 발생)
🧂 솔트 (salt) : 무작위 텍스트로 솔트와 함께 해시 함수를 통과시키면, 레인보우 테이블이 있어도 원래 값을 알 수 없음
✔️ 함수형 프로그래밍
버그가 발생하기 어려운 구조
함수 중심으로 코드 작성
선언형 프로그래밍 콘셉트 유지
Java, JavaScript, Pythone 등에서 지원
✔️ 선언형 프로그래밍
원하는 결괏값을 선언
모든 선언형 프로그래밍은 명령형 프로그래밍 위에서 동작
결과 중심으로 코드를 작성하기 때문에 개발자의 실수가 적고, 다른 동료가 코드를 이해하기 좋음
✔️ 명령형 프로그래밍
원하는 결괏값에 어떻게 도달하는지 선언
할 일을 세세하게 지시할 수는 있지만 개발자가 실수하기 쉽고, 다른 동료가 코드를 이해하는데 어려울 수 있음
[에피소드 35] https://youtu.be/67UwxR3ts2E?si=M4H3Mq0xTIlIyuJM
[에피소드 36, 37] https://youtu.be/cg1xvFy1JQQ?si=Gy0MWNTthypbzSGA
[에피소드 38] https://youtu.be/7aEQLvvnQIY?si=KpCC4_cwG4qN1Kp4