본문 바로가기

전체 글

(203)
HMAC : API 통신 클라이언트 무결성 검증 방법 HMAC : Hash-based Message Authentication Code 해쉬 기반 메시지 신원확인 코드 클라이언트 👉 API 서버에 보내는 "요청자의 신원과 메시지의 무결성을 검증하기 위한 해쉬 문자열" HMAC 만드는 방법 HMAC는 인증을 위한 Secret Key와 임의의 길이를 가진 Message를 해시함수를 이용해서 생성 해시함수로 MD5, SHA-256등 일반적인 함수 사용가능 각 알고리즘에 따라 다른 고정 길이의 MAC(=해시문자열 = 코드)이 생성된다 만약 중간에 해커가 코드를 가로채서 동일한 요청을 계속 보낸다면 (Reply attack), 이를 방지하기 위해서 MAC을 생성할 때 timestamp를 추가해서 사용하는 방법이 있다 API 서버는 해당 메시지가 생성된 시간을 알 수..
[JS] 비동기 프로그래밍 Callback -> Promise -> Async-await 비동기 프로그래밍에 대해서 정확하게 알지 못하고 늘 주변만 뱅뱅 돌면서 의미도 모르는 채로 기계처럼 사용해왔다. 회사에서 코드리뷰도 하고, 다른사람이 하던 작업을 넘겨 받아 리팩토링도 하면서 내가 그동안 얼마나 빈약한 개념을 가지고 있었는지 새삼 깨닫게 되었다. 당장 움직이지 않는 손가락이 너무 답답해서 이번에야 말로 비동기 프로그래밍을 이해해보자는 생각으로 정리를 해보았다. Sync & Async Sync JS 는 Sync → 동기적으로 작동 hoisting이 된 이후부터 코드가 작성된 순서대로 실행된다 async 비동기, 언제 코드가 끝날 지 모른다 끝날 때까지 기다리지 않음 ex) setTimeout - callback 함수 Callback Sync callback console.log('1') f..
[DB] 테이블간의 관계성 만들기 기존에 수영장 정보 테이블을 만들었었다 링크참조: https://tacit.tistory.com/147 [DB] CREATE 로 테이블 만들고 INSERT 해보기 create database playground; use playground; CREATE TABLE swimming_pool ( idx int NOT NULL AUTO_INCREMENT COMMENT '수영장 고유번호', title varchar(20) NOT NULL COMMENT '수영장 이름', type tinyint.. tacit.tistory.com 이제 수영장 강사, 강습, 직원 등 추가적인 정보들을 위한 테이블을 만들고, 서로 관계성을 연결시켜보자 먼저 강사정보 테이블 CREATE TABLE trainer ( `idx` int N..