Computer Science
-
Spring framework Spring framework 란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. Spring framework는 경량 컨테이너로 자바 객체를 담고 직접 관리한다. 객체의 생성 및 소멸 그리고 라이프사이클을 관리하며 언제든 Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다. 이는 Spring이 IoC 기반의 framework임을 의미한다. 구성요소 스프링은 객체 지향을 기반으로 하는 프레임워크로 다음과 같은 특징을 지닌다. POJO(Plain Old Java Object) 특정 기술에 의존적이지 않은 순수한, 객체 지향 원리에 충실한 자바 객체를 의미한다...
스프링 프레임워크(Spring framework)Spring framework Spring framework 란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. Spring framework는 경량 컨테이너로 자바 객체를 담고 직접 관리한다. 객체의 생성 및 소멸 그리고 라이프사이클을 관리하며 언제든 Spring 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다. 이는 Spring이 IoC 기반의 framework임을 의미한다. 구성요소 스프링은 객체 지향을 기반으로 하는 프레임워크로 다음과 같은 특징을 지닌다. POJO(Plain Old Java Object) 특정 기술에 의존적이지 않은 순수한, 객체 지향 원리에 충실한 자바 객체를 의미한다...
2022.09.22 -
시스템 콜(System Call) 시스템 콜이란? 운영체제는 커널 모드(Kernel Mode)와 사용자 모드(User Mode)로 나뉘어 구동된다. 운영체제에서 프로그램이 구동되는 데 있어 파일을 읽어오거나, 쓰거나, 혹은 화면에 메시지를 출력하는 등 많은 부분에서 커널 모드를 사용한다. OS는 다양한 서비스들을 수행하기 위해 하드웨어를 직접적으로 관리한다. 이와 반면 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다. OS가 제공하는 이러한 인터페이스를 시스템 콜(System Call) 이라고 한다. 목적 추상화된 하드웨어 인터페이스를 유저 프로세스에게 제공한다. 시스템의 보안과 안정성을 보장한다. 가상화된 유저 프로세스와 시스템이 소통할 수 있는 유일하고 공통적인 소통수단이..
시스템 콜(System Call)시스템 콜(System Call) 시스템 콜이란? 운영체제는 커널 모드(Kernel Mode)와 사용자 모드(User Mode)로 나뉘어 구동된다. 운영체제에서 프로그램이 구동되는 데 있어 파일을 읽어오거나, 쓰거나, 혹은 화면에 메시지를 출력하는 등 많은 부분에서 커널 모드를 사용한다. OS는 다양한 서비스들을 수행하기 위해 하드웨어를 직접적으로 관리한다. 이와 반면 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다. OS가 제공하는 이러한 인터페이스를 시스템 콜(System Call) 이라고 한다. 목적 추상화된 하드웨어 인터페이스를 유저 프로세스에게 제공한다. 시스템의 보안과 안정성을 보장한다. 가상화된 유저 프로세스와 시스템이 소통할 수 있는 유일하고 공통적인 소통수단이..
2022.09.22 -
GC(Garbage Collector) 종류와 특징 GC(Garbage Collector)란? Java로 개발하면서 Memory 관련 Error는 접할 수밖에 없는 문제이며, 해당 에러가 운영환경에서 발생했을 경우 단계적으로 서비스 장애까지 이어질 수 있다. 그렇기 때문에 메모리를 관리해주는 GC(Garbage Collector)의 동작원리를 아는 것이 중요하다고 한다. Java는 JVM을 통해서 작동이 되는데 Java의 특징 중 하나가 메모리 관리를 개발자가 직접 하지 않고, JVM에서 자동으로 처리해주며 이러한 역할의 과정을 GC(Garbage Collector) 라고 부른다. GC의 원리 메모리 할당 사용 중인 메모리 인식 사용하지 않는 메모리 인식 GC의 동작 방식 Young 영역과 Old 영역은..
GC 종류와 특징GC(Garbage Collector) 종류와 특징 GC(Garbage Collector)란? Java로 개발하면서 Memory 관련 Error는 접할 수밖에 없는 문제이며, 해당 에러가 운영환경에서 발생했을 경우 단계적으로 서비스 장애까지 이어질 수 있다. 그렇기 때문에 메모리를 관리해주는 GC(Garbage Collector)의 동작원리를 아는 것이 중요하다고 한다. Java는 JVM을 통해서 작동이 되는데 Java의 특징 중 하나가 메모리 관리를 개발자가 직접 하지 않고, JVM에서 자동으로 처리해주며 이러한 역할의 과정을 GC(Garbage Collector) 라고 부른다. GC의 원리 메모리 할당 사용 중인 메모리 인식 사용하지 않는 메모리 인식 GC의 동작 방식 Young 영역과 Old 영역은..
2022.09.21 -
프로세스 주소 공간 프로세스 주소 공간의 4가지 영역 Text(Code) 사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 공간이다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only로 되어있다. Data 전역 변수 또는 static변수 등 프로그램이 사용하는 데이터를 저장하는 공간이다. 전역 변수 또는 static 값을 참조한 코드는 컴파일이 완료되면 data 영역의 주소 값을 가리키도록 바뀐다. 전역 변수가 변경될 수 있어 Read-Writer로 되어있다. 초기화된 데이터는 Data 영역에 저장, 초기화되지 않은 데이터는 BSS 영역에 저장된다. Data 영역과 BSS 영역을 구분하는 이유는? 초기화 되지 않은 변수는 프로그램..
프로세스 주소 공간프로세스 주소 공간 프로세스 주소 공간의 4가지 영역 Text(Code) 사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 공간이다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only로 되어있다. Data 전역 변수 또는 static변수 등 프로그램이 사용하는 데이터를 저장하는 공간이다. 전역 변수 또는 static 값을 참조한 코드는 컴파일이 완료되면 data 영역의 주소 값을 가리키도록 바뀐다. 전역 변수가 변경될 수 있어 Read-Writer로 되어있다. 초기화된 데이터는 Data 영역에 저장, 초기화되지 않은 데이터는 BSS 영역에 저장된다. Data 영역과 BSS 영역을 구분하는 이유는? 초기화 되지 않은 변수는 프로그램..
2022.09.21 -
프로세스(Process) vs 쓰레드(Thread) 프로세스(Process)란? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 쓰레드(Thread)란? 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스의 특정한 수행 경로 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스 vs 쓰레드 프로세스는 실행 중인 프로그램을 말한다. 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않는다. 최소 1개의 쓰레드를 가지고 있다. 쓰레드는 프로세스 내에서 Stack만 따로 할당받고, 그 이외의 메모리 영역을 공유하기 때문에 다른 쓰..
프로세스(Process) vs 쓰레드(Thread)프로세스(Process) vs 쓰레드(Thread) 프로세스(Process)란? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 쓰레드(Thread)란? 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스의 특정한 수행 경로 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스 vs 쓰레드 프로세스는 실행 중인 프로그램을 말한다. 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않는다. 최소 1개의 쓰레드를 가지고 있다. 쓰레드는 프로세스 내에서 Stack만 따로 할당받고, 그 이외의 메모리 영역을 공유하기 때문에 다른 쓰..
2022.09.21 -
힙(Heap) 힙(Heap)이란? 완전 이진트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어지 자료구조이다. 힙은 일종의 반정렬 상태(느슨한 정렬 상태) 를 유지한다. 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도이다. 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진트리를 말한다. 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 힙의 종류 최대 힙(Max Heap) 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 key(부모 노드) >= key(자식 노드) 최소 힙(Min Heap) 부모 노드의 키 값이 자식 노드의 키 값보..
힙(Heap)힙(Heap) 힙(Heap)이란? 완전 이진트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어지 자료구조이다. 힙은 일종의 반정렬 상태(느슨한 정렬 상태) 를 유지한다. 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도이다. 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진트리를 말한다. 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 힙의 종류 최대 힙(Max Heap) 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 key(부모 노드) >= key(자식 노드) 최소 힙(Min Heap) 부모 노드의 키 값이 자식 노드의 키 값보..
2022.09.21