일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 베타적락
- piplining
- 백준
- JPA
- langgraph
- 구현
- spring event
- 몽고 인덱스
- 이분탐색
- 추천 검색 기능
- AWS
- ai agent
- ipo 매매자동화
- 알람시스템
- gRPC
- 누적합
- 디버깅
- 크롤링
- 완전탐색
- 셀러리
- 관측가능성
- 결제서비스
- 아키텍쳐 개선
- docker
- 카카오
- next-stock
- 쿠키
- 프로그래머스
- dau 3만명
- Today
- Total
목록2024/06/09 (3)
코딩관계론

우리는 앞서 JVM의 메모리 구조를 살펴봤다 - 2024.06.08 - [개발/Java] - JVM 메모리 구조 JVM 메모리 구조이전 시간에는 JVM이 코드를 어떤 방식으로 실행하는지 알아봤다(2024.06.02 - [개발/Java] - 자바 어떻게 실행되는가?)지금부터는 JVM의 데이터 영역에 대해서 집중적으로 탐구해보겠다.JVM의 Run time datbjwan-career.tistory.com그 중에 heap을 설명하면서 heap 메모리를 정리하기 위해서 Garbage Collection이 작동한다고 배웠다. 그럼 프로그래머는 자신의 application에 맞는 GC를 선택해야 한다고 한다. 그게 좋은 자바 개발자라고 네이버가 소개함 그럼 이 Garbage Collection이 어떻게 작동될까? ..

Thread Safety여러 스레드가 한 함수를 동시에 호출해도 올바른 정답을 돌려준다면 thread-safe하다고 이야기합니다. 객체지향 패러다임에서는 객체를 기본 단위로 하여 상호작용하는 것입니다. Thread-safe하게 구현하기 위해서 지역변수만 사용하라, final값을 사용하라 등의 지침이 있지만 이는 우리가 알고 있는 객체의 모습이라고 보기 힘듭니다. 따라서 멤버 변수에서 어떻게 thread-safe를 구현하는지에 대해 집중하겠습니다. Race conditionRace condition (경쟁 조건)은 다수의 스레드가 공유 자원에 접근하여 예상치 못한 결과를 초래할 수 있는 상황을 가리킵니다. 주로 다음과 같은 상황에서 발생할 수 있습니다:경쟁조건이랑 다수의 쓰레드가 공유자원에 접근해 예상치 ..

자바 언어를 배우다보면 static, final 변수가 중요하다고는 배우지만 왜 중요한지 어떤 특성으로 인해서 공유가 가능한지, 수정이 불변한지는 배우지 않는다.Static 변수Static 변수는 모든 클래스 인스턴스에서 하나의 변수를 공유하기 위해서 사용됩니다. 하지만 어떻게 모든 인스턴스에서 하나의 변수 값을 참조할 수 있을까요? 컴파일 과정과 JVM의 메모리 영역을 생각해보면 답이 있다(2024.06.02 - [개발/Java] - 자바 어떻게 실행되는가?) 클래스 로더가 JVM의 바이트코드 파일을 읽어 메모리에 할당하면서 링킹 과정이 수행됩니다. 이때 static 변수가 초기화되며, 이후 초기화 과정을 통해 static 변수에 실제 값이 할당된다. 이 과정을 거치게 되면 static 변수는 메모리에..