[노개북] Day 12 - Ep.35~38

우루리·2023년 11월 21일

📌오늘 TIL 3줄 요약

  • 데이터베이스에 비밀번호를 저장하는 방식
  • 객체지향 프로그래밍의 '클래스'와 '상속'
  • 함수형 프로그래밍이란?


🗓TIL (Today I Learned) 날짜

2023.11.21


📙오늘 읽은 범위

Ep 35. 비밀번호는 어떻게 저장될까?
Ep 36. 객체 지향 프로그래밍이 뭐죠? ①
Ep 37. 객체 지향 프로그래밍이 뭐죠? ②
Ep 38. 함수형 프로그래밍이 뭐죠?


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

  • 비밀번호를 데이터베이스에 저장하는 방식

    • 해시함수 : 사용자가 입력한 값을 무작위 값으로 변경해주는 방법
      • 하지만 해시함수가 변경한 값을 원래 값과 연결한 표인 '레인보우 테이블'이 털리면 저장된 값들이 유출될 수 있는 단점이 있음.
    • 이를 보완하기 위해 나온 방식: '솔트'
      • 사용자가 입력한 값에 무작위 텍스트를 합쳐서 해시 함수에 통과시키는 방식.
      • 솔트를 이용하면 레인보우 테이블이 털려도 사용자가 입력한 값은 찾을 수 없음!
  • 클래스 : 코드 중복을 피하기 위해 중복되는 속성을 하나로 묶어주는 것. 일종의 공장 같다고 보면 됨!

    • 예) 게임 캐릭터 - HP, MP, EXP 등의 속성이 있음. 이것을 캐릭터 마다 일일이 집어넣으면 매우 비효율적이고, 수정하는 과정에서 실수가 발생할 수 있음.

      const player1={
      	hp:100,
          mp:100,
          exp:0
      }
      const player2={
      	hp:100,
          mp:100,
          exp:0
      }
      const player3={
      	hp:100,
          mp:100,
          exp:0
      }
      //각각 따로 지정해주면 매우 비효율적!
    • 그러나 공통되는 속성을 player라는 클래스로 묶으면 속성의 수정, 삭제 등 관리에 용이함.

      			class Player{
        constructor(hp, mp, exp){
          this.hp = hp;
          this.mp = mp;
          this.exp = exp;
        }
      }
      			const player1 = new Player(100, 100, 0);
      			const player2 = new Player(100, 100, 0);
      			const player3 = new Player(100, 100, 0);
  • 상속 : 클래스의 속성을 다른 클래스로 물려주는 것. 상속받은 클래스는 상속받은 속성 외에 자신만의 속성을 추가해서 사용할 수 있음!

  • 함수형 프로그래밍이란? 프로그래밍 패러다임 중 하나로, 함수 중심으로 코드를 적는 방식. 프로그래밍 패러다임 중 선언형 프로그래밍 콘셉트를 유지함.

    • 선언형 프로그래밍이란 ? 코드가 어떻게 동작하는지 보다 '무엇'을 주는가에 초점을 두는 방식. 쉽게 말해서 과정보다는 결과 중심으로 프로그래밍하는 방법을 말함.

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

  • 함수형 프로그래밍 방식은 이름만 많이 들어봤지 어떤 건지 잘 몰랐는데 오늘 미션 하면서 어렴풋이나마 알게 된 것 같다. 알 것 같으면서도 좀 어려운 것 같기도 하고... 내가 하나를 알면 열을 깨우치는 그런 천재였으면 얼마나 좋았을까🥺



0개의 댓글