일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 조합
- 열 속성
- 필드 주입
- Spring
- 바이너리 카운팅
- Test
- static
- 인덱스
- equals
- DI
- StringBuilder
- DDL
- java
- redis
- cache
- MSA
- stream
- jpa
- 테스트 코드
- docker
- jwt
- VUE
- AOP
- hashcode
- 생성자 주입
- lambda
- 재정의
- select_type
- KEVISS
- Today
- Total
목록Java (39)
백엔드 개발자 블로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c2ZtD8/btsGZXWitC6/3KJmAysHqpp3oy9WEvs7t1/img.png)
JIT Compiler란?JVM 내에 구성된 execution engine을 통해서 바이트 코드를 기계어로 변환하여 애플리케이션을 실행시킨다바이트 코드를 기계어로 실행시키는 과정을 인터프리터 라고 한다jit compiler는 인터프리터 과정에서 Java 프로그램의 성능을 향상시키는 데 도움을 준다💡 그럼 바이트 코드는 어디서 생성되지?사전에 구현한 소스 코드(.java)를 javac로 컴파일하여 소스 코드(.class)로 변환한다 컴파일된 결과물은 보통 jar, war 형식의 압축 파일로 생성된다컴파일은 왜 필요하지?컴파일하면 OS와 상관없이 JVM만 설치되어 있으면 어느곳에서도 애플리케이션을 동작시킬수 있다대표적인 컴파일 언어는 C, C++ 이다인터프리터 과정이 필요한가?컴파일된 소스 코드를 런타임에..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ODEoa/btsG0I5z7bO/yw4FyVBifSUBygSiI3xfg0/img.png)
G1 GC란?이전의 GC는 Young Generation, Old Generation 영역이 고정적이었다G1 GC는 전체적인 heap 메모리를 고정된 영역이 아닌 논리적인 단위로 분리한다G1 GC는 사용하지 않는 개체의 영역을 수집하고 압축하여 STW를 최소화하였다JDK 9부터는 디폴트로 설정되어 있다G1 GC 동작원리initial mark : old region에서 존재하는 개체들이 참조하는 survivor region을 찾는다root region scan : initial mark에서 확인한 region안에 있는 개체를 마킹한다concurrent mark : heap 메모리를 전체적으로 스캔하면서 unrechable 개체의 region을 확인한다remark : 애플리케이션을 멈추고 최종적으로 GC 대..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beQ2FH/btsGZy3wqTD/A8U3VwcG16EuCnyMbSk2kK/img.jpg)
heap dump 파일이란?개념 : 운영중인 애플리케이션의 힙 메모리 영역을 스냅샷으로 기록한 내역을 저장한 파일을 일컫는다사용처 : 힙 메모리 영역 OOM(OutOfMemory)으로 JVM 에러가 발생하는 것인지 확인하는 데 사용된다.그럼 heap dump 파일은 언제 생성하지?효율적으로 런타임시 OOM(Out Of Memory)이 발생하는 경우에 스냅샷을 생성하고 파일 내용을 분석하면 된다. OOM은 어떤 경우에 발생하는가?Java Heap space원인 : 힙 영역에 공간이 부족할 경우에 발생한다. 가장 많이 확인되는 케이스이다.해결안 : GC 설정을 해주거나, 객체 생성을 최소화하거나, 메모리 사이즈를 늘려줍시다.public class JavaHeapSpace { public static vo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dxG4h3/btsG0GMSlc1/b063Tr3y5S4A5bGOSDJ6pK/img.png)
병렬처리를 이용한 이미지 리사이즈 개선을 통해 이미지 로딩문제를 개선한 경험을 작성해봤습니다.문제 상황1. 렌더링으로 인한 이미지 로드 지연사용자의 원본 이미지를 그대로 S3에 업로드해서 사용해왔습니다. 그렇다보니 네트워크 / 디바이스 성능에 따라 페이지 렌더링 되면서 이미지가 늦게 로드 되는 경우가 많았습니다. 2. 고화질 원본 이미지로 인한 이미지 로드 지연대부분 원본 이미지가 3MB이상인 고화질 이미지였기에 늦게 로드 되었습니다. 해결안1. 원본 이미지 경량화 (선택)현실적으로 지금 당장 빠르게 해결할 방법은 백엔드쪽에서 원본 이미지를 경량화하는 것입니다. 단, 페이지마다 사용하는 이미지 사이즈가 다르기 때문에 4가지 유형으로 리사이즈해서 프론트에서 적절한 유형의 리사이즈 이미지를 사용하도록 합시..