분류 전체보기65 [c++] 힙 메모리(Heap Memory) 힙 메모리는 함수의 생명 주기와 독립적으로 메모리를 할당할 수 있도록 해주는 중요한 개념입니다. 힙 메모리(Heap Memory)힙 메모리는 프로그램이 실행되는 동안 동적으로 메모리를 할당할 수 있는 메모리 영역입니다. 함수의 생명 주기와 관계없이 메모리를 할당하거나 해제할 수 있습니다. 힙 메모리는 new와 delete 키워드를 사용합니다. 또한 힙 메모리는 낮은 주소에서 시작해서 높은 주소로 증가합니다. 힙 메모리 할당 - new 키워드를 사용하여 힙 메모리를 할당하며, new 키워드는 메모리 주소를 가리키는 포인터를 반환합니다.int *numPtr = new int; // 힙 메모리에 정수형 변수를 할당하고 그 주소를 numPtr에 저장 힙 메모리 해제- delete 키워드를 사용하여 힙 .. 인강 & 책 스터디 노트/Coursera 가속화된 컴퓨터 과학 기초 2024. 7. 31. [c++] 스택 메모리, 포인터 C++의 메모리 관리와 관련된 여러 중요한 개념에 대해 스택 메모리와 포인터를 중심으로 복습할 겸 포스팅 해봅니다. 변수의 네 가지 속성C++ 의 변수에는 네 가지 속성이 있습니다. 1. 이름(name): 변수의 이름2. 유형(type): 변수의 데이터 타입(ex. int, char, float)3. 값(value): 변수에 저장된 실제 데이터 값 4. 메모리 주소(memory address): 변수의 메모리 위치를 나타내는 주소 스택 메모리 (Stack Memory)스택 메모리는 함수 호출 시 할당되는 메모리 영역으로, 함수가 종료되면 해당 메모리가 반환됩니다. 스택 메모리는 LIFO(Last In, First Out) 방식으로 작동합니다. 이는 마지막에 할당된 메모리가 가장 먼저 해제된다는.. 인강 & 책 스터디 노트/Coursera 가속화된 컴퓨터 과학 기초 2024. 7. 30. [C++] iostream 라이브러리, 네임스페이스, using 키워드 Coursera로 본격적인 C++강의를 듣기 시작했습니다.컴퓨터공학 전공으로 대학원을 진학하기 위해 아래와 같은 강의를 수강중입니다. C++의 객체 지향 데이터 구조University of Illinois at Urbana-Champaign에서 제공합니다. 이 과정은 학습자에게 C++ 코드 작성 및 디버깅을 위한 개발 환경을 설정하는 방법과 데이터 구조를 C++ 클래스로 구현하는 방법을 포함하여 C++www.coursera.org 오늘은 C++의 개념에 대해 기록하며 복습해보려 합니다. iostream 라이브러리 C++ 표준 라이브러리 중 iostream 라이브러리는 데이터 출력을 위한 핵심 도구입니다. 이 라이브러리는 콘솔 및 파일에 데이터를 출력할 수 있도록 해줍니다. 가장 기본적으로 사용되.. 인강 & 책 스터디 노트/Coursera 가속화된 컴퓨터 과학 기초 2024. 7. 30. 코세라 Coursera Accelerated Computer Science Fundamentals 강의 시작 Coursera 강의 수강 배경 비전공자 출신으로 평소 CS 지식이 부족하다는 생각이 너무 많이 들어, 어떻게 하면 full time job과 함께 해당 공부를 꾸준히 병행할 수 있을지 계속 고민해왔습니다.그러던 도중 coursera의 인기 코스인 Accelerated Computer Science Fundamentals(가속화된 컴퓨터 과학 기초 특화 과정) 라는 강의를 알게되었습니다. 가속화된 컴퓨터 과학 기초University of Illinois at Urbana-Champaign에서 제공합니다. C++의 데이터 구조 및 알고리즘. C++로 효율적인 데이터 구조를 구현하면서 컴퓨터 과학의 기초를 배워보세요. 무료로 등록하십시오.www.coursera.org 해당 강의에서는 데이터 구조와 알고리즘,.. 인강 & 책 스터디 노트/Coursera 가속화된 컴퓨터 과학 기초 2024. 7. 29. Electron.js에서 HTTP 대신 TCP 서버 사용하기 Electron.js에서 HTTP 서버가 아닌 TCP 서버로 구동할 필요성이 생겼습니다. 이에 Electron.js에서 TCP 서버를 어떻게 연결하는지에 대한 순서 및 TCP 서버의 개념을 정리해보려고 합니다. 이 글은 TCP 서버의 기본 개념부터 시작하여 Electron 환경에서의 구현 방법까지 설명할 것입니다. Electron 환경 설명Electron은 웹 기술을 사용하여 데스크톱 애플리케이션을 개발할 수 있는 프레임워크입니다. 기존의 Electron 애플리케이션은 주로 HTTP 통신을 사용하여 외부 서버와 데이터를 주고받습니다. 이는 웹 애플리케이션과 유사한 방식으로, 웹 서버가 필요한 모든 리소스를 처리하고 클라이언트 측에서는 그 결과를 받아 사용자에게 보여주는 형식입니다. 하지만 Electron.. 개발 이야기/backend 2024. 5. 10. 리액트에서 커스텀 훅을 사용해야 하는 이유 오늘은 리액트 공식문서의 커스텀 훅과 관련된 내용을 자세히 다루어보려고 합니다. 커스텀 훅을 통해 필요한 로직을 재사용하고 코드를 보다 효율적으로 구현할 수 있습니다. 해당 내용에 대해 더 깊이있게 알아보고 싶으신 분들은 아래 리액트 공식문서의 custom hook 부분을 참고해보세요. Reusing Logic with Custom Hooks – React The library for web and native user interfaces react.dev 기본 훅 (useState, useEffect 등)과 커스텀 훅의 차이점 React의 기본 훅은 useState, useEffect, useContext와 같이 React 라이브러리에 내장되어 있는 함수들로, 상태 관리, 라이프 사이클 이벤트 처리, .. 개발 이야기/frontend 2024. 4. 19. React 에서 index.html에 스크립트 태그가 없는 이유 React 애플리케이션은 기존 자바스크립트와 다른 독특한 구조로 이루어져 있습니다. 이는 react-app 내의 index.html파일의 구조를 보면 알 수 있습니다. React 애플리케이션의 기본 구조 index.html의 역할과 구성 React 프로젝트에서 index.html은 애플리케이션의 진입점입니다. 이 파일은 매우 간단하게 유지되며, 주로 단일 div 태그를 사용합니다. 이 index.html은 리액트가 동적으로 모든 UI 컴포넌트를 렌더링하는 장소예요. 파일의 나머지 부분은 기본적으로 비어 있으며, 리액트 및 기타 자바스크립트 파일은 빌드 과정을 거쳐 이 곳에서 결합합니다. React 애플리케이션에서 HTML 파일의 사용 방식 전통적인 웹 애플리케이션과는 달리, 리액트의 html 파일은 주로.. 개발 이야기/frontend 2024. 4. 18. 투 포인터 이해하기, 리트코드 예제 투 포인터 알고리즘 개념 투 포인터 알고리즘은 주로 정렬된 배열이나 리스트를 다룰 때 사용되며, 문제를 해결하기 위해 두 개의 포인터를 사용하는 방법입니다. 이 알고리즘에서는 보통 한 포인터는 시작점에, 다른 하나는 끝점에 위치하고, 배열을 순회하면서 두 포인터가 가리키는 값을 비교하여 문제의 조건을 만족하는지 확인합니다. 조건에 따라 한 포인터만 이동시키거나 두 포인터를 동시에 이동시키기도 합니다. 이런 방식을 통해, 예를 들어 주어진 합을 만족하는 두 수를 찾거나, 최대 길이의 연속 부분 배열을 찾는 등의 문제를 효율적으로 해결할 수 있습니다. 투 포인터 알고리즘의 주요 장점은 불필요한 탐색을 줄여 시간 복잡도를 개선할 수 있다는 것이며, 대부분의 경우 O(n) 시간 안에 문제를 해결할 수 있습니다... 알고리즘 이야기/알고리즘 개념 2024. 3. 26. 자바스크립트 알고리즘 해시 개념, 리트코드 예제 안녕하세요. 오늘은 자바스크립트 알고리즘 중 해시(hash)에 대한 개념을 설명드리고 해당 개념을 응용해볼만한 쉬운 리트코드 예제를 보여드리도록 할게요. 해시의 개념 해시(Hash)는 키(Key)를 값(Value)에 매핑할 수 있는 데이터 구조입니다. 해시 테이블은 이러한 키와 값을 저장하는 데 사용되며, 복잡한 자료 구조보다 데이터를 더 빠르게 검색, 삽입, 삭제할 수 있게 해 줍니다. 키를 해시 함수를 통해 해시 코드로 변환하며, 이 해시 코드를 사용하여 값이 저장되는 위치, 즉 인덱스를 결정합니다. 자바스크립트 알고리즘에서 해시를 이용하기 위해선 Map 객체를 사용하여 해시 테이블을 구현합니다. Map 객체는 키-값 쌍인 집합입니다. 한 Map에서의 키는 오직 단 하나만 존재합니다. 이는 Map 집.. 알고리즘 이야기/알고리즘 개념 2024. 3. 25. 자바스크립트 알고리즘 재귀(recursion) 개념과 예제 안녕하세요. 오늘은 자바스크립트 알고리즘 중 초반에 감 잡기 가장 힘든 개념 중 하나인 재귀에 대해 포스팅 해보려고 합니다. 재귀란 무엇일까? 재귀는 어떤 함수가 자기 자신을 호출하는 기법입니다. 모든 재귀 함수는 종료 조건을 갖는데, 재귀 호출이 무한히 반복되지 않도록 하기 위해서지요. 재귀는 정말 여러 방면에서 사용하는데, DOM, JSON.parse 등과 같은 기본적인 자바스크립트 실행 코드들에도 재귀가 들어있습니다. 재귀를 사용하면 복잡한 알고리즘이 좀 더 간결하고 자연스럽게 풀리는 경우가 많습니다. 예시 1 - countDown 아래는 countDown을 하는 함수입니다. 기본적인 반복문으로 사용하면 아래처럼 쓰일 수 있는데요. // Iterative Version function countDo.. 알고리즘 이야기/알고리즘 개념 2024. 3. 25. 이전 1 2 3 4 5 6 7 다음