백엔드 (Backend)/자바 (Java)

백엔드 (Backend)/자바 (Java)

[JAVA] 자바에서 제네릭(Generic)

제네릭(Generic)의 기본 개념 Generic의 뜻 영어사전을 통해 확인할 수 있는 generic의 정의는 여러 가지가 있지만 다음과 같은 뜻을 가지고 있다. 형용사 1. 일반적인, 포괄적인(general) 2. 총칭적인 3. 상표 등록이 되어 있지 않은 명사 1. (상표명이 아닌) 일반명 그렇다면 자바에서의 제네릭이란? 자바에서 제네릭은 데이터의 타입을 일반화한다(generalize)는 것을 의미한다. 조금 더 정확하게 표현하자면 클래스나 메소드에서 사용할 내부 데이터 타입을 실제로 클래스를 사용하는 Actor에 의해 지정할 수 있는 방법이다. 즉 사용자 호출에 의해 클래스 내부 데이터 타입을 지정하는 것이다. 제네릭을 이용한 타입 지정은 컴파일 시에 진행이 된다. 컴파일러에 의해 자동으로 검사 되..

백엔드 (Backend)/자바 (Java)

[JAVA] 자바 컬렉션 프레임워크(Collection Framework) 구조

자바 컬렉션 프레임워크(Collection Framework)란? 컬렉션(Collection) 이란? 자바에서 컬렉션이란 여러 객체(데이터)를 담을 수 있는 자료구조, 다수의 데이터 그룹 또는 집합을 의미한다. 프레임워크(Framework)란? 복잡하게 설명할 수 있지만 간단하게 표준화된 프로그래밍 방식을 의미한다. 그렇다면 컬렉션 프레임워크(Collection Framework)는? 데이터 그룹을 저장하는 클래스들을 표준화한 설계이다. JDK 1.2 버전부터 java.util 패키지에서 지원하기 시작하였고 이전에는 Vector, Properties, Stack, Hash Tables, Dictionary와 같은 것들이 존재하였으나 통일성이 없고 표준화된 인터페이스가 존재하지 않았다. 컬렉션 프레임워크는..

백엔드 (Backend)/자바 (Java)

[JAVA] 자바 가비지 컬렉션(GC, Garbage Collection) 총정리 - 개념, 배경, 동작원리, 종류

자바 가비지 컬렉션(GC, Garbage Collection) 기본 개념 가비지 컬렉션(GC, Garbage Collection)이란? 자바 가상 머신(JVM)에 의해 구동되는 자바 프로그램은 메모리 관리를 개발자가 직접 명시적으로 수행하지 않고 자동 메모리 관리 기능을 지원한다. 가비지 컬렉션은 자바의 메모리 관리 방법 중의 하나로 자바 가상 머신의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스를 말한다. 두-두 등장 배경 과거의 프로그래밍 언어들은 메모리 할당기능이 존재하지 않거나 프로그래머가 할당한 뒤 수동으로 해제까지 하는 방식으로 메모리를 관리하였다. 대표적인 예가 C와 C++이다. 두 언어에서는 OS 레벨의 메모리에 직접 접근하기 ..

백엔드 (Backend)/자바 (Java)

[JAVA] JVM 메모리 구조 - 런타임 데이터 영역(Runtime Data Area) 알아보기

자바 가상 머신(JVM, Java Virtual Machine) 이란? 자바 가상 머신(JVM, Java Virtual Machine)은 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 이 포스트와 함께 다루고 싶지만 내용이 너무 길어져 나누어 작성하게 되었다. 불편하시더라도 자바 가상 머신에 대해서는 아래 포스트를 참고 부탁드립니다! 자바 가상 머신 내 메모리 구조만 알고 있어도 물론 좋겠지만 메모리 구조를 알기 전에 JVM이 뭔지 제대로 알면 더 좋을 것 같다. 숲이 아닌 나무를 보다 보면 결국 나중에는 나무만 알고 전체적인 숲의 모습을 알기 힘들어지는 법. (내가 이 블로그를 쓰고 있는 이유 😂) 자바 가상 머신 (JVM, Java Virtual Machine)의 구조와 동작방식 자바 가상 머신..

백엔드 (Backend)/자바 (Java)

[JAVA] 자바 가상 머신 (JVM, Java Virtual Machine)의 구조와 동작방식

자바 가상 머신(JVM, Java Virtual Machine) 이란? 자바 가상 머신(JVM, Java Virtual Machine)은 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 지난 포스트와 비슷한 내용이지만 과거에는 대부분의 컴퓨터 언어가 특수한 아키텍처나 OS에 맞게 컴파일되도록 설계가 되어있었다. 자바 이전에 C/C++은 모든 CPU에 맞게 컴파일될 수 있었지만 해당 CPU에 맞는 컴파일러가 필요했다. 하지만 각각의 환경을 위한 컴파일러 개발 비용은 비싸고 오랜 시간이 소요된다는 문제가 있었고 더 나은 방식을 찾기 위해 제임스 고슬링과 그 동료들은 다양한 환경의 CPU에서 실행될 수 있는 이식성이 뛰어난 Cross Platform 언어 개발에 착수하게 된다. 이렇게 자바는 "Write ..

백엔드 (Backend)/자바 (Java)

[JAVA] 자바(JAVA)란 무엇인가? - 배경 및 특징

배경 그린에서 나무를 거쳐 커피가 되기까지? 자바는 1991년 6월 Sun Microsystem의 그린팀에서 부터 시작되었다. 그린팀은 자바의 창시자로 잘 알려져 있는 제임스 고슬링(James Gosling)과 패트릭 노튼(Patrick Naughton), 마이크 쉐리든(Mike Sheridan)으로 이루어져 있었으며 초기 개발 목적은 현재와 많이 달랐다. 현재 자바는 인터넷 웹서비스 또는 안드로이드와 같은 모바일 환경, 게임, 비즈니스 솔루션 등등 다양한 분야에서 사용되지만 본래 자바는 셋톱박스와 같은 가전제품에 내장될 소프트웨어를 위한 플랫폼 독립적인 언어였다. TV와 시청자가 서로 상호 작용할 수 있는 Interactive한 환경을 만들기 위해 시작된 것이다. 지금은 스마트 TV, IPTV가 너무 ..

Jayleen_
'백엔드 (Backend)/자바 (Java)' 카테고리의 글 목록