개발자 99% 커뮤니티에서 수다 떨어요!
오늘 읽은 범위 : 에피소드 35. 비밀번호는 어떻게 저장될까? ~ 38. 함수형 프로그래밍이 뭐죠?
비밀번호 최종병기는 솔트!
객체 지향 프로그래밍에는 클래스, 상속이 있음
선언형은 결과 중심! 명령형은 과정 중심!
[ 해시함수 ]
동일한 입력값에 대해 동일한 출력값을 가짐 - 일대일 대응 관계
입력값이 아주 살짝만 바귀어도 출력값은 엄청나게 크게 바뀜
반대로 입력한다고 해서 원래 값이 나오지 않음 - 한쪽 방향으로만 설계 됨
[ 레인보우 테이블 ]
해시 함수가 변경한 값을 원래의 값과 연결한 표
[ 솔트 ]
비밀번호를 무작위 텍스트인 솔트와 합쳐서 해시함수 통과
레인보우 테이블 있어도 비밀번호 찾을 수 없음
[ 프로그래밍 패러다임 ]
종류 : 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍
[ 객체 지향 프로그래밍 ]
클래스
객체를 생성하기 위한 설계도 또는 템플릿
클래스는 객체의 속성(데이터 멤버)과 동작(메서드)을 정의
예를 들어, "자동차" 클래스는 자동차의 속성(색상, 모델)과 동작(주행, 정지)을 정의
상속
클래스 간의 관계를 나타내며, 한 클래스가 다른 클래스의 특성과 메서드를 상속받을 수 있음
이를 통해 코드 재사용과 계층 구조를 구현 가능
[ 선언형 프로그래밍 ]
원하는 결과값을 선언
결과 중심으로 코드 작성 따라서 실수 적고, 동료가 코드를 이해하기 쉬움
[ 명령형 프로그래밍 ]
원하는 결과값에 어떻게 도달하는지 선언
할 일을 세세하게 지시가능 But 개발자가 실수하기 쉬움
[ 함수형 프로그래밍 ]
버그가 발생하기 어려운 구조
함수 중심으로 코드를 적는 방식
선언형 프로그래밍 콘셉트 유지
객체지향 프로그래밍에 대해 쉽게 이해할 수 있었다.
선언형과 명령형 프로그래밍의 차이점에 대해 새롭게 알게 되어 좋았다.