Can I get JS variable Memory Address ?? 결론은 안된다.!!!! 주로 링크에서 가져온 내용들입니다. 링크를 보시면 더 자세한 정보를 알 수 있습니다. JS는 Garbage Collector을 가지기 때문에 일반적으로 기계어로 직접 번역할 수 없습니다. JS는 웹을 위한 안전한 언어이며 하드웨어뿐만 아니라 OS 및 Browser도 추상화하여 설계상 Low Level 내용보다 High Level 개념만 있습니다. 마치며 JS를 통해 LinkedList를 제작하는데 보다 확실하게 정확성을 파악하기 위해 Memory Address를 사용하려는 데 문제가 생겼었습니다. 그래서 해답을 얻게 되었고 key: value 객체나 변수를 하나 더 지정하는 가짜 주소를 사용해서 확인을 하려 합..
단방향 해시 함수(Password) Digest of one-way hash function 수학적 연산을 통해 원본 Msg를 Digest(암호화 된 Msg)로 변환하는데 원본 Msg -(변환)-> 암호화 Msg : 구하기 쉽다. 암호화 Msg -(변환)-> 원본 Msg : 구하기 어렵다. 이와 같은 것을 의미한다. 이와 같은 것에도 2가지 문제점이 발생합니다. 1. 인식 가능성(Recognizability) 원본 Msg가 같으면 Digest도 같다 즉, 다른 사용자랑 Password가 같으면 Digest도 같아서 한번에 털리는 Rainbow Attack(미리 해시해둔 Password를 가지고 훔치려는 Password와 비교하는 것)에 당할 수 있다. 2. 속도(Speed) 해시 함수 처리 속도가 매우 ..
URL의 여행 1. URL 입력 / 해석 2. DNS(Domain Name System) 조회 Domain과 IP 주소를 변환 3. 해당 IP가 존재하는 Server로 이동 4. ARP(Address Resolution Protocol)를 이용하여 MAC 주소 변환 IP 주소(논리 주소, 바뀔수 있는 주소, ex) 도로명/지명 주소) => MAC 주소(물리 주소, 실제 위치, ex) GPS좌표) 5. TCP 통신을 통해 Socket을 열어야 한다. 요청수락시 Data를 Server로 전달 6. Server는 응답을 반환한다. 7. Browser 렌더링 Dev 과제 1. https 탄생 이유 및 왜 필요한가 ? https는 Hypertext Transfer Protocol Secure로 사용자의 웹 Bro..
Hoisting 함수 내에 있는 선언들을 모두 끌어올려 사용 var 변수 선언, 함수 선언문만 해당 설명 기본적인 Hoisting 선언 부분만 맨 위로 올라가서 수행됩니다. //hoisting //var b; undefined로 3은 hoisting 되지 않는다. //function a(){ console.log('a');}; a(); function a() { console.log('a'); }; console.log(b); var b = 3; 함수 Hoisting 주의 1. 함수 표현식은 Hoisting 안된다. 2. 함수와 변수 선언문 중에 함수 선언문이 먼저다. //1. fun(); var fun = function() {}; //2. fun(); var fun = function(){}; //s..
해당 문제는 땅따먹기 DFS문제인데 땅을 먹을 때 마다 변화된 땅을 보려 했지만 원하는 값이 나오지 않았습니다. 즉, console.log를 활용해서 chrome에서 debugger대신 사용하고 있던 중 문제가 발생하였습니다. console.log의 값이 즉시 발생되는 값이 아니라 setTimeout 을 한것과 같이 값이 나오는 것 이었습니다. 다음과 같았습니다. function solution(board){ let dx=[-1, -1, 0, 1]; let dy=[0, 1, 1, 1]; let n = board.length; const DFS = (sx, sy) => { board[sx][sy] = 0; for (let i = 0; i < 4; i++) { let nx = sx + dx[i]; let n..
점점 복잡한 개발을 진행하면서 debugger의 사용이 필수적입니다. 그래서 VSCode를 이용한 쉬운 Debugger방식이 있어 쉽게 설명을 하려고 합니다. 필요 Program Chrome VSCode Open Browser Preview (VSCode Extension) Debugger for Chrome (VSCode Extension) 1. Setting 준비 VSCode에서 확장자를 설치한 후에 Debug를 실행하기 위해 launch.json을 설정을 해야 합니다. 2. Launch.json 설정 우선 launch 와 attach의 차이점을 보고 잘 결정해주기 바랍니다. launch attach 실행 전에 Debugger 모드에서 App, Process에서 앱을 시작하는 방법 이미 실행중인 Ap..
table의 tbody부분에 다음 코드와 같은 것을 넣었을 때 다음과 같은 오류가 발생하였습니다. 이를 보니 ${idx} 부분이 #text로 들어가는 문제였습니다. 조금 찾아보니 CSS 로 인해 하나씩 밀리는 것이였습니다. 그래서 CSS를 고치므로 해결하는 방법을 생각해봤으나html 내부에서 바꾸는 것이 더 쉽게 바꿀 수 있을 것이라고 판단이 되어서 html을 고치게 되었습니다. 그래서 다음과 같이 해결을 하였습니다. 확실한 방법일지는 모르지만 더 좋은 방법을 아시면 댓글로 알려주세요 ㅎㅎ
네이버 FE-news를 보던 중 자바스크립트는 왜 프로토타입을 선택했을까? 을 읽으려고 하는데 javascript를 공부하면서 Prototype에 관한 것을 잘 알지 못하다는 것을 느껴 더 찾아보게 되었습니다. Prototype Prototype = Prototype Link + Prototype Object 이며 Class와 같은 역할을 합니다. function Person() {}와 같이 함수가 생성이 되면 해당 함수에 Constructor(생성자) 자격 부여 Prototype Object 생성 합니다. 그래서 Person Prototype Object가 생성되는 것을 알 수 있습니다. Person.prototype.eyes, Person.prototype.nose과 같이 Person Prototyp..