본문 바로가기
TIL

TIL#7. IT 5분 잡학사전 ep35-38

by 고니누나 2023. 10. 17.
728x90

노마드코더의 북클럽 챌린지 IT 5분 잡학사전

 

노마드 코더 Nomad Coders

코딩은 진짜를 만들어보는거야!. 실제 구현되어 있는 서비스를 한땀 한땀 따라 만들면서 코딩을 배우세요!

nomadcoders.co

오늘 읽은 내용

에피소드 35 - 비밀번호 저장 방법

에피소드 36, 37 - 객체 지향 프로그램

에피소드 38 - 함수형 프로그래밍

기억할 내용

[비밀번호 저장을 위해 사용하는 해시함수, 솔트]

- 해시함수는 동일한 입력값에 대해 동일한 출력값을 가짐. / 입력값이 살짝 바뀌어도 출력값은 크게 변화 / 반대로 입력한다고 해서 원래 값이 나오지 않는다 (한 방향으로만 설계되어있음)

- 하지만 해시함수도 '레인보우 테이블(해시 함수의 값을 원래 값과 연결한 테이블)' 때문에 완벽할 수 없다.  

=> 솔트(Salt)라는 무작위 텍스트를 비밀번호와 결합해서 해시함수를 통과시켜 보완

 

[프로그래밍 패러다임]

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

 

[객체 지향 프로그래밍]

- class: 상품 찍어내는 '공장' 역할. 

- 상속: 클래스와 같이 코드의 효율성을 높여주는 개념. 중복된 요소가 있을 경우, 해당 요소들을 상속받음 (예. 심즈 게임에서 기본 인간 속성은 상속. 성인, 아이에 따라 다른 특성만 부여)

 

[함수형 프로그래밍]

- 버그가 발생하기 어려운 구조

- 함수형 프로그래밍을 지원하는 언어: 자바, 자바스크립트, 파이썬 등

- 샌드위치를 만든다고 할 때, 선언형 프로그래밍은 "샌드위치를 만들어줘"라고 결과만 선언하고, 명령형은 "빵 2개 꺼내서 구워, 양상추 준비하고 토마토를 썰어라 등등"과 같이 결괏값에 도달하는 단계를 다 알려줌.

- CSS가 대표적인 선언형

- 명령형은 세세한 지시가 가능하지만 개발자가 실수할 수 있고, 코드를 이해하기 어려운 반면, 선언형 프로그래밍은 결과 중심으로 코드를 작성하니 실수도 적고 이해하기 좀 더 쉬움

 

생각과 메모

- <비전공자를 위한 이해할 수 있는 IT지식>이라는 책과 비교하게 된다. 그 책도 개발자가 아닌 사람들이 개발을 이해할 수 있게 하기 위해 쓰인 좋은 책이지만, IT5분 잡학 사전은 프로그래밍을 공부하기 위해 시작하는 사람들에게, 전체적인 개념과 중요한 포인트를 더 쉽게 이해하기에 좋다. 무엇보다, 현실적인 예시들로 '쉽게'설명한다는 것이 큰 장점. 

- 이번에 책을 읽으면서 '어려운 개념을 쉽게 설명하는 것'의 중요성과 필요한 능력치에 대해 다시 생각해 볼 수 있었다. 얼만큼 본질을 정확하게 꿰뚫고 있는지, 중요한 것은 무엇인지 파악하고 중심을 잡는 것은 프로그래밍 공부뿐만 아니라, 다른 영역에서도 공통적으로 필요하다. 

 

728x90