Community

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

← Go back
[TIL] IT 5분 잡학사전 #12 EP.35-EP.38
#book_club
9개월 전
389

오늘 TIL 3줄 요약

  • 해시 함수와 솔트를 사용해 비밀번호를 안전하게 저장하는 법

  • 공장으로 찍어내고 자식에게 물려줘요! 객체 지향 프로그래밍

  • 함수형 프로그래밍으로 숨은 버그 줄이기

TIL (Today I Learned) 날짜

2023. 12. 19

오늘 읽은 범위

EP.35~EP.38

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

비밀번호 시스템 안전하게 구현하기

  • 비밀번호는 보안에 아주 중요한 부분이다. 아무런 조치 없이 데이터베이스에 저장하기만 한다면 운영자, 개발자 등 누구나 개인의 비밀번호를 알 수 있어 시스템 설계에 각별히 신경을 써야 한다.

    • 해시 함수의 특성

      1. 해시 함수는 동일한 입력 값에 대해 동일한 출력 값을 가지는 1:1 대응 관계가 유지된다.

      2. 입력 값이 조금만 달라져도 출력 값이 크게 바뀌는 무작위성을 가진다.

      3. 반대로 입력해도 한쪽 방향으로만 설계된 함수이기 때문에 원래 값을 알 수 없다.

      💡입력한 값을 해시 함수에 통과시켜 얻은 무작위 값을 데이터베이스에 저장한다

      ❌레인보우 테이블이 존재하므로 털릴 위험이 존재

      레인보우 테이블(rainbow table) : 해시 함수가 변경한 값을 원래의 값과 연결한 표
    • 해시 함수 + 솔트 사용하기

      • 가장 괜찮은 방법은 입력 값을 무작위 값으로 출력해주는 해시 함수의 특성과 무작위 텍스트인 솔트를 합치는 것이다.

        💡입력한 값을 솔트와 합친 후 해시 함수에 통과시키면 레인보우 테이블이 있어도 원래 값과 대치 할 수 없다


객체 지향 프로그래밍

  • 속성기능을 가지는 객체를 중심으로 프로그래밍을 하는 프로그래밍 패러다임의 한 종류이다.

프로그래밍 패러다임 : 프로그래밍을 할 때의 관점, 방식 등 사고의 틀
  • 객체 지향 프로그래밍의 특성

    • 클래스 : 같은 속성을 가지지만 다른 값을 가진 각각의 객체를 값만 다르게 넣으면 알아서(?) 만들어준다. 코드의 양이 줄고 속성의 오타나 누락의 경우도 피할 수 있다. 새 속성을 부여할 때도 클래스 하나에만 추가하면 된다.

    • 상속 : 부모가 자식에게 재산을 물려주는것과 똑같은 개념으로 부모 클래스의 기본 속성을 자식 클래스가 그대로 상속받아 사용할 수 있고, 자식 클래스에서는 자신만의 속성을 추가할 수 있다.


함수형 프로그래밍

  • 원하는 값에 대한 처리를 함수에 정의하고, 함수를 통해 얻는다.(?) 버그가 발생하기 어려운 구조라 개발자에게 매우 유용하다!

    • 선언형 프로그래밍 : 원하는 결괏값을 선언한다.

    • 명령형 프로그래밍 : 원하는 결괏값에 도달하는 방법을 선언한다.

      명령형 프로그래밍은 할 일을 세세하게 작성하는 대신 실수하기 쉽고, 작성한 코드를 동료가 이해하기 어렵다. 반면 선언형 프로그래밍은 코드의 가독성이 높아 실수가 적고, 이해하기도 쉽다.

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

  • 계속해서 뚫리는 보안을 막아내고 새로운 방법을 개발해내는 보안 전문가들이 새삼 대단하다. 나도 비밀번호 바꾸기라도 잘 해야겠다.

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

오늘 읽은 다른사람의 TIL