본문 바로가기

전체 글77

[Querydsl] 우아한테크콘서트 2020 Querydsl 강의 정리 영상 링크 이 포스트는 우아한형제들에서 2020년 우아한테크콘서트를 진행하며 이동욱님께서 발표해주신 수십억건에서 Querydsl 사용하기를 시청하며 학습하고 정리한 글입니다. 테스트 환경 Java : OpenJDK 1.8.0_252 Querydsl : Querydsl-JPA 4.2.1 Database : AWS Aurora MySQL 5.6 1.19.6 Querydsl의 Custom Repository를 사용하지 않는 방법 보통 Querydsl을 사용할 때 1. JpaRepository와 CustomRepository를 확장(extends)한 Repository Interface 2. Querydsl을 사용하는 메소드 시그니처를 정의하는 RepositoryCustom Inteface 3. 실제로 Quer.. 2021. 1. 10.
[spring] Spring State Machine 스테이트 머신(상태 기계)를 이해하기 위해서는 먼저 오토마타 이론을 간략하게 이해해야 한다. 컴퓨터 공학 수업에선 오토마타를 배운다는데... 나는 컴공이 아니기 때문에 ㅠ_ㅠ 위키피디아에 검색하면 자세하게 학습할 수 있다. 오토마타 이론 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제를 연구하는 컴퓨터 과학 분야 추상 기계 = 오토마타라고 지칭 오토마타는 일반적으로 유한한 상태를 가지며, 입력을 받아 일정하게 상태를 전이하며, 출력을 내놓는다. 유한 상태 기계 유한한 개수의 상태를 가질 수 있는 오토마타 한 번에 오로지 1개의 상태만을 가진다. 현재 상태(Current State) = 임의의 주어진 시간에 기계가 갖고 있는 상태 어떤 사건(Event)에 의해 한 상태에서 다른 상태로 .. 2020. 10. 31.
[java] 멀티스레드 환경과 싱글톤 객체 해당 포스트는 Jungwoon님의 자바 멀티스레드 환경에서 싱글톤 패턴을 이해하며 작성한 글입니다. 결론은 LazyHolder 패턴으로 싱글톤을 구현하자! 입니다. 스프링은 빈이라는 싱글톤(유일한 하나의 인스턴스) 객체를 IOC 컨테이너에 생성하여 사용한다. 스프링의 빈은 일반적으로 1. 상태를 가지고 있지 않게 설계 (@Controller, @Service, @Repository, ...) 2. 어플리케이션 구동 시 ApplicationContext라는 Static Sharing Pool에 싱글톤 인스턴스 생성 2가지 방법으로 멀티스레드에서의 빈 동기화를 신경쓰지 않아도 된다. 하지만 싱글톤 객체는 사실 구현 방법에 따라 Thread-Safe 할 수도, 하지 않을 수도 있다. 구현1 - 정적 팩토리 메.. 2020. 7. 15.
[java] 가비지 컬렉션 DZone의 Java Memory Management 포스팅 YABOONG님의 자바 메모리 관리 - 가비지 컬렉션 포스팅 네이버 D2의 Java Reference와 GC 포스팅 PreamTree님의 가비지 컬렉션 소개 포스팅을 읽고 학습한 내용을 정리한 글입니다. 가비지 컬렉션 프로세스의 이해 스택 변수로부터 참조된 타입에 따라서, 힙의 객체들은 가비지 컬렉션이 적용되는 타이밍이 다르다. 예컨대 해당 사진에서 붉은색 객체들은 가비지 컬렉터에 의해 회수된다 (eligible to be collected) 스택 변수로부터 Strong Referenced되고 있었지만, 참조가 사라져 더 이상 접근할 수 없는 객체들이 그렇다. 가바지 컬렉션 프로세스의 특징 1. Java에 의해 자동으로 시작되며, 가비지 컬렉션.. 2020. 7. 5.
[java] Stack & Heap과 Reference의 개념 YABOONG 님의 자바 메모리 - 스택 & 힙 포스팅과 DZone의 Java Memory Mangement 포스팅을 학습한 내용을 정리한 글입니다. 자바 메모리 관리 자바는 백그라운드에서 garbage collector로 사용되지 않는 객체를 청소하며 메모리 관리를 자동으로 해준다. 그렇지만 언제나 완벽할 수는 없어서, 사용하지 않는 객체가 청소되지 않을 수도 있다. 따라서 최적화를 위해서, 메모리 누수를 해결하기 위해서 자바 메모리가 어떻게 사용되는지 알아야만 한다. 자바의 대략적인 메모리 구조는 그림과 같다. 크게 두 부분의 파트 : stack & heap으로 나누어져 있으며, 실제로 heap의 크기가 stack보다 훨씬 커지게 된다. 1. 값 자체를 가지며 stack memory을 차지하는 pri.. 2020. 6. 28.