Community

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

← Go back

[IT 5분 잡학사전] TIL #12

by ssy
#book_club
2년 전
449

오늘 TIL 3줄 요약

  • 비밀번호를 암호화하기 위해 해시 함수를 사용한다.

  • 객체 지향 프로그래밍에서는 클래스상속 개념이 사용된다.

  • 명령형 프로그래밍은 할 일을 세세하게 지시할 수 있는 대신 개발자가 실수하기 쉽다. 반면 선언형 프로그래밍은 결과 중심으로 코드를 작성하니 실수가 적다.

TIL (Today I Learned) 날짜

2023.01.24

오늘 읽은 범위

에피소드 35 - 에피소드 38

책에서 기억하고 싶은 내용을 써보세요.

  1. 해시 함수

    • 특징

      • 동일한 입력값에 대해 동일한 출력값을 가진다.

      • 입력값이 아주 살짝만 바뀌어도 출력값은 엄청나게 크게 바뀐다.

    • 레인보우 테이블(rainbow table)은 해시 함수가 변경한 값을 원래의 값과 연결한 표로, 레인보우 테이블을 알면, 원래의 값을 알아낼 수 있다.

    • 그래서 레인보우 테이블과 같이 미리 계산된 테이블을 사용하는 공격을 방어하기 위해 솔트(salt)(=무작위 데이터)를 추가 입력하는 방법이 있다.

  2. 객체 지향 프로그래밍

    • 클래스

      • 같은 속성을 가진 각기 다른 데이터를 나타내기 위해 ‘클래스’ 개념을 사용한다.

      • 게임으로 비유를 하자면, 플레이어를 찍어내는 공장이 Player 클래스이고, Player 클래스 속성으로는 name, health, skill 등이 있다.

        한 명의 플레이어가 하나의 객체로써, 각 플레이어별로 각기 다른 속성 값을 가지고 있다.

    • 상속

      • 중복을 해결하기 위해 ‘상속’ 개념을 사용한다.

      • 심즈 게임으로 비유를 하자면, 게임 내 사람은 아이일 수도 있고, 청소년일 수도 있고, 성인일 수도 있다.

        사람을 Human 클래스로 나타내면, 아기(Baby 클래스), 청소년(Teenager 클래스), 성인(Adult 클래스)은 Human 클래스를 상속함으로써 사람이 가진 공통된 속성을 나타낼 수 있고, 상속받은 클래스 내에서 각기 다른 속성에 대해 나타낼 수 있다.

  3. 함수형 프로그래밍

    • 선언형 프로그래밍(ex. CSS)에서는 원하는 결괏값을 선언한다.

    • 명령형 프로그래밍에서는 원하는 결괏값에 어떻게 도달하는지 선언한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

함수형 프로그래밍이 무엇인지는 에피소드 38을 통해 대략적으로 이해는 하였는데, 뭔가 추상적인 느낌이 있어서, 좀 더 리서치 해봐야겠습니다!

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

선언형 프로그래밍 = 함수형 프로그래밍인가요,

아니면 함수형 프로그래밍이 선언형 프로그래밍에 포함되는 건가요?

오늘 읽은 다른사람의 TIL