Community

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

← Go back
[TIL] IT 5분 잡학사전 #35~#38
#book_club
1년 전
476

📌오늘 TIL 3줄 요약

  • 프로그래밍 패러다임은 객체 지향 프로그래밍, 절차 지향 프로그래밍, 함수형 프로그래밍이 대표적이다.

  • 객체 지향 프로그래밍은 클래스와 상속을 이용해 코드의 양도 줄이고 훨씬 효율적으로 작성할 수 있다.

  • 선언형 프로그래밍은 결과값을 선언, 명령형 프로그래밍은 결과값에 어떻게 도달하는지 단계를 선언, 함수형 프로그래밍은 함수 중심으로 코드를 적는 방식으로 선언형 프로그래밍 콘셉트를 유지한다.


📆TIL (Today I Learned) 날짜

2023.10.17


📖오늘 읽은 범위

ep35. 비밀번호는 어떻게 저장될까?

ep36. 객체 지향 프로그래밍이 뭐죠? ①

ep37. 객체 지향 프로그래밍이 뭐죠? ②

ep38. 함수형 프로그래밍이 뭐죠?


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

(ep35)

  • 비밀번호 시스템의 잘못된 예시

: 1) 비밀번호를 데이터베이스에 그대로 저장하는 방식

2) 데이터베이스 자체를 암호화해서 아무도 볼 수 없게 만든 후 비밀번호를 저장,

사용자는 회사에서 주는 key로 데이터베이스를 해제한 후 로그인하는 방식(key를 잃어버리거나 누군가 홈친다면 큰일)

  • 괜찮은 비밀번호 시스템 예시

: 해시 함수를 사용하여 비밀번호를 무작위 값으로 둔갑시켜 저장하는 방식

해시 함수의 특징

⇒ 동일한 입력값에 대해 동일한 출력값을 가진다.

입력값이 아주 살짝만 바뀌어도 출력값은 엄청나게 크게 바뀐다.

반대로 입력한다고 해서 원래 값이 나오지 않는다.

해시 함수가 변경한 값을 원래의 값과 연결한 표인 레인보우 테이블이 존재하기 때문에

해시 함수도 완벽하진 않다.(레인보우 테이블이 털리면 큰일)

  • 솔트

: 새로 나온 최종 병기, 솔트

아주 조그마한 무작위 텍스트인데, 비밀번호를 무작위 텍스트인 솔트와 합쳐서 해시 함수에 통과시키는 방식

(레인보우 테이블이 있어도 원래 비밀번호를 찾을 순 없을 것이다.)

(ep36)

  • 프로그래밍 패러다임(programming paradigm)

: 프로그래머가 프로그래밍을 할 때의 관점, 방식 이런 것을 말한다.

프로그래밍 언어는 프로그래밍 패러다임을 하나 또는 하나 이상을 지원한다.

(대표적인 프로그래밍 패러다임 ⇒ 객체 지향 프로그래밍, 절차 지향 프로그래밍, 함수형 프로그래밍)

  • 객체 지향 프로그래밍의 클래스(class)

: 공장(클래스)에 필요한 속성(재료)를 넣어주면 공장이 알아서 찍어 만들어준다.

(new Player( ... )에 재료의 값을 넣어주면 만들어진다.)

코드를 직접 손으로 입력하는 양도 줄고, 속성의 오타도 피할 수 있고, 새로운 속성을 추가할 때는

공장(클래스)에 알려 주기만하면 돼서 효율적이다.

(ep37)

  • 객체 지향 프로그래밍의 상속

: 성인, 청소년, 아기의 클래스를 생성한다고 할 때 중복되는 이름, 팔 2개, 다리 2개를

Human 클래스로 따로 저장하고 각각 성인, 청소년, 아기 클래스에

상속을 하면 코드의 양도 줄고, 의미도 더 명확하게 보인다.

(ep38)

  • 선언형 프로그래밍

: 원하는 결과값을 선언한다. (대표적: CSS /배경색을 분홍색으로 해!)

  • 명령형 프로그래밍

: 원하는 결과값에 어떻게 도달하는지 선언한다. (단계를 다 알려준다.)

  • 선언vs명령

: 명령형 프로그래밍은 할 일을 세세하게 지시할 수 있는 대신 개발자가 실수하기 쉽고 타인이 이해하기 어렵다.

선언형 프로그래밍은 결과 중심으로 코드를 작성하기 때문에 실수도 적고 타인이 이해하기도 쉽다.

  • 함수형 프로그래밍

: 함수 중심으로 코드를 적는 방식으로 선언형 프로그래밍 콘셉트를 유지한다.

(ex. 조건문을 반환하는 checkForOdd 라는 함수를 작성하고 filter의 인자로 checkForOdd 함수를 보낸다.)


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

객체 지향 프로그래밍의 클래스 예시를 공장과 재료로 보니까 확실히 이해하기 쉬웠다.


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


😊오늘 읽은 다른사람의 TIL