본문 바로가기

java2

JVM과 Call Stack (Stack, Frame) Stack? 스택은 자료를 넣고(Push), 가장 최근에 넣은 자료를 뺄 수 있는(Pop) 동작을 가진 Abstract Data Type(ADT)이다. 이처럼 먼저 넣은 자료가 나중에 나오는 것을 LIFO(Last In, First Out) 구조라고 한다. Call Stack? 컴퓨터의 서브루틴(== 프로시저 == 함수 == 메소드) 정보를 저장하기 위해 사용하는 스택 자료구조이다. Control Stack, Runtime Stack, Execution Stack, Stack 라고도 불린다. P1 -> P2를 호출할 때 넘기는 파라미터와 P1 리턴주소를 Call Stack에 Push한다. (P2->P3도 동일) P2 -> P1로 리턴할 때 P2는 자기 자신의 local variable만 Pop을 하고 파.. 2023. 1. 29.
간단한 ObjectMapper 만들어보기 (Java Reflection API) 자바는 Serializable을 통해서 JVM끼리 객체를 주고받을 수가 있다. 하지만 모든 시스템이 JVM 기반으로 작동한다고 할 수 없다. 그렇다면 서로 다른 시스템들끼리 통신을 어떻게 할까? 간단한 방법은 약속한 형식으로 메시지를 전달해서 수신자가 메시지 정보를 기반으로 자기 시스템에 맞는 데이터를 생성하는 것이다. 대부분 웹에서는 JSON 형식으로 전달 받아서 객체를 생성한다. 프레임 워크, 라이브러리가 보이지 않는 작업을 전부 처리해 주기 때문에 개발자가 직접 이것을 해석할 필요는 없지만, 곰곰이 생각해보면 상당히 복잡한 과정이다. 1. 런타임에 객체를 생성해야 한다. 2. 원시 타입, 레퍼런스 타입, List-Set-Map 등 컬렉션은 어떻게 변환할 것인가? 3. 객체 안에 객체가 있다면 어떻게.. 2022. 9. 15.