Skip to main content

Command Palette

Search for a command to run...

[노개북] It 5분 잡학사전#9 - ep. 35~38

Updated
3 min read

📌 오늘 TIL 3줄 요약

  • 비밀번호는 해시 함수, 솔트를 통해 되돌릴 수 없는 랜덤 문자열로 저장

  • 함수형 프로그래밍은 결과 중심의 선언으로 실수를 줄이고 가독성을 높임

  • 함수형 프로그래밍은 명령형 프로그래밍 위에 쓴다고 할 수 있음

📆 TIL (Today I Learned) 날짜

2023-12-19

📚 오늘 읽은 범위

에피소드 35~38

📝 책에서 기억하고 싶은 내용

에피소드 35 비밀번호는 어떻게 저장될까?

  • 비밀번호를 데이터베이스에 그대로 저장하면 운영자, 개발자가 접근하여 볼 수 있어서 안됨

  • 해시 함수를 사용해서 입력 받은 값을 무작위 값으로 변화시켜서 저장해야 함

    • 해시 함수는 동일한 입력값에 대해 동일한 출력값을 가짐

    • 입력값이 살짝만 바뀌어도 출력값은 완전히 바뀜

    • 출력값을 입력한다고 해도 입력값으로 복원할 수가 없음

  • 해시 함수의 취약점 - 레인보우 테이블

    • 입력, 출력 쌍이 저장되어 있는 테이블

    • 레인보우 테이블이 있으면 비밀번호를 복원해서 볼 수 있음

  • 솔트

    • 아주 작은 무작위 텍스트를 비밀번호에 추가하여 해시 테이블에 통과시킴

    • 레인보우 테이블이 있어도 원래 비밀번호를 찾을 수 없게됨

에피소드 36~37 객체 지향 프로그래밍이 뭐죠?

  • 프로그래밍 패러다임은 프로그래밍할 때의 관점, 방식을 말함

    • 객체 지향 프로그래밍

    • 함수형 프로그래밍

    • 절차 지향 프로그래밍

  • 하나의 언어가 여러가지 프로그래밍 패러다임을 지원하기도 함

    • Java는 객체 지향 프로그래밍과 함수형 프로그래밍을 지원함
  • 클래스

    • 공통된 속성을 가지고 있지만 데이터는 다른 객체들을 생산하는 공장 같은 역할

    • [Pasted image 20231220015746.png]

  • 상속을 통해서 클래스의 속성, 함수 등을 자식 클래스에게 물려줄 수 있음

에피소드 38 함수형 프로그래밍이 뭐죠?

  • 객체 지향 프로그래밍과 마찬가지로 프로그래밍 패러다임 중 하나

  • 함수형 프로그래밍은 '버그가 발생하기 어려운 구조'여서 개발자에게 매우 유용함

샌드위치 만들기 예시로 보는 선언형, 명령형 프로그래밍

  • 선언형 프로그래밍에서는 'BLT 샌드위치를 만들어줘!'하고 원하는 결과값을 선언

  • 명령형 프로그래밍에서는 결과값에 어떻게 도달하는지 선언

    1. 토스트 빵 2개를 꺼내서 구워라

    2. 양상추 2~3장을 씻고, 토마토를 얇게 썰어서 2조각 준비하라 (...)

    3. (1)의 토스트 빵 1개 위에 (2)의 재료를 쌓은 다음, 나머지 토스트 빵 1개로 덮어라.

  • 대표적인 선언형 프로그래밍으로는 CSS가 있다.

    • 배경색을 바꿀 때 바꿀 배경색을 선언하지 바꾸는 방법을 선언하지 않는다.

자바스크립트로 보는 선연형, 명령형 프로그래밍

  • 명령형 프로그래밍에서는 비교하는 방법, 교체하는 방법까지 자세히 선언

    • 세세하게 컨트롤할 수 있지만 실수가 발생하기 쉬움

    • 작성한 코드를 동료가 이해하기 어려울 수 있음

  • 선언형 프로그래밍에서는 replaceAll 함수 호출

    • replaceAll은 어딘가에 명령형 프로그래밍으로 작성되어 있음

    • 선언형 프로그래밍은 명령형 프로그래밍 위에 쓴다고 말할 수 있음

    • 결과 중심으로 코드를 작성하니 실수도 적고, 동료가 이해하기도 쉬움

      [Pasted image 20231220020842.png]

보너스 - 개발자 번아웃 대처법

  1. 휴식 시간 갖기 - 컴퓨터에서 잠깐 멀어져서 휴식을 취해볼 필요가 있음

  2. 일하는 시간 제한하기 - 컴퓨터만 있으면 일할 수 있으니까 일과 삶의 경계가 모호

  3. 몸을 움직이고 건강한 음식으로 활력 찾기

😀 오늘 읽은 소감 및 떠오르는 생각

  • 함수형 프로그래밍이 왜 유용한지 정말 간단하게 잘 설명한 것 같아서 굉장히 재밌게 읽었다. 짧은 글이었지만 여러가지 유익한 내용들이 많이 담긴 것 같아서 가볍지만 재밌게 읽을 수 있는 것 같다.

  • 개발자 번아웃 대처법에서 일하는 시간을 제한하는 방법에 대해서 너무 공감이 갔다. 노트북 분리불안이 살짝 있는 것 같은데 일하는 시간을 제한함으로써 이 문제도 어느 정도 해결이 될 것 같다. 또 실제로 일하는 시간이 제한되어 있어야지 더 집중해서 빠르게 끝낼 수 있는 것 같다.

More from this blog

오픈소스 기여모임 10기 후기 - 첫 Pr을 올리기까지

개발자라면 누구나 한 번쯤 오픈소스 기여에 대한 환상을 가져본 적 있을 거다. 하지만 막상 시작하려면 어디서부터 해야 할지 막막하고, 괜히 대단한 걸 해야 할 것 같은 부담감에 선뜻 시작하기는 어려운 것 같다. 나 또한 해보고 싶다는 마음만 가지고 계속 미뤄왔다. 그러다 2025년 말 쯤에 오픈채팅방과 글또 슬랙 채널에서 "오픈소스 기여모임" 10기 모집글을 봤다. 2년 넘게 500명 이상의 참가자와 함께 1000개 이상의 PR을 만들어온 커뮤...

Feb 5, 20265 min read

😢 글또 10기 활동 회고 — “글또야, 가지 마…”

들어가며 드디어 글또 10기 활동 회고를 정리해본다.6개월간의 여정을 뒤돌아보니 정말 많은 일들이 있었다. 글또라는 커뮤니티를 8기가 한창 진행되고 있을 때 알았는데 이름부터 인상이 강렬했다. "글쓰는 또라이가 세상을 바꾼다." 유쾌하고 독특한 문구에 피식 웃으며, '여긴 도대체 어떤 사람들이 모이는 곳이지?' 하고 넘겼었다. 재밌는 건 결국, 나도 그 "또라이들" 중 한 명이 되었다는 것이다. 😌 글또는 개발자들이 2주에 한 번 글을 ...

Jul 31, 20255 min read
😢 글또 10기 활동 회고 — “글또야, 가지 마…”

Serverless 환경에서 배포 전 환경변수 검증 자동화하기: TypeBox와 Bitbucket Pipeline 활용기

들어가며 배포 직후, 환경변수가 제대로 설정되지 않아 여러 API가 제대로 작동하지 않는 일이 있었습니다. 다행히 밤에 사용자가 없을 때 문제가 있었던 거라 영향도는 크지 않았지만 앞으로도 계속해서 발생할 수 있는 문제이기 때문에 해결해야 겠다고 생각했습니다. 개발 단계에서 문제가 발견되면 가장 좋겠지만, 현재 팀 상황에서는 백엔드 개발을 혼자 담당하고 있어 코드 리뷰나 검증 프로세스를 갖추기가 쉽지 않았습니다. 그래서 최소한 배포 전에 자동으...

Mar 16, 20254 min read

Cloudflare Tunnel로 포트포워딩 없이 홈서버 운영하기

이 글에서 다루는 내용 포트포워딩이 안 되는 이유 (CGNAT 환경 이해) CGNAT 우회 방법들의 장단점 비교 Cloudflare Tunnel 설정 방법 (MacOS 기준) 외부에서 내 PC로 접근할 수 있도록 허용하는 방법을 생각하면 포트포워딩이 가장 먼저 떠오릅니다. 공유기에서 특정 포트를 열어 외부에서 서버에 접속할 수 있도록 설정하는 방식으로, 마인크래프트 멀티를 해보셨던 분이라면 분명 해보셨을 방법입니다. 😊 작년에 저는 홈서...

Mar 2, 20256 min read
Cloudflare Tunnel로 포트포워딩 없이 홈서버 운영하기

구름고래 공방

48 posts