개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
비밀번호는 그대로 DB에 저장해서는 안 되고, 해시 함수를 이용해서 무작위 값으로 저장해야 한다.
객체 지향 프로그래밍은 클래스를 사용한다.
함수형 프로그래밍은 선언형 프로그래밍 콘셉트를 유지하면서 함수 중심으로 코드를 작성한다.
TIL (Today I Learned) 날짜
2025. 01. 14
오늘 읽은 범위
에피소드 35 - 비밀번호는 어떻게 저장될까?
에피소드 36 - 객체 지향 프로그래밍이 뭐죠? (1)
에피소드 37 - 객체 지향 프로그래밍이 뭐죠? (2)
에피소드 38 - 함수형 프로그래밍이 뭐죠?
책에서 기억하고 싶은 내용을 써보세요.
에피소드 35
비밀번호는 그대로 DB에 저장해서는 안 된다.
해시 함수는 입력값이 아주 조금 변해도 출력값이 크게 바뀌고, 반대로 입력해서 원래의 값이 나오지 않는다는 특징이 있다.
해시 함수가 변경한 값을 원래의 값과 연결한 표를 레인보우 테이블이라고 한다. 레인보우 테이블이 유출되면 보안에 위협이 생길 수 있다.
솔트라는 무작위 텍스트를 붙여서 사용하면 레인보우 테이블이 있어도 원래의 비밀번호를 찾을 수 없다.
에피소드 36
프로그래밍을 할 때의 관점, 방식을 프로그래밍 패러다임이라 한다. 대표적으로 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍이 있다.
객체 지향 프로그래밍에서는 클래스를 통해 동일한 속성을 가지는 객체를 쉽게 만들 수 있다.
에피소드 37
클래스를 사용할 때는 여러 클래스가 공통으로 가지는 성질을 가지는 클래스를 정의하고, 개별적으로 가지는 성질은 상속을 통해서 만들 수 있다.
에피소드 38
함수형 프로그래밍은 버그가 발생하기 어려운 구조이기 때문에 개발자에게 매우 유용하다.
선언형 프로그래밍은 원하는 결과를 선언하고, 명령형 프로그래밍은 원하는 결과에 어떻게 도달하는지 선언한다.
함수형 프로그래밍은 선언형 프로그래밍 콘셉트를 유지하면서 함수 중심으로 코드를 작성한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
객체 지향 프로그래밍에 비해 상대적으로 낯설었던 함수형 프로그래밍에 대해서 간략하게 이해할 수 있었다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
솔트를 이용하여 비밀번호를 저장하는 것은 어떻게 하는 걸까? 무작위 텍스트라면 hash의 값을 저장하는 방식으로 비밀번호를 체크하는 게 불가능한 거 아닌가?
모든 선언형 프로그래밍이 명령형 프로그래밍 위에서 쓴다고 이야기할 수 있다면, 선언형 프로그래밍이 명령형 프로그래밍의 상위 계층인 것 아닌가?