09. [IT 5분 잡학사전] TIL Day 12

leewol·2023년 2월 28일
0

노개북

목록 보기
9/10

Day 12

2023년 2월 28일
에피소드 35 ~ 38

기억하고 싶은 내용

비밀번호 시스템

잘못된 예

① 데이터베이스에 그대로 저장 ↔ 비밀번호 노출
② 데이터베이스 자체를 암호화 후 비밀번호 저장 ↔ key를 잃어버리거나 도난당할 위험

좋은 예

① 해시 함수 → 비밀번호를 해시함수를 통해 무작위 값으로 바꿔 저장

  • 하지만 누군가 레인보우 테이블(해시 함수가 변경한 값을 원래 값과 연결한 표)을 입수하면 위험
  • 따라서 솔트(아주 조그마한 무작위 텍스트)와 비밀번호를 합쳐 해시 함수에 넣음
    • 레인보우 테이블은 무용지물이 된다!

해시 함수의 동작
① 동일한 입력값 - 동일한 출력값
② 입력값이 살짝만 바뀌어도 출력값은 매우 달라짐
③ 반대로 입력한다고 해서 원래 값이 나오지 않음

객체 지향 프로그래밍

특징

  • 클래스 ∽ 공장
  • 상속

프로그래밍 패러다임
프로그래머가 프로그래밍을 할 때의 관점, 방식 / 프로그래밍하는 사고의 틀

  • 프로그래밍 언어는 이러한 패러다임을 하나 이상 지원
  • 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍 등

함수형 프로그래밍

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

선언형 프로그래밍 & 명령형 프로그래밍

선언형명령형
방법원하는 결괏값을 선언원하는 결괏값에 어떻게 도달하는지 선언
예시BLT샌드위치를 만들어줘!토스트 빵 2개를 꺼내 굽는다 → 양상추... 어쩌고 → 처음 구웠던 빵 하나에 재료를 쌓고 나머지 하나로 덮는다
장점실수가 적다, 코드 이해가 쉬움프로그램에게 세세하게 지시 가능
단점실수하기 쉽고, 코드 이해가 어려움
  • 모든 선언형 프로그래밍은 명령형 프로그래밍 위에 쓴다고 할 수 있음
  • 선언형 프로그래밍에서 각 함수가 실제 작업을 어떻게 하는지는 중요치 않음

코드 예시

// 명령형
function spaceToHeart(text) {
  let result = "";
  for (let i=0; i<text.length; i++) {
    if (text[i] === " ") {
      result += "♡";
    } else {
      result += text[i];
    }
  }
  return result;
}
// 선언형
function spaceToHeart(text) {
  return text.replaceAll(" ", "♡");
}

읽은 소감

1. 프로그래밍 패러다임에 대해서 더 깊이 공부해봐야 할 듯.. 안 그래도 얼마전에 기업 기술 블로그에서 자바스크립트와 함수형 프로그래밍에 대한 글을 읽었는데 장바구니에 담아둔 것 조만간 주문해야지 ㅠㅠ 정말 끝이.. 보이지 않고 하나를 알 수록 오히려 알아야 할 것이 너무너무 많아지는 배움의 세계란!

1-2. 이 이야기가 나오니까 예전에 쳤던 한 코테에서 추상화와 (아마도) 함수형 프로그래밍을 설명하고 본인의 코드와 함께 적용해본 사례를 요구했던 게 기억이 난다.. 나는 그냥 말하는 감자였다 하하하하 그래도 지금은 추상화, 프로그래밍 패러다임, 객체 지향, 함수형, 선언형, 명령형에 대해서 아예 모르는 건 아니니까 발전한 거겠지? 빠삭해지고 적용할 줄 알아야 매우매우매우 발전한 것이지만.. 또 이걸로 너무 채찍질 하기 싫으니까 오늘은 칭찬으로 마무리해야지. 내 코딩 실력도 절차는 다~~모르겠고 improveMyProgrammingSkills()로 쑥쑥쑥 올릴 수 있으면 얼마나 좋을까😑

1-3. 그래도 쉽게만 살아가면 재미없.. 재미있.. 재미없.. 재미있을 것 같은데(ㅠㅠ) 아무튼 과정을 즐겨보자구! 실수하기 쉽지만 더 세세하게 조절할 수 있을 테니까🤨 게임도 어? 다른 사람들이 쓴 공략으로 효율성을 얻을 수 있지만, 그 과정의 재미는 알 수 없고 결국 또다른 공략을 쓰는 사람 자체는 못 될 테니까..(물론 타고난 재능忠분들은 예외입니다) 성장하기 위해서는 필연적으로 삽질이 필요하겠지? 나는 컴터가 아닌 인간이니깐.. 긍정적으로 살자. 긍살.

오늘 본 TIL

성격급한거북이님

profile
간살간죽 개살개죽

0개의 댓글