일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ExecutorService
- 티스토리챌린지
- querydsl
- 프로세스
- OpenFeign
- ExceptionHandlerFilter
- asciidoctor
- JWT
- 비동기
- springboot
- 멀티스레드
- Spring Security
- 멀티프로세싱
- 스레드
- Apple 로그인
- OAuth2.0
- 네이버클라우드 서버
- 도메인 주도 설계(DDD) 기반 마이크로서비스(MSA) 모델링
- 비사이드프로젝트
- Spring Cloud OpenFeign
- 사이드 프로젝트
- 2024년 상반기 회고
- REDIS
- Spring Reactive Programming
- microsoft
- 멀티태스킹
- spring boot
- 오블완
- FeignClients
- 코드로 배우는 스프링 부트 웹 프로젝트
- Today
- Total
목록language/java (5)
기록하기
Java 21 의 Virtual Thread 는 기존의 Java 멀티스레딩 모델을 개선하여 '더 높은 처리량' 과 '효율적인 리소스 활용' 을 가능하게 해주었다고 한다.여기서 더 높은 처리량이라는 것은, 같은 시간 및 기간이 있을 때 더 많은 일을 수행하는 것을 의미하는데 그 일을 수행하고 처리량을 증대시킨다는 것의 기준이 되는 개념은 프로세스와 스레드라고 생각해서 이 내용을 먼저 정리하고 그 이후에 Virtual Thread 에 대한 내용을 살펴보고자 한다. 이미 많은 블로그와 강의에서 잘 정리된 내용들이지만, 스스로 내용 정리를 해보지는 않았어서 이 연재의 첫 시작을 '프로세스와 스레드, 멀티태스킹' 으로 잡았다. 프로세스와 스레드, 멀티태스킹(현재글)멀티태스킹하나의 CPU 코어만 있는데도 마치 여러..
File I/O 자바의 I/O 는 기본적으로 InputStream, OutputStream 이라는 abstract 클래스가 제공된다. 어떤 파일을 읽을 때 InputStream 의 자식 클래스로 읽고, 데이터를 쓸 때에는 OutputStream 의 자식 클래스로 쓰면 된다. 이때 꼭 기억해야 하는 메소드는 read(), close() 이며 특히 close() 의 경우 리소스를 닫을 때 사용하는 메소드로 매우 중요하다. 결국 '자원'을 쓰는 것이므로 close 를 해줘야 하며 try-catch-finally 에서는 finally 에서 close() 처리를 해줄 수 있었다. test.txt 더보기 Java File I/O test file try-catch-finally public class TryCatc..
String Constant Pool String 클래스는 equals() 메소드를 사용해서 비교를 해야하는데 이는 자바의 Constant Pool 이 존재하기 때문이다. Constant Pool 이란, 객체 재사용을 하기 위해 만들어진 것으로 String 의 경우 동일한 값을 갖는 객체가 있으면 이 객체를 재사용한다. 즉, Constant Pool 이라는 메모리 공간에 중복되지 않는 String 문자열을 저장하고, 해당 문자열에 접근할 때마다 메모리 주소를 반환하는데 이를 통해 메모리 공간을 절약할 수 있다. 그렇다면, 아래의 경우에는 과연 결과가 어떻게 나와야할까? String test1 = "abc"; String test2 = new String("abc"); //1) System.out.prin..
자바의 아키텍처를 보면 JDK 와 JRE 로 나뉘어져 있는데, JRE 는 자바를 실행할 수 있는 환경의 집합이라고 볼 수 있고 자바에서 제공하는 여러 라이브러리로 구성되어 있다. 이 중에서 GC 는 자바의 성능과도 관련이 있는데, 자동화된 가비지 컬렉터는 낮은 우선순위의 쓰레드로 동작하기 때문에 자바가 높은 성능을 낼 수 있도록 해준다. GC 란 무엇인가 먼저, JVM 이라는 용어를 이해해야 한다. JVM(Java Virtual Machine), 즉 자바 가상 머신은 자바 프로그램이 수행되는 프로세스를 의미한다. java 라는 명령어로 애플리케이션이 수행되면 JVM 위에서 애플리케이션이 동작하는 것이다. 여기서 JVM Heap 메모리와 관련하여 한 가지 주의해야할 것이 있는데, 가급적이면 maxHeapS..
필자가 실무에서 가장 많이 사용하는 자료구조는 List, Set, Map 인데 이들의 차이점은 무엇일까? 간단하게 정리를 해보고자 한다. 순서가 있는 목록 List List 는 순서가 있는 목록을 나타낸다. List 인터페이스의 가장 큰 차이점은 배열처럼 순서가 있다는 것이다. ArrayList 와 Vector 클래스의 사용법은 거의 동일하고 기능도 거의 비슷한 "확장 가능한 배열"이다. 하지만 ArrayList 는 thread safe 하지 않고, Vector 는 thread safe 하다. ArrayList 는 객체를 선언할 때 매개 변수를 넣지 않으면 초기 크기는 10이다. 따라서 10개 이상의 데이터가 들어가면 크기를 늘이는 작업이 ArrayList 내부에서 자동으로 수행된다. 참고로 자바의 모든..