궁금한게 많은 열아홉
article thumbnail
lodash debounce를 활용하여 성능 향상시키기
JavaScript 2023. 6. 3. 16:41

개요현재 진행중인 프로젝트 STAYMATE에서 아주 심각한 문제가 발견되었다.이전 글에서 카메라를 사용하기 위해 react-qr-reader라이브러리를 썼는데,호출이 과도하게 많아지는 문제점을 발견하게 되었다.  이러한 문제점을 발견하고 어떻게 해결을 할까 고민하기 시작했다.무한 호출을 막을 수 있는 방법우선 폭포처럼 내리는 무한 호출을 막을 수 있는 방법은, 유한 호출 될 수 있도록 만들면 된다.  연속으로 발생한 호출은 한 번만 인정해주거나 혹은 몇 초에 한 번씩 인식하도록 하거나. 이러한 방법을 해결할 수 있는 개념이 debounce와 throttle이다.Debounce와 throttle이란?Debounce연속적으로 발생한 이벤트를 하나로 처리하는 방식으로,주로 처음이나 마지막에 실행된 함수만 실행..

article thumbnail
[AI] 텐서플로우로 선형회귀 활용하여 시험 성적 예측하기
AI 2023. 5. 8. 00:23

오늘은 텐서플로우를 활용해 선형회귀를 그려 시험 성적을 예측해볼 것이다. 1. 필요한 라이브러리 import하기import numpy as npimport matplotlib.pyplot as plt- 계산을 하는 라이브러리인 numpy와 데이터를 시각화해줄 matplotlib.pyplot 라이브러리를 import해준다.from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense- 모델 계층을 선형으로 쌓아줄 Sequential과 입력과 출력을 연결해주는 Dense를 import 합니다. 2. 데이터 파일 넣기x = np.array([[2,0],[4, 4],[ 6,2], [8,3] ])y = np.array(..

article thumbnail
[정보보안] 열번 찍어 안 넘어가는 나무 없다더니, Brute force 공격
정보보안 2023. 5. 8. 00:23

우리가 웹사이트에 가입할 때 보안을 위해 비밀번호를 생성한다. 비밀번호 입력란을 보면 조건이 나와있는 경우가 대부분이다. 가령 이렇게 말이다.비밀번호는 사용자의 정보를 보호하는 강력한 역할을 하기 때문에 단순하게 설정하지 않는 것이 매우 중요하다. 또 개발자는 사용자의 비밀번호를 암호화해서 저장하는 것도 굉장히 중요하다. 단순하게 설정했다간 당신의 정보가 다 털릴 수 있음을 기억해야한다. 당신의 비밀번호를 알아낼 수 있는 방법세 가지의 방법이있다. 우선 첫 번째 웹 프록시 툴을 사용하여 웹을 해킹할 수 있다.Web Proxy웹 프록시는 클라이언트에 설치하여 클라이언트의 통제를 받으므로 클라이언트가 웹 서버와 우베 브라우저 간에 전달되는 모든 HTTP 패킷을 웹 프록시로 확인 및 수정할 수 있다. Prox..

article thumbnail
[정보보안] 웹 해킹이라 읽고 내 흑역사를 찾는 방법이라 쓴다
정보보안 2023. 5. 8. 00:23

🚨 본 글은 필자의 정보보안 수업을 들을 후 정리한 내용입니다 :) 지난시간에 보았듯이 우리에게 얼마나 보안이 중요한지에 대해 이야기 해보았다. 그래서 오늘은 실제로 우리의 정보가 얼마나 인터넷에 널려(?)있는지 확인해보려고 한다. 그 전에 조금더 이해를 높이기 위한 몇 가지를 알아보자. 인터넷의 시작 1969년 미국 ARPA(Advanced Research Projects Agency)가 전 세계 주요 거점을 연결 하는 네트워크를 처음 만들고 이 네트워크를 알파넷이라 불렀다. 흔히 알파넷을 인터넷의 시작이라고 한다. 인터넷을 만든 목적은 정보를 편하게 고유하기 위함인데, 처음에는 대학 내 각 연구실 사이에 데이터를 전송하기 위해 시스템 간의 통신을 위한 프로토콜(통신에 대한 약속)을 만들어 사용하였다...

article thumbnail
[회고] 원티드 프리 온보딩 1주차 회고하기
성장기록(회고) 2023. 5. 1. 10:22

아마 내 인생 가장 바빴던 일주일을 보내지 않았나 싶다. 처음만난 팀원들과 적응도 하고, 수업도 듣고나니 어느새 1주차가 끝났다. 지난 1주일 동안 내가 어떻게 했고, 앞으로는 어떻게 해야할지 그 성장 과정을 기록해보려고 한다. 사실 여러 제약적인 부분때문에 합격을 할거라고 예상 못했는데, 그래서 더 기뻤고 열심히 해야겠다는 마음 가짐을 가지게 되었다. 1. 원티드 프리 온보딩 합격 원티드 프리 온보딩은 참여를 희망한다고 해서 다 참여가 가능한 것은 아니었다. 사전과제와 이력서를 제출하고, 통과가 되면 참여할 수 있다. 사전 과제는 간단한 로그인/회원가입과 TODO를 구현하는 것이였다. 조건(ex. React사용 허가, 기능과 관련된 직접적인 라이브러리 사용 불가), 요구사항 10가지가 약간은 까다로웠지..

article thumbnail
[React] DOM과 재조정(Reconciliation) 이해하기(관계성)
React&Next.js 2023. 4. 19. 21:59

재조정이란? 리액트에서 재조정은 VDOM에서 발생하는 변경 사항을 반영하는 과정입니다. VDOM은 메모리 상에 존재하는 가상의 DOM으로, 리액트에서 컴포넌트를 업데이트할 때 변경된 부분만 실제 DOM에 반영하려고 사용됩니다. 이 과정은 리액트의 성능과 효율성을 결정하는 중요한 요소 중 하나입니다. *재조정 알고리즘 리액트는 재조정 알고리즘을 사용하여 최소한의 업데이트만 수행합니다. 이는 성능을 향상시키는데 중요한 역할을 합니다. 재조정 알고리즘은 다양한 최적화 기술을 사용하여 성능을 향상시킵니다. 예를 들어, 컴포넌트의 props나 state가 변경되었을 때, 해당 컴포넌트와 그 자식 컴포넌트만 다시 렌더링하고 나머지는 그대로 유지합니다. Diffing 알고리즘 리액트의 재조정 알고리즘에서 핵심적인 역..

article thumbnail
[Next.js + Node.js] 로컬에서 API 연결하기 - Proxy 설정!
React&Next.js 2023. 4. 13. 10:52

🚨 본 글에서 프론트엔드는 Nex.js + Typescript, 백엔드는 Node.js + Express를 나타냅니다. 해결 방법은 맨 아래 '내가 해결한 과정' 부분 부터 봐주세요. :) 사용자 API를 구축한 후 테스트를 하기 위해 임시로 코드를 작성하고 로그인이 되는 지 확인하기 위해 API 연결을 해줬다. 하지만 에러가 발생하는데 ... Uncaught (in promise) SyntaxError: Unexpected token '

article thumbnail
비동기 처리의 꽃, Axios 🌸
React&Next.js 2023. 4. 12. 11:37

계절에 맞춰 적는 글 🚨 본 글은 Promise를 알고있다는 전제하에 작성한 글입니다. :) 1. 등장 배경 우리는 동적 웹 사이트를 만들기 위해 서버로 부터 데이터를 받아온다. Javascript에서 HTTP 통신을 위해 *XMLHttpRequest 객체를 사용하는 등의 방식이 일반적이었다. Json이나 XML형태로 필요한 데이터만 받아 갱신하기 때문에 그만큼의 자원과 시간을 아낄 수 있다는 장점이 있었지만, 반대로 사용자에게 아무런 진행정보를 주지 않기 때문에 사용자가 요청이 완료가 안되었는데 페이지를 떠날 수도 있다는 점과 복잡한 구조를 제공한다는 단점이 있다. * XMLHttpRequest에 대해 더 알고 싶다면 아래 링크를 참고하길 바란다. [JavaScript] Ajax 정리 - Azderic..

article thumbnail
[JS] 비동기 깊이 알아보기 :블로킹 vs 논 블로킹, async/await과 Promise
JavaScript 2023. 4. 6. 21:57

개요자바스크립트는 싱글스레드 언어로, 한 번에 하나의 작업만 처리할 수 있습니다. 이로 인해 블로킹(blocking)이 발생하면 다른 작업이 차단되어 웹 애플리케이션의 성능과 사용성이 저하될 수 있습니다. 이러한 문제를 해결하기 위해 자바스크립트는 비동기 처리를 통한 논 블로킹(non-blocking) 방식을 지원하고 있습니다. 이를 위해 async/await과 Promise가 도입되었습니다.블로킹 vs 논블로킹블로킹은 작업이 완료될 때까지 다음 작업이 진행되지 않는 상태를 말합니다. 예를 들어, 네트워크 요청이 끝날 때까지 다음 코드가 실행되지 않는 경우 블로킹이 발생합니다. 이로 인해 웹 애플리케이션의 응답성이 떨어질 수 있습니다. 반면, 논 블로킹은 작업이 진행 중일 때도 다음 작업이 계속..

article thumbnail
[JS] 아직도 Callback 지옥에있다고요? 벗어나요, 얼른..!
JavaScript 2023. 3. 29. 23:47

🚨 본 글은 callback의 개념을 알고있다는 전재하에 작성한 글입니다. 1. Callback 지옥 거기서 나오시라니까요, JavaScript에서 비동기 처리를 위해 콜백(callback) 함수를 사용한다. 콜백 함수는 비동기 함수가 처리를 마친 후 실행되는 함수로, 해당 비동기 함수가 처리를 마친 후에 실행될 코드를 인자로 전달받는다. 하지만, 콜백 함수를 중첩해서 사용하다 보면 코드의 가독성이 떨어지고 유지보수가 어려워지는 문제가 발생할 수 있다. 이러한 상황을 "Callback Hell"이라고 한다. 예를 들어, 웹사이트에서 사용자가 주문한 상품을 서버로부터 받아와 화면에 출력하는 기능을 구현하고자 한다면, 이를 콜백 함수를 사용하여 구현하면 다음과 같이 중첩된 구조를 가지게 된다. functio..