본문 바로가기

728x90
반응형

프로그래밍 언어

(5)
[java] 가비지 컬렉션(Garbage Collection, GC)의 개념 이번 시간에는 Java에서 컴파일을 하면 생기게 되는 자바 바이트코드를 실행할 수 있도록 해주는 JVM의 기능중 하나인 가비지 컬렉션(Garbage Collection), 줄어서 GC에 대해서 알아보도록 하겠습니다. java를 개발했던 경험을 잘 생각해보면 객체를 여러번 생성한 기억은 있어도, 이걸 해제한 기억이 없습니다. C와 같은 경우에는 메모리 할당을 해주면 그 메모리가 해제되기 전까지는 계속 메모리 영역에 남아있어 누수가 생기게 되는데, java는 어떨까요? 결론적으로 java는 이러한 메모리 누수를 관리해주는 기능을 갖고 있습니다. 이는 가비지 컬렉션이라고 불리며 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블럭인 가비지를 추적하여, 자동으로 할당된 부분을 해제시켜주는 역할을 합니다. ..
[javascript] var, let, const와 호이스팅 자바스크립트에서 사용되는 변수 타입과 스코프에 대해서 알아보겠습니다. 기본적으로 자바스크립트 또한 다른 언어와 같이 지역변수와 전역변수 개념이 존재합니다. 따라서 전역변수를 함수 내에서 변경하면, 함수 바깥에서도 변경된 값이 사용된다던가 .. 하는 등의 기본적인 개념이 적용됩니다. 다만 자바스크립트에서는 이런 통상적인 스코프에서 예외적인 변수 선언 타입이 있는데, 이러한 내용들을 지금부터 다뤄보고자 합니다. 우선 자바스크립트는 var, let, const의 변수 타입을 주로 사용합니다. - let let은 기본적으로 선언한 후에 값을 변경할 수 있고, 같은 스코프 내에서는 재선언을 할 수 없습니다. 아래처럼 선언한 변수에 다시 값을 할당할 수 있습니다. let temp = "hello" console.l..
[javascript] 정규표현식의 개념과 자바스크립트에서의 정규표현식 이번 시간에는 정규표현식에 대한 간단한 개념을 자바스크립트 환경에서 사용하며 배워보고자 합니다. 정규표현식을 사용하는 이유 정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데에 사용되는 언어입니다. 기능이라기 보다는 하나의 언어에 가깝기 때문에 어렵고, 복잡한 내용이 많지만 간단하게 정리하자면 "문자열의 검색과 치환을 위해 사용되는 언어"라고 할 수 있습니다. 정규 표현식을 필요로 하는 가장 간단한 예제는 다음과 같습니다. 여러가지 사이트를 편하게 연결할 수 있도록 모아놓은 html이 있다고 가정해봅시다. 그러면 간단하게 아래와 같이 구현할 수 있습니다. 네이버 https://www.naver.com 구글 https://www.google.co.kr/ 다음 https://www.daum.net ..
[C++] STL 프로그래밍 (2) - 연결 리스트 (list) STL에서 제공하는 자료 구조 중 하나인 list는 연결리스트 개념을 바탕으로 만들어졌습니다. 따라서 list를 사용하기 위해서는 연결리스트란 무엇인지 알아야합니다. -연결 리스트 연결리스트는 배열과 비슷하게 생긴 자료구조지만, 몇가지 특징을 통해 뚜렷하게 구별됩니다. 아래는 배열과 연결리스트를 간단하게 표현한 모습입니다. 첫번째는 배열의 구조를 나타낸 것이고, 두번째와 세번째는 각각 연결 리스트의 종류 중 하나인 단방향 연결 리스트와 양방향 연결 리스트입니다. 배열은 index를 이용하여 거북이나 사자, 호랑이, 햄스터에 접근할 수 있습니다. 하지만 연결리스트는 이와 같이 index로 직접 접근하지 않습니다. 연결리스트는 node(노드)라 불리는 하나의 데이터에서 다음 node의 위치를 찾아 접근합니다..
[C++] STL 프로그래밍 (1) - 템플릿 STL은 'Standard Template Library'의 약자로, 자주 사용되는 자료구조와 알고리즘을 모은 라이브러리입니다. vector, map, set등의 자료 구조와 find, search등의 알고리즘이 이에 해당합니다. - Template STL을 이해하기에 앞서, template의 개념을 먼저 이해해야합니다. 만약 두개의 int 값을 더하는 함수를 작성하려면 아래와 같이 구현할 수 있습니다. #include using namespace std; int Sum(int a, int b) { return a + b; } int main() { cout

728x90
반응형