본문 바로가기
728x90
반응형

전체 글104

Chrome 개발자 도구 언어 변경하기 Chrome 개발자 도구 언어 변경하는 방법은 간단하다. 먼저, 개발자 도구를 연다. 단축키 ctrl + shift + i 를 누르거나 오른마우스 > 검사를 누르면 개발자 도구를 열 수 있다. 브라우저 창에 분할되어 개발자도구가 열리는데 settings을 누르고 Preferences > Language 에서 한국어로 설정하면 된다. 언어 변경 후 닫기를 누른 후에 적용이 되도록 Reload DevTools를 눌러준다. 2024. 1. 8.
[3-5] 파일 및 디렉터리 생성, 수정, 삭제 - File System(fs)모듈 Node.js의 fs (File System) 모듈은 파일 시스템과 상호 작용하기 위한 다양한 기능을 제공하는 핵심 모듈이다. 주요 기능은 파일 및 디렉토리 생성, 읽기, 쓰기, 삭제 등이 포함되어 있다. https://nodejs.org/docs/latest/api/fs.html 1. 파일 읽기 및 쓰기 (Reading and Writing Files) fs.readFile(path, options, callback) : 비동기적으로 파일을 읽는다. fs.readFileSync(path, options) : 동기적으로 파일을 읽는다. fs.writeFile(file, data, options, callback) : 비동기적으로 파일을 쓴다. fs.writeFileSync(file, data, optio.. 2024. 1. 7.
[3-4] 파일 및 디렉터리 경로 관리를 위한 path모듈 Node.js의 path 모듈은 파일 및 디렉터리 경로와 관련된 유틸리티 함수를 제공하는 모듈이다. 주로 파일 경로를 조작하거나 생성할 때 사용된다. https://nodejs.org/docs/latest/api/path.html node.js 홈페이지에서 docs에 들어가보면 관련 함수들과 사용법들을 알 수 있다. path.join([...paths]) 주어진 모든 경로 세그먼트를 결합하여 유효한 파일 경로로 만든다. const path = require('path'); const fullPath = path.join(__dirname, 'files', 'example.txt'); console.log(fullPath); path.resolve([...paths]) 현재 작업 디렉토리를 기준으로 주어진.. 2024. 1. 7.
가족관계증명서 온라인 발급시 '비정상적인 접근' 해결 가족관계증명서 온라인 발급은 '전자가족관계등록시스템'에서 발급받는다. https://efamily.scourt.go.kr/ 사이트에 들어갔을때 이와같이 '비정상적인 접근...'이라는 경고가 뜨고 더이상 진행이 되지 않아 알아보았다. 해결방법은 아주 간단하다. 크롬브라우저에서 게스트로 열면 된다. 크롬브라우저에서 오른쪽 상단에 계정 아이콘을 누르고 '게스트'항목을 선택한다. 아래와 같이 게스트로 브라우저 창이 열리고 다시 접속해보면 더이상 경고창은 뜨지 않고 발급을 받을 수 있다. 2024. 1. 4.
[3-3] 요청과 응답(req, res) methods 요청(Request)과 응답(Response)은 웹 서버에서 클라이언트와 통신하는 데 사용되는 핵심 개념이다. 클라이언트가 서버에 어떤 작업을 요청하면 서버는 이에 대한 응답을 반환한다. 요청과 응답은 HTTP 프로토콜을 통해 이뤄지며, 이를 통해 웹 애플리케이션은 동작한다. Request(req) - 요청 웹 서버를 만들 때 클라이언트에게 요청을 보내는데 사용한다. | Request 구성 HTTP 메소드 (Method) 클라이언트는 리소스에 대한 특정 작업을 나타내는 HTTP 메소드를 사용하여 서버에 요청을 보낸다. GET : 리소스를 가져오기 위한 메소드 POST : 새로운 리소스를 생성하기 위한 메소드 PUT : 기존 리소스를 업데이트하기 위한 메소드 DELETE : 리소.. 2023. 12. 22.
변수와 함수의 유효범위 - 스코프(Scope) 스코프는 변수와 함수의 유효 범위를 나타낸다. 변수나 함수가 어디에서 정의되었는지에 따라 그 유효 범위가 결정된다. 스코프는 크게 전역 스코프(Global Scope)와 지역 스코프(Local Scope)로 나뉜다. 1. 전역 스코프 (Global Scope) 전역 스코프는 코드의 가장 바깥 영역으로, 어디서든 접근 할 수 있는 범위를 가지며 전역 변수(Global Variable)라고 한다. 2. 지역 스코프 (Local Scope) 지역 스코프는 특정한 영역 내에서만 유효한 스코프를 말한다. 함수 스코프와 블록 스코프가 있다. 1) 함수 스코프(Function Scope) 함수 스코프는 함수 내에서 정의된 변수가 해당 함수 내에서만 유효한 범위를 가진다. 함수가 호출될 때마다 새로운 스코프가 생성된다.. 2023. 12. 16.
JavaScript 변수 호이스팅과 함수 호이스팅 1. 변수 호이스팅(Variable Hoisting) 변수 호이스팅은 자바스크립트에서 변수를 선언할 때, 해당 변수가 코드 어디에 있든 선언 부분이 최상단으로 끌어올려지는 동작을 말한다. 변수 선언은 코드의 최상단으로 끌어올려지기 때문에 변수를 선언하기 전에 해당 변수를 사용해도 오류가 발생하지 않는다. 그러나 할당(초기화) 부분은 호이스팅되지 않으므로 변수를 선언하고 초기화하기 전에 해당 변수를 사용하면 undefined가 반환된다. console.log(x); // undefined var x = 5; console.log(x); // 5 위 코드는 실제로 아래와 같이 동작한다. var x; // 변수 선언이 호이스팅되어 최상단으로 이동 console.log(x); // undefined x = 5;.. 2023. 12. 15.
JavaScript 변수 특징과 유형 변수는 프로그램에서 데이터를 저장하고 참조하기 위한 기본적인 요소이다. 변수 선언 변수를 선언하는 과정은 'var', 'let', 'const'키워드를 사용하는데 ES6이후 주로 let과 const를 사용한다. 변수 할당 변수에 값을 할당하는 과정은 '=' 연산자를 사용한다. let name = 'John'; 변수의 스코프 변수의 스코프는 변수가 유효한 범위를 나타낸다. - 전역스코프(Global Scope) : 전역에 선언된 변수로 어디서든 접근 가능. - 지역스코프(Local Scope) : 함수 내에서 선언된 변수로, 함수 내에서만 접근 가능. - 블록 스코프(Block Scope) : { } 영역에서 선언된 변수로 블록 내에서만 접근 가능. (let과 const에서만) 변수 호이스팅 변수 호이스팅.. 2023. 12. 15.
[7-2] 비밀번호 해싱 및 검증 라이브러리 - bcrypt bcrypt는 비밀번호 해시 함수로, 주로 사용자 비밀번호를 안전하게 저장하기 위해 사용된다. bcrypt.js GitHub저장소 bcrypt.js on npm / 비밀번호 해시 함수 bcrypt는 일반적인 해시 함수와는 다르게 솔트(Salt)와 함께 동작한다. 솔트는 각 비밀번호에 랜덤한 값을 추가하여 해시 결과를 예측하기 어렵게 만든다. / 솔트(Salt) 각 비밀번호에는 서로 다른 솔트가 적용된다. 이는 같은 비밀번호라도 각각의 해시가 다르게 생성되어, 레인보우 테이블과 같은 사전 공격을 방지한다. / 안정성 bcrypt는 해시 알고리즘에 대한 여러 라운드를 지원하여, 더 많은 라운드를 사용할수록 해시 함수를 더 많이 반복하게 된다. 이로 인해 비밀번호를 해시하는 데 소요되는 시간이 증가하며, 무차.. 2023. 12. 13.
Session secret key 생성하기 - crypto 모듈 crypto 모듈은 Node.js에서 제공하는 암호화와 관련된 다양한 기능을 수행하는 모듈이다. 이 모듈을 사용해 해시생성, 암호화, 복호화, 서명 생성 등 다양한 암호와 작업을 할 수 있다. https://nodejs.org/api/crypto.html crypto 모듈의 기능이 많지만 그 중에 사용자 인증을 위해 사용되는 Session의 secret key를 생성하는 무작위 문자열 생성 하는 방법을 알아본다. Session secret key 생성하는 두 가지 방법 1) 16진수 문자열로 생성 const crypto = require('crypto'); // 무작위 문자열 생성 함수 const generateRandomString = (length) => { return crypto.randomByt.. 2023. 12. 8.
728x90
반응형