시작하며Java에서는 new를 통해서 객체를 생성하게 된다. 자바 파일이 compile 되면 os가 JVM에게 할당한 메모리 중 JVM의 Run time data area의 Heap 영역에 new를 통해서 만든 객체가 메모리에 할당하게 된다. 이렇게 할당된 메모리는 언젠가는 반환 되어야 하는데 C에서는 delete라는 연산자를 통해서 반환 시키지만 Java에서는 delete를 사용한 적이 없다. 이유가 왜일까? 바로 GC(Garbage Collection)를 통해서 자동으로 메모리를 반환 하기 때문이다. 이번 시간에는 이런 GC가 어떻게 동작하는지 그리고 GC의 알고리즘에는 어떠한 것들이 있는지 살펴보자 JVM Heap Area구조실제로 heap Area를 보면 크게 4가지 구역으로 나눌 수 있다.Ede..
Salesforce가 업계 1위의 CRM platform이라고 해도 결국에 뜯어 보면 Object로 이루어진 하나의 Database이다. 그러나 부트캠프 과정에서 구상했던 DB와 다른 점은 부트캠프 때 User는 Role_Admin과 Role_User 단 둘이였고 같은 User끼리 보안 및 접근 권한 설정을 크게 신경쓰지 않아도 됐지만, Salesforce는 강력한 보안 및 접근권한 설정 기능을 제공한다라는 점이다. 이번 글에서는 SFDC가 보안과 접근권한 설정을 어떻게 하는지 알아보겠다.RoleRole은 User의 계층적 구조를 나타내는 개념이다. SFDC의 타겟은 회사이고 회사의 임직원들은 위의 사진과 유사하게 계층적 구조로 이루어져있다. 이러한 구조를 만들어주는게 SFDC의 Role이다.Why?DB..
Salesforce를 경험해 볼 기회가 있어서 Trailhead를 따라 이것저것 만져보고 있다.내가 DBA가 되어 제공해주는 예제 수준의 DB를 다양하게 시험해 봤다. DBMS 인것 같으면서 더존의 ERP 느낌도 물씬 났던 녀석이다. 무엇보다 DB 관점에서 본다면 기본적으로 제공을 해주는 기능들이 워낙 강력하여 별도 SQL이나 코딩 없이도 왠만하 기능을 구현 할 수 있었다. 무엇보다 이미 타겟 client가 기업이기 때문에 기업전용 기능을 제공을 하여 편하게 사용 할 수 있었다. 지금부터 이러한 Salesforce가 가지는 몇가지 특징을 살펴 보겠다. Standard Object 부트캠프 과정에서 처음 인터넷 쇼핑몰을 만들때 작성했다 릴레이션 스키마이다. 당시 우리는 패션관련 쇼핑몰을 만들었고 다른 조들..
자바의 가장 큰 특징 하나만 말하라고 하면 뭐가 있을까? 바로 플랫폼 독립적이라는 것이다.플랫폼에 종속된 경우 윈도우에서 빌드한 프로그램을 그대로 리눅스나 macOS에서 실행하는 것은 불가능하다. 반면 Java로 작성된 프로그램은 플랫폼에 맞는 자바 가상 머신만 설치되어 있다면 대체로 문제없이 동작한다. 이는 바이트 코드가 플랫폼이 아닌 자바 가상 머신에서 실행가능하며, 프로그램 실행의 주체가 운영 체제가 아닌 자바 가상 머신이기 때문이다. 이러한 점을 일컬어 플랫폼에 독립적이라고 한다. 그럼 Java는 어떻게 플랫폼에 독립적일 수 있을까? 바로 JVM이 있기 때문이다.JVM은 어디에 위치해 있을까?컴퓨터의 구조를 이렇게 3개의 계층으로 볼 수 있다.보게 되면 JVM이 user mode Applicat..