Community

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

← Go back

TIL EP35~38

by beno
#book-club
1년 전
156

오늘 TIL 3줄 요약

  • 비밀번호는 해시 함수와 솔트를 조합해서 저장해야 한다

  • 프로그래밍 패러다임 - 절차 지향, 객체 지향(클래스와 상속), 함수형 프로그래밍

  • 선언형 프로그래밍 - 실수가 적다, 동료가 코드를 이해하기 쉽다

TIL (Today I Learned) 날짜

2025. 01. 14

오늘 읽은 범위

에피소드 35 - 에피소드 38

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

  • 비밀번호 시스템의 잘못된 예
    1. 비밀번호를 데이터베이스에 그대로 저장
    2. 데이터베이스 자체를 암호화해서 키로 로그인

  • 괜찮은 비밀번호 시스템의 예
    1. 해시 함수
    [동작법]
    ₁. 동일한 입력값에 대해 동일한 출력값
    ₂. 입력값이 살짝 바뀌면 출력값은 엄청 크게 바뀜


    ₃. 반대로 입력해도 원래 값이 나오지 않음
    -레인보우 테이블(비밀책)이 있어서 털릴 수 있기에 해시 함수도 완벽하진 않음
    2. 솔트: 작은 무작위 텍스트
    비밀번호+솔트 → 해시함수에 통과시킴
    레인보우 테이블이 있어도 원래 비밀번호를 찾을 수 없다

  • 프로그래밍 패러다임: 프로그래머가 프로그래밍 할 때의 관점, 방식(사고의 틀)
    프로그래밍 언어는 패러다임을 하나 또는 하나 이상을 지원함


    - 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍

  • 객체 지향 프로그래밍


    클래스(class): 속성은 같지만 데이터는 다른 녀석들을 위한 공장
    상속: 기본이 되는 클래스를 나머지 클래스에 상속시켜서 중복 해결

  • 함수형 프로그래밍: 버그가 발생하기 어려운 구조 - 자바, 자바스크립트, 파이썬 등
    함수를 중심으로 코드를 적는 방식, 선언형 프로그래밍 컨셉 유지

  • 선언형 프로그래밍: 원하는 결괏값을 선언
    실수가 적다, 동료가 코드를 이해하기 쉽다

  • 명령형 프로그래밍: 원하는 결과값에 어떻게 도달하는지 선언(단계를 다 알려줌)
    할 일을 세세하게 지지할 수 있다
    개발자가 실수하기 쉽다, 내가 쓴 코드를 동료가 이해하기 어렵다

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

  • 내 비밀번호들 개발자가 다 알거라고 생각했는데 그게 아니었구나

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

  • 절차 지향은 왜 설명이 없지

  • 솔트는 해킹에 완벽한가? 비밀번호가 털리는 이유는 솔트 구조가 아니라서? 2단계 인증은 솔트로도 털릴 수 있으니까 만든건가?

오늘 읽은 다른사람의 TIL