본문 바로가기

java

(4)
JAVA memory 관리 Java 를 사용해서 애플리케이션을 운영하다보면 메모리 관리가 중요한 부분이라는건 모두가 알게된다.  지금까지 내가 알고 있던 지식들 그리고 잘 몰랐던 부분들을 한번에 정리를 하면서 java에서 메모리가 어떻게 할당되고 사용되고 관리되어야하는지 정리하는 글을 써보았다.  JVM의 메모리 설정  java에서 메모리 설정을 주기 위한 옵션 자체는 여러가지가 있지만 가장 가장 기본적인 설정은 -Xms(최소 메모리)와 -Xmx(최대 메모리)이다 이전에는 -Xms(초기 할당 메모리)를 작게 설정하고, 애플리케이션이 필요할 때 -Xmx(최대 메모리)까지 점진적으로 늘리는 방식이 일반적이었다. 하지만 최근에는 -Xms와 -Xmx를 동일하게 설정하는 것이 더 권장되는 추세이다. (참고로 이 설정은 힙 메모리에 대한 설..
QueryDsl 이란 QueryDsl이란? Spring Boot에서 데이터를 처리할떄 보통 JPA를 많이 사용하는데 서비스 로직중에 복잡한 쿼리를 구현할때는 어려움이 있는데 가독성도 떨어지고, jpql을 사용한다고 하더라도 타입 안정성이 떨어진다. 그럴때 보통 많이 거론되는 대안이 QueryDsl이다.  QueryDSL은 JPA를 더 효율적이고 직관적으로 사용할 수 있도록 도와주는 라이브러리다.JPA Entity와 매핑된 QClass라는 객체를 사용해 쿼리를 작성하며, 이를 통해 직관적이고 타입 안전한 동적 쿼리를 구현할 수 있습니다.특히, QueryDSL은 타입 안전성을 보장하기 때문에, 쿼리 작성 시 컴파일 단계에서 오류를 발견할 수 있어 안정적인 코드 작성이 가능합니다. 또한, 복잡한 JPQL이나 SQL을 코드로 대체하..
JPA 탐구 JPA 정말 잘 알고 사용하고 있을까?실무를 하고 Spring boot를 사용하면서 정말 많이 JPA를 사용해왔었다. 하지만 그때 그때 필요한 기능만 검색하면서 사용해서 깊이 있는 지식은 부족한것 같다는 생각이 들었다. 자주 사용하는 기술이니만큼 제대로 알고 사용하고 싶었기 때문에 기술 정리를 시작하게 되었다.  JPA란? 무엇일까. JPA(Java persistence API)는 자바 진영에서 ORM기술 표준으로 사용되는 인터페이스의 모음이다. JPA자체는.실제적으로 구현된 기능이 아니기 때문에 Hibernate같은 구현체를 통해서 기능으로서 동작하게 된다.  ORM(object-relational mapping)이란? Class 와 RDB 의 테이블을 연결한다는 뜻이다, 어플리케이션의 객체를 자동으로..
Spring AI 사용 하기 Chat gpt와 같은 생성형 AI를 활용해서 기능을 구현하는 작업 시도하는 와중에 스프링에서 Spring AI 기술이 개발되고 있다는 것을 알고 직접 사용해보고 해당 사용에 대한 경험을 남기는 기록을 하려고 한다!  생성형 AI를 통해서 처음 개발을 하려고 했을때는 직접 API를 호출하는 방법을 사용하려고 했었다. chat gpt의 경우도 api를 사용등록하는 페이지에 들어가면 url과 accesstoken 등을 받을 수 있고 다른 일반적인 외부 api를 사용하는것 처럼 사용할 수 있었다. 그러나 결과적으로는 응답값 자체는 단순하게 string 의 message 로 오기 때문에 해당 응답을 어떻게 정제할지 그리고 요청을 어떻게 보내야할지등을 고민해야하고 어떠한 업체의 생성형 ai를 사용하느냐에 따라서 ..