반응형 책벌레와 벌레 그 사이 어딘가83 [개념쌓기] Object class? 자바의 최상위 클래스 자바의 최상위 클래스가 Object클래스인 것은 익히 알고 있을 것이다. 몰랐다면 이제 알면 된다. Object 클래스 : 모든 자바 클래스들의 부모 클래스이며 모든 자식 클래스는 Object의 메소드를 가진다. *System.out.println(new A()); 와 같이 모든 클래스 타입을 출력할 수 있는 것이 Object클래스가 있기 때문이다 class B extends A{~~ } class A{~~ } class A extends Object{~~ } 마지막의 경우 상속을 하지 않으면 자동으로 Object를 상속한다 즉, 모든 class는 object class의 메소드를 사용가능하며, 일부는 overriding 할 수 있다. Object 클래스는 필드없이 메소드로 구성된다 이 메소드들은 모든 .. 2023. 1. 12. [개념쌓기] JAVA 메모리 내 메소드 모든 프로그램은 프로그램의 실행에 있어 OS에게 시스템 리소스의 일부인 메모리를 할당 받아야 한다. 그렇기에 일반적으로 운영체제에 종속되어 실행된다. Java 프로그램은 JVM(Java Virtual Machine)이라는 프로그램을 사용해 운영체제에 종속되지 않고 중립적으로 실행될 수 있다. 예시 그림과 같이 일반 프로그램은 운영체제를 통해 Hardware에 접근하기 때문에 OS에 종속적인 것이다. 하지만 자바는 프로그램 후에 JVM을 통해 OS에 접근하기 때문에 운영체제에 종속되지 않는 것이다. Java의 중립적 클래스 설계를 올바르게 하여 만들어진 코드는 OS와 상관없이 재사용이 가능한데, 이를 가능하게 해주는 것이 JVM인 것이다. 위와 같이 장점도 있지만 일반 프로그램과는 다르게 중간에 JVM이 .. 2023. 1. 10. [개념쌓기] 가비지컬렉터? JVM에서 힙? https://veganwithbacon.tistory.com/158 [개념쌓기] 메모리? 스택,힙? 메모리가 무엇을 하는지 알아보고 JAVA 내에서의 메소드 영역의 역할 및 가비지컬렉터의 기능까지 같이 공부할 계획이다. 우선 메모리가 어떻게 이뤄져있는지를 알아보자. 🔔성격 급한 꼬레아 veganwithbacon.tistory.com 이제 메모리가 무엇인지 힙과 스택의 차이는 알았으니 Java 메모리에서 메소드 영역이 무엇을 하는지 알아보자 보자보자 어디보자 넌두고보자 가비지 컬렉터는 지금보자 🔔GarbageCollector 더 이상 필요없어진 메모리를 쓰레기(Garbage), 쓰레기를 효과적으로 처리하는 작업을 Garbage Collection(GC)라고 부른다 메모리 관리 방법 중에 하나로, 시스템 .. 2023. 1. 9. [개념쌓기] 메모리? 스택,힙? 메모리가 무엇을 하는지 알아보고 JAVA 내에서의 메소드 영역의 역할 및 가비지컬렉터의 기능까지 같이 공부할 계획이다. 우선 메모리가 어떻게 이뤄져있는지를 알아보자. 🔔성격 급한 꼬레아노들을 위해 ✔스택(Stack) -액세스가 매우 빠르다 -변수를 명시적으로 할당/해제할 필요가 없다 -공간은 CPU에 의해 효율적으로 관리되고 메모리는 단편화되지 않는다 -지역 변수와 매개변수 -스택 크기 제한(OS에 따라 다름) -변수의 크기 조정이 불가능 ✔힙(Heap) -변수는 전역적으로 액세스 할 수 있다 -메모리 크기 제한이 없다 -(상대적으로) 느린 액세스 -효율적인 공간 사용을 보장하지 못하면 메모리 블록이 할당된 후 시간이 지나 메모리가 조각화되어 해제될 수 있다 -메모리를 관리해야한다 -변수 C언어 real.. 2023. 1. 6. [개념쌓기] HATEOAS? HATEOAS란? : Hypermedia As The Engine Of Application State 서버가 클라이언트에 하이퍼 미디어를 통해 정보를 동적으로 제공하는 것 일반적으로 REST API를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는 것을 의미한다. 클라이언트가 서버로부터 어떠한 요청을 할 때, 요청에 필요한 URI를 응답에 포함시켜 반환하는 것으로 가능하게 한다 해당 리소스의 상태에 따라 링크 정보가 바뀌며 동적으로 리소스를 구성한다. (이 말이 URI를 통해 무엇을 포함하는 지를 알려준다는 의미이다.) 예로 헤더에 Content Type을 application/hal + json으로 전달하면 클라이언트에서는 _links 필드에 링크 정보가 있다고 예상할 수 있다.. 2023. 1. 4. [개념쌓기] EntityGraph EntityGraph란? FetchJoin의 간편 버전이라고 생각하면 된다. 연관관계가 있는 엔티티를 조회할 경우 지연 로딩으로 설정되어 있다면 연관관계에서 종속된 엔티티의 쿼리를 실행 시에 select 되지 않고 proxy 객체를 만들어 엔티티가 적용시킨다. 그 후 해당 proxy 객체를 호출할 때마다 select 쿼리가 실행된다. 이처럼 연관관계가 LAZY로 되어있다면 Fetch 조인을 사용해 여러 번의 쿼리를 한 번에 해결할 수 있다. @EntityGraph는 Data JPA에서 Fetch Join을 어노테이션으로 사용할 수 있도록 만들어 준 기능이라고 생각하면 된다. 더 정리하려 했으나 글만 적는것보다는 Querydsl을 공부한 뒤에 코드에 적용시켜보고 경험을 바탕으로 작성하겠다. 이해가 잘 안돼.. 2023. 1. 4. [개념쌓기] Fetch Join N+1문제에 대해 공부하다보니 FetchJoin과 EntityGraph가 해결방안이라는 것을 알게 됐고 연장선상에서 두 가지에 대해 더 공부했다. 가지가 많아서 이것저것 다 공부하다보니 막상 해결책은 공부를 제일 마지막에 하게 되었다. 서론이 길었다. Fetch Join에 대해 알아보자. FetchJoin이란? FetchJoin은 JPQL에서 성능 최적화를 위해 사용하는 기능이다. FetchJoin은 SQL의 조인 종류가 아니다. (SQL 조인에는 Inner Join, Outer Join(left,right, full)이 있다.) JPA는 엔티티에 관계를 맵핑할 때 지연 로딩과 즉시 로딩을 설정할 수 있는데 이때 성능 최적화를 진행한다. 즉시 로딩 -> 어떠한 엔티티가 조회되었을 때 연관된 엔티티도 전부.. 2023. 1. 4. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음 반응형