컨셉 - JetBrains 사에서 만든 언어- JVM 기반 언어 - .java에서 컴파일된 .class 파일을 동일하게 코틀린에서도 사용 - 자바에서 소스파일을 .java로 사용하듯 코틀린에서 같은 레벨에 .kt 파일로 정의됨- 코틀린이 자바와 100% 호환될 수 있는 이유: 코틀린도 .class 파일로 컴파일되기 때문. 따라서 import를 통해 코틀린 소스코드 내에서 자바 라이브러리, 스프링 등을 참조할 수 있음(import 시 이미 컴파일된 class를 참조하기 때문)- 2016년 코틀린 1.0 릴리즈, 스프링 프레임워크 5.0부터 코틀린 공식 지원, gradle의 경우 Groovy에 더해 Kotlin DSL 지원- JetBrains 사에서 코틀린 기반의 백엔드 애플리케이션 프레임워크 ..
Garbage Collection 이란?가비지 컬렉션은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능이다. JVM에서 제공하는(JVM 중에서도 Execution Engine) 주요 기능 중 하나이다. 참고로 가비지 컬렉션은 JVM만의 기능은 아니다. Unreachable ObjectStack frame이 Stack에서 pop되면 해당 메소드가 참조하던 레퍼런스도 사라진다. 이때 heap에는 객체 데이터가 그대로 남게 되는데, 이를 unreachable object라 한다. 이러한 unreachable object는 가비지 컬렉터의 대상이 된다. 가비지 컬렉션 주요 과정가비지 컬렉터가 스택의 모든 변수를 스캔하면서 각각 어떤 객체를 참..
Runtime Data Areas는 JVM이 운영체제로부터 할당받는 메모리 영역을 의미한다. JVM의 클래스 로더가 메모리에 바이트코드를 올리면, JVM의 Execution Engine은 JVM 메모리에 올라온 바이트코드들을 명령어 단위로 하나씩 가져와서 기계어로 변환시킨다. 변환된 기계어는 JVM의 메모리구조(Runtime Data Area)의 각 영역에 배치되며 GC와 함께 실행된다. Runtime Data Areas (5개) * 오라클(과거의 썬 마이크로시스템즈)의 HotSpot JVM 기준 모든 Thread 공유 1) Method(Static) Area Method Area, Class Area, Code Area, Static Area 라고도 불린다. JVM의 Execution Engine(실행..
자바는 OS와 독립적으로 실행시킬 수 있다. 그 이유는 JVM이 OS에 의존적이기 때문인데, 즉, OS마다 다른 JVM이 존재하기 때문이다. C/C++는 링커, 로더를 포함한 운영체제 바로 위에서 직접적으로 실행되므로, 빠르고 가볍다. 하지만 개발에 있어서 그만큼 메모리 회수 등 개발자가 신경써야 할 부분이 많다. 또한 C/C++ 등의 전통적인 언어는 컴파일 플랫폼(CPU 아키텍처 16bit, 64bit 등 및 OS)에 따라 자료형형의 크기가 변한다. 그래서 윈도우에서 컴파일한 C/C++파일은 리눅스에서 안 돌갈 수도 있다. JVM은 이러한 문제를 근본적으로 해결한다. 자바 소스코드(.java)가 자바 컴파일러(javac.exe)를 거치고 나면, 자바 바이트코드(.class)를 생성하는데, 이 자바 바..
- Total
- Today
- Yesterday
- Non-Blocking
- Controller
- 컨트롤러
- Kubernetes
- rolling update
- spring
- container
- LFCS
- Java
- 코틀린
- CICD
- ubuntu
- argocd
- 우분투
- github actions
- jvm
- kafka
- 카프카
- db
- GitOps
- Stream
- Linux
- golang
- 쿠버네티스
- Kotlin
- go
- K8s
- docker
- ci/cd
- RDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |