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