계절에 맞춰 적는 글 🚨 본 글은 Promise를 알고있다는 전제하에 작성한 글입니다. :) 1. 등장 배경 우리는 동적 웹 사이트를 만들기 위해 서버로 부터 데이터를 받아온다. Javascript에서 HTTP 통신을 위해 *XMLHttpRequest 객체를 사용하는 등의 방식이 일반적이었다. Json이나 XML형태로 필요한 데이터만 받아 갱신하기 때문에 그만큼의 자원과 시간을 아낄 수 있다는 장점이 있었지만, 반대로 사용자에게 아무런 진행정보를 주지 않기 때문에 사용자가 요청이 완료가 안되었는데 페이지를 떠날 수도 있다는 점과 복잡한 구조를 제공한다는 단점이 있다. * XMLHttpRequest에 대해 더 알고 싶다면 아래 링크를 참고하길 바란다. [JavaScript] Ajax 정리 - Azderic..
개요자바스크립트는 싱글스레드 언어로, 한 번에 하나의 작업만 처리할 수 있습니다. 이로 인해 블로킹(blocking)이 발생하면 다른 작업이 차단되어 웹 애플리케이션의 성능과 사용성이 저하될 수 있습니다. 이러한 문제를 해결하기 위해 자바스크립트는 비동기 처리를 통한 논 블로킹(non-blocking) 방식을 지원하고 있습니다. 이를 위해 async/await과 Promise가 도입되었습니다.블로킹 vs 논블로킹블로킹은 작업이 완료될 때까지 다음 작업이 진행되지 않는 상태를 말합니다. 예를 들어, 네트워크 요청이 끝날 때까지 다음 코드가 실행되지 않는 경우 블로킹이 발생합니다. 이로 인해 웹 애플리케이션의 응답성이 떨어질 수 있습니다. 반면, 논 블로킹은 작업이 진행 중일 때도 다음 작업이 계속..
🚨 본 글은 callback의 개념을 알고있다는 전재하에 작성한 글입니다. 1. Callback 지옥 거기서 나오시라니까요, JavaScript에서 비동기 처리를 위해 콜백(callback) 함수를 사용한다. 콜백 함수는 비동기 함수가 처리를 마친 후 실행되는 함수로, 해당 비동기 함수가 처리를 마친 후에 실행될 코드를 인자로 전달받는다. 하지만, 콜백 함수를 중첩해서 사용하다 보면 코드의 가독성이 떨어지고 유지보수가 어려워지는 문제가 발생할 수 있다. 이러한 상황을 "Callback Hell"이라고 한다. 예를 들어, 웹사이트에서 사용자가 주문한 상품을 서버로부터 받아와 화면에 출력하는 기능을 구현하고자 한다면, 이를 콜백 함수를 사용하여 구현하면 다음과 같이 중첩된 구조를 가지게 된다. functio..
목표 인터페이스의 개념을 이해하고, 어떻게 활용하는 지 알아보기 인터페이스(Interface) 상호 간에 정의한 약속 혹은 규칙이다. 객체 모양의 타입을 정의할 때 유용한 문법이고, 프레임워크에서는 주로 API응답, Props, 변수, 함수를 정의할때 자주 사용한다. interface Person { name: string; age: number; } const vision: Person = { name: '비전', age: 3 }; 선택적 프로퍼티 인자를 넘길때 그 여부를 선택적으로 할 수 있도록 '?'를 활용해 명시해줍니다. interface Person { name: string; age: number; favoriteColor?: string } const vision: Person = { nam..
함수 자바스크립트 형태의 함수에 인자에 대한 타입과 반환하는 값의 타입을 붙여주면 된다. 인자(넘기는 값 == 파라미터) 리액트에서 이벤트를 지정할 때 아래와 같이 사용함. function updateTodo(event: ChangeEvent) { setTodo(event.target.value); } 반환하는 값(리턴 값) 반환되는 값에 대한 타입을 지정함. function updateTodo(event: ChangeEvent):void { setTodo(event.target.value); console.log(e.target.value); } 선택적 파라미터 파라미터를 옵셔널하게 지정할 수 있음 function updateTodo(event: ChangeEvent, todoId?: string):v..
🚨 본 글은 필자가 정보보안 수업을 들은 후 정리한 생각을 풀어낸 글입니다 :) 요즘 보안은 정말 다양한 곳에서 쓰이고 있다. 작게는 우리가 사용하는 휴대폰 부터 크게는 우리가 생활하는 집까지. 정보화 시대가 되면서 보안의 역할이 더 중요해졌다. 보안은 사회 안전과 질서를 유지하는 것을 목표로 하기 때문에 다양한 분야에서 일하며, 경찰, 소방관, 군인 등이 있다. 보안인이라 함은 사회 질서 유지에 기여하는 사람으로, 다양한 위협에 대응하고 사회의 안전과 질서를 보호하는 역할을 수행한다. 보안 철학 & 보안인보안인은 기본적으로 "보안 철학"을 가지고 있다. 보안 철학이란, 안전과 질서를 유지하는 데 집중하는 보안과 개인의 경험과 신념에 기반한 철학적 원리를 결합한 개념이다. 그 중 현대 시대에 가장 중..
🚨 본 글은 javascript 변수 선언 키워드 var, let, const를 정리한 글입니다. 프로그래밍에서 변수 선언은 중요한 개념 중 하나다. 변수를 잘못 사용할 경우 예기치 않은 버그 혹은 보안 위협이 발생할 수 있다. 그렇기 때문에 우리는 적절한 키워드를 잘 사용해서 변수를 써야한다. 그래서 오늘은 var, let, const이 뭔지, 각각의 차이점과 어떤 키워드를 사용해야하는지에 대해 이야기해 볼것이다. 1. 개념 var var은 ES6 이전에 사용되던 변수 선언 방식으로 JavaScript에서 가장 오래된 변수 선언 방법이다. var은 블록 스코프(block scope)를 지원하지 않고 함수 스코프(function scope)만을 지원한다. 이는 변수가 선언한 함수 내에서만 유효하며, 함수..
🚨 본 글은 딥러닝을 시작하기 전 선수 지식에 대한 내용을 정리한 글입니다 :) 이전 글 [AI] 딥러닝 진짜 하시게요? 그럼 이 글 먼저 보고 시작해요. (1) 🚨 본 글은 필자가 딥러닝을 시작하기전 배경 및 선수 지식에 대해 정리 한 글입니다 :) 이전 글 2023.03.14 - [분류 전체보기] - [AI] 사람의 시대가 끝나는 날이 올까? 전글에서도 언급했지만, chatGPT goodgirlgonebad.tistory.com 전 글에 이어서 딥러닝을 시작 하기 전 꼭 알아야할, 알아두면 좋은 선수 지식에 대해 정리하고자 한다. 오늘 이야기 하고자 하는 것은 "원리" 이다. AI의 원리는 무엇이라고 생각하는가? 데이터? 학습? 알고리즘? 맞는 말이 될 수 있다. 하지만 이 모든 걸 포함하는 원리는 ..
🚨 본 글은 필자의 친구들, 후배들에게 동기 / 비동기에 대해 쉽게 설명하기 위해 간략히 작성한 글입니다 :) 며칠 전 본의 아니게 친구의 대화를 듣게 되었는데 나로썬 약간의 충격이었다. Javascript의 async/await에 대해 얘기하던 중 동기와 비동기 관련 얘기가 나왔고, 한 친구는 이런 말을 내뱉게 된다. "근데, 동기와 비동기가 뭐야?" 그 친구의 강렬한 한 마디는 아직까지도 내 머릿속에 맴돌고 돌았다.(하지만 엄청 놀랍진 않았다... 니 덕분이야 연진아,) 처음엔 모를 수도 있지... 했는데 점점 모를 수가 있나...? 모르면 안될것 같은데...? 라는 생각이 무한 루프를 탔고, 결국 이 글을 적게 되었다. 설명을 위해 쉽게 예시도 들어놨으니 꼭 읽고 이해가 되었으면 좋겠다. 우리는 학..
🚨 본 글은 필자가 딥러닝을 시작하기전 배경 및 선수 지식에 대해 정리 한 글입니다 :) 이전 글 2023.03.14 - [분류 전체보기] - [AI] 사람의 시대가 끝나는 날이 올까? 전글에서도 언급했지만, chatGPT의 등장으로 사람들은 AI, 머신 러닝, 딥러닝 등 관심도가 높아졌다. 내가 이를 체감 할 수 있었던 건 인터넷과 컴퓨터에 대해 잘 모르던 우리 엄마도 뉴스에 chatGPT가 나온 걸 보시고 어떻게 사용하는지 물어보셨기 때문이었다. 딥러닝은 현재 다양한 분야에서 혁신적인 결과를 만들어 내고 있다. 특히 음성인식, 이미지 분류, 자연어 처리 등에서 최고의 성능을 보여주고 있다. 아마 곧 딥러닝이 인간의 지능에 가까운 수준으로 발전할 것으로 보인다. 그렇다면, 이를 이용해 돈을 벌고 싶어하..