Java

·Java
이번 글에서는 동시성이 무엇인지, 언제, 왜 발생하는지, 그리고 어떻게 처리할 수 있는지에 대한 해결 방법을 다룬다. 동시성 (Concurrency) 동시성이란 여러 작업이 마치 동시에 실행되는 것처럼 보이는 상황을 의미한다. 주로 다중 작업, 다중 사용자 시스템에서 발생하게 된다. 시스템의 규모가 어느 정도 커지면 동시성을 고려하지 않고서는 코드를 작성하는 것이 거의 불가능하다. 예를 들어 게시판 서비스에서 사용자 A, B가 동시에 좋아요를 눌렀다고 가정해보자.1. 사용자 A가 게시글 X에 좋아요를 클릭했을 때 like를 조회한다. (like = 0)2. 동시에 사용자 B가 게시글 X에 좋아요를 클릭했을 때 like를 조회한다. (like = 0) -> A가 클릭한 작업이 커밋되기 전3. 사용자 A의 ..
·Java
이번 글에서는 JVM에서 어떤 일이 일어나는지 Runtime Data Area를 중심으로 살펴보고자 한다. JVM (자바 가상 머신)JVM이란 스택 기반의 가상 머신으로 자바 애플리케이션이 OS에 구애받지 않고 실행될 수 있도록 환경을 제공하고, 시스템 메모리를 관리하는 역할을 한다.클래스 로더(class loader) : 클래스 파일들을 엮어서 JVM이 OS로부터 할당받은 메모리 영역인 Runtime Data Area에 적재하는 역할을 한다. 클래스에 대한 정보가 Method Area에 저장된다.실행 엔진(execution engine): 클래스 로더에 의해 메모리에 적재된 클래스(바이트 코드)들을 Interpreter가기계어로 변경해 명령어 단위로 실행하는 역할을 한다.가비지 컬렉터(garbage c..
suyeonsu
'Java' 카테고리의 글 목록