일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- STREAM
- 소켓
- 라우터
- Java
- IntelliJ
- Jenkins
- Spring
- AOP
- jdk
- docker
- 캐시서버
- gradle
- tomcat
- cloud
- 액세스회선
- mybatis
- post
- container
- ansible
- DevOps
- 방화벽
- sonarQube
- LAN어댑터
- Linux
- map
- 허브
- Pipeline
- Set
- JPA
- Collection
- Today
- Total
목록분류 전체보기 (195)
거북이-https://velog.io/@violet_evgadn 이전완료
Garbage Collection이란? ◎ GC(Garbage Collection) 시작하기 이전에 말했던 내용을 간단히 정리하면, GC란 "메모리를 알아서 정리해주는 기능"이라고 한다. 그렇다면 왜 Garbage Collection이라고 하는 걸까? 먼저 "Garbage"라는 용어에 대해 알아볼 필요가 있다. Garbage의 사전적 의미는 "쓰레기"라는 의미를 가진다. 그렇다면, 컴퓨터 과학 측면에서 Garbage라는 의미는 무엇을 의미할까? ◎ Garbage(쓰레기 값)이란? Garbage를 한 마디로 정의하자면, "유효하지 않은 메모리 주소"를 말한다. Garbage를 Unreachable Object(사용하지 않을 객체)라고 정의하는 사람들도 있지만, 사용을 하고 싶더라도 메모리 주소를 잘못 설정..
JVM 구조 ◎ Class Loader(클래스 로더) JVM에 클래스 파일(.class)을 로드하고, 링크를 통해 배치하는 작업을 수행하는 모듈이다. Class Loader에서는 클래스 로딩(Loading), 링크(Linking), 초기화(Initalization) 순으로 클래스 파일을 메모리에 할당한다. 먼저 클래스 로딩은 클래스를 읽어오는 과정이다. 클래스 로더가 .class 파일을 읽고 내용에 맞는 Binary 데이터를 생성하여 Method 영역에 저장한다. 이후 링크 과정에선 heap 영역에 저장된 객체를 가지고 오는 과정을 수행한다. 예를 들어 Book 클래스의 객체를 생성할 때, Method 영역에서 Book 클래스에 대한 정보를 가지고 와 클래스 정적 변수에 대한 값을 초기화한다. 이렇게 만..
1. 컴파일과 인터프리터 JAVA는 컴파일과 인터프리터 2개의 방식을 혼합하여 코드를 실행하는 특이한 구조를 가지고 있다. 따라서, JAVA 코드 실행 과정을 이해하기 위해서는 컴파일과 인터프리터가 무엇인지 알아볼 필요가 있다 2. JAVA Source Code Compile 과정 ◎ 자바 바이트 코드(Java ByteCode) 바이트코드는 Java Compiler가 생성하는 코드로써 직접 실행할 수 있는 기계어가 아니라 자바 가상머신(JVM)에 의해 해석될 수 있는 중간 코드 개념이다. ◎ 자바 Source Code Compile 과정(쉬운 버전) 자바 Source Code(.java 파일)을 javac.exe 파일을 통해 클래스 파일(.class)로 변환 컴파일 과정 javac.exe 실행 파일을 통..
1. JAVA 특징 ◎ 높은 이식성 이식성이란 다른 실행 환경의 시스템 간 프로그램을 옮겨 실행할 수 있는 것을 말한다. 만약 Windows에서 개발한 프로그램을 Linux에서도 실행할 수 있다면 이식성이 높다고 말할 수 있다. 원래 다른 실행 환경에서 실행하기 위해선 소스 파일을 수정하고 재컴파일 과정을 거쳐야 하지만, 자바로 개발된 프로그램은 JRE가 실행된 모든 OS에서 실행 가능하다. ◎ 객체 지향 프로그래밍(OOP; Object Oriented Programming) OOP, 객체 지향 프로그래밍 언어는 객체를 기준으로 코드를 구현하는 것을 말한다. 레고 블록이 되는 클래스(인스턴스)를 조합하여 프로그래밍을 할 수 있도록 구현되었기 때문에, JAVA는 OOP를 위한 적절한 객체지향 언어라고 할 ..
1. JAVA를 배워야 하는 이유 TIOBE Index라는 프로그래밍 언어 점유율 순위를 알려주는 통계자료가 존재한다. 물론 해당 사이트의 통계 자료가 100% 일치한다고 볼 수는 없지만, 현재 어떤 프로그래밍 언어가 많이 활용되는지 확인할 수 있다. 위 그림은 2022년 7/31일 기준 프로그래밍 언어 점유율 순위이다. Python이 1위이고 그 뒤로 C언어와 JAVA가 많이 사용됨을 볼 수 있다. 위 사진은 프로그래밍 언어별 평균 순위를 의미하는 표이다. Python은 꾸준히 등수가 오르며 2022년에 1위를 차지하였고, JAVA는 2002년 이래로 쭉 1위를 지켜오다 2022년 3위로 약간 순위가 떨어졌음을 볼 수 있다. C언어는 대학 과제나 처음 프로그래밍 언어를 접하는 사람이 많이 배운다는 점을..