반응형
생각 정리
해시 함수는 대충 알고 있었는데, 솔트는 처음 들었다. 보안이 필요한 데이터를 안전하게 관리할 수 있다는 점이 좋았다
객체지향에 대한 관련 질문이 많았지만, 정확한 개념을 확립하지 못 하고 있었는데, 적절한 예시로 이해할 수 있어서 좋았다. 그러나 아직 클래스에 대한 개념이 부족해서 보충학습이 필요하다
어떤 직업을 가지든 오랫동안 하기 위해서는 체력 관리가 중요하다고 생각한다. 한 자세로 오랫동안 있는다는거 자체가 몸에 무리를 주기 때문이다. 요즘 라운드숄더때문에 어깨가 조금씩 아프기 시작했다. 체력에 조금 더 신경을 써야겠다.

읽은 범위
Ep.35 : 비밀번호는 어떻게 저장될까?
Ep.36 : 객체 지향 프로그램이 뭐죠? ①
Ep.37 : 객체 지향 프로그램이 뭐죠? ②
Ep.38 : 함수형 프로그램이 뭐죠?
에피소드 35 : 비밀번호는 어떻게 저장할까 ?
number | ID | password |
1 | nico | nico1234 |
2 | lynn | lynn0920 |
3 | beadori | !doridori123 |
비밀번호를 그대로 데이터 베이스에 저장하면 운영자, 개발자 모두 볼 수 있고, 시스템을 구축한 사람도 볼 수 있기 때문에 위험하다
해시함수 를 사용하면 비밀번호 시스템을 안전하게 구현할 수 있다

해시 함수의 규칙
- 동일한 입력값에 대해 동이란 출력값을 가진다
- 입력값이 아주 살짝만 바뀌어도 출력값은 엄청나게 크게 바뀐다
- 반대로 입력한다고 해서 원래 값이 나오지 않는다 (한쪽 방향으로만 설계된 함수!)

솔트 : 비밀번호와 무작위 텍스트를 합쳐서 해시함수를 통과시키는 방법

에피소드 36 : 객체 지향 프로그래밍이 뭐죠 ? <1> : 클래스
프로그래밍 패러다임: 프로그래머가 프로그래밍을 할 때의 관점, 방식 이런 것, 프로그래밍을 하는 사고의 틀
(종류: 절차지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍 등)
프로그래밍 언어: 이런 프로그래밍 패러다임을 하나 또는 하나 이상을 지원하는 언어
(예: 자바-객체 지향 프로그래밍, 함수형 프로그래밍)
// 게임속 플레이어를 만들어보자!
const player = {
name:'빌게이츠',
health:85,
skill:'프로그래머'
}
// 플레이어가 3명이라면?
const player_1= {
name:'빌게이츠',
health:85,
skill:'프로그래머'
}
const player_2= {
name:'일론머스크',
health:90,
skill:'테슬라'
}
const player_3= {
name:'니꼬',
health:100,
skill:'선생님'
}
모두 name, health, skill 이라는 같은 속성을 가졌기 때문에, 플레이어의 틀을 만들어줄 수 있는 공장을 만들 수 있어
// 플레이어 공장, 클래스
class Player {
constructor(name, health, skill) {
this.name = name;
this.health = health;
this.skill = skill;
this.xp = 0;
}
}
// 플레이어 생성
const bill = new Player('빌게이츠', 85, '프로그래머')
const elon = new Player('일론머스크', 90, '테슬라')
const nico = new Player('니꼬', 100, '선생님')
에피소드 37 : 객체 지향 프로그래밍이 뭐죠? <2> : 상속
class Human {
constructor(name) {
this.name = name;
this.arms = 2;
this.legs = 2;
}
}
class Teenager {
constructor(name) {
this.name = name;
this.arms = 2;
this.legs = 2;
this.emotional = true;
}
curse() {
return '$%^@#%!#$#';
}
}
class Baby {
constructor(name) {
this.name = name;
this.arms = 2;
this.legs = 2;
this.cute = true;
}
cry() {
return 'waa waa!';
}
}
코드에서 중복되는 부분을 볼 수 있을거야
이렇게 중복되는 걸 해결할 수 있는 것이 상속 이야
class Human {
constructor(name) {
this.name = name;
this.arms = 2;
this.legs = 2;
}
}
// 상속
class Teenager extends Human {
constructor(name) {
this.emotional = true;
}
curse() {
return '$%^@#%!#$#';
}
}
class Baby extends Human {
constructor(name) {
this.cute = true;
}
cry() {
return 'waa waa!';
}
}
에피소드 38 : 함수형 프로그래밍이 뭐죠 ?
함수형 프로그랭은 프로그램 패러다임중 하나야
// 명령형 프로그래밍 - 공백을 ♥ 로 바꾸기
// 명령을 내리는 것 처럼 어떻게 하는지 하나씩 알려줘
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("","♥");
}
함수형 프로그래밍 | ||
구분 | 선언형 프로그래밍 | 명령형 프로그래밍 |
의미 | 원하는 결괏값을 선언 (결과중심) | 원하는 결곽값에 어떻게 도달하는 지 선언 |
예시 | "BLT 샌드위치를 만들어줘!" | BLT 샌드위치를 만드는 방법 (1,2,3 단계별로 설명) |
대표 | CSS | |
장점 | 실수가 적다, 동료가 코드를 이해하기 쉽다 | 할 일을 세세하게 지시할 수 있다 |
단점 | 실수하기 쉽다, 동료가 코드를 이해하기 어렵다 |
개발자의 번아웃, 이렇게 대체해 봐!
- 휴식 시간을 가져라
- 코딩이 항상 흥미진진하고 즐겁지 않을 수도 있어
- 개발자도 컴퓨터 앞에서 잠시 멀어져서 제대로 휴식을 취할 수 있어야 해일하는 시간을 제한하라
- 일하는 시간을 제한라
- 몸을 움직이고 건강한 음식으로 활력을 찾아라
번아웃을 예방하는 가장 좋은 방법은 스스로 건강을 챙기는 거라고 생각해
반응형
'개발 이야기 > 개발 도서' 카테고리의 다른 글
제로초 자바스크립트 입문 #01 (0) | 2024.03.05 |
---|---|
IT 5분 잡학사전 #9 (2) | 2023.02.23 |
IT 5분 잡학사전 #7 (0) | 2023.02.21 |
IT 5분 잡학사전 #6 (0) | 2023.02.20 |
IT 5분 잡학사전 #5 (0) | 2023.02.17 |