Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

TIL - Day 12

#book_club
1년 전
557

Day 12

오늘 읽은 범위 : 에피소드 35. 비밀번호는 어떻게 저장될까? ~ 38. 함수형 프로그래밍이 뭐죠?

💡 오늘 TIL 3줄 요약

  • 비밀번호 최종병기는 솔트!

  • 객체 지향 프로그래밍에는 클래스, 상속이 있음

  • 선언형은 결과 중심! 명령형은 과정 중심!

💡 책에서 기억하고 싶은 내용 작성

[ 해시함수 ]

  1. 동일한 입력값에 대해 동일한 출력값을 가짐 - 일대일 대응 관계

  2. 입력값이 아주 살짝만 바귀어도 출력값은 엄청나게 크게 바뀜

  3. 반대로 입력한다고 해서 원래 값이 나오지 않음 - 한쪽 방향으로만 설계 됨

[ 레인보우 테이블 ]

  • 해시 함수가 변경한 값을 원래의 값과 연결한 표

[ 솔트 ]

  • 비밀번호를 무작위 텍스트인 솔트와 합쳐서 해시함수 통과

  • 레인보우 테이블 있어도 비밀번호 찾을 수 없음

[ 프로그래밍 패러다임 ]

  • 종류 : 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍

[ 객체 지향 프로그래밍 ]

  • 클래스

    객체를 생성하기 위한 설계도 또는 템플릿

    클래스는 객체의 속성(데이터 멤버)과 동작(메서드)을 정의

    예를 들어, "자동차" 클래스는 자동차의 속성(색상, 모델)과 동작(주행, 정지)을 정의

  • 상속

    클래스 간의 관계를 나타내며, 한 클래스가 다른 클래스의 특성과 메서드를 상속받을 수 있음

    이를 통해 코드 재사용과 계층 구조를 구현 가능

[ 선언형 프로그래밍 ]

  • 원하는 결과값을 선언

  • 결과 중심으로 코드 작성 따라서 실수 적고, 동료가 코드를 이해하기 쉬움

[ 명령형 프로그래밍 ]

  • 원하는 결과값에 어떻게 도달하는지 선언

  • 할 일을 세세하게 지시가능 But 개발자가 실수하기 쉬움

[ 함수형 프로그래밍 ]

  • 버그가 발생하기 어려운 구조

  • 함수 중심으로 코드를 적는 방식

  • 선언형 프로그래밍 콘셉트 유지

💡 오늘 읽은 소감은? 떠오르는 생각 가볍게 적어보기

  • 객체지향 프로그래밍에 대해 쉽게 이해할 수 있었다.

  • 선언형과 명령형 프로그래밍의 차이점에 대해 새롭게 알게 되어 좋았다.