전체 글

후기🦊

맥북 m2 크롬 구글 검색시 한글깨짐 오류 해결법

일단 지금 컴퓨터는 맥북 m2 pro 모델을 사용중이다 직업이 개발자 이기에 구글에 검색을 해야 할 일이 정말 많은데 한글 검색만 하면 한글이 자꾸 깨지는 것이다. (10번 검색시 2번정도는 깨지는듯하다) 아무리 검색을 해도, 해결법이 나오지 않고,, 그냥 거의 1년째 깨질때마다 깨진 글짜 지우고 다시 검색하고 반복했다. 처음에는 해결법이 없는줄 알고, 그냥 영어로 검색하거나 해탈한채로 살아왔다. 그런데 이제 드디어 방법을 찾았다!! 방법은 바로바로!! 구름 입력기 원래 맥북 한영전환 문제 때문에 karabiner 를 항상 쓰고 있었는데, 최근 우연히 어떤 글을 보다가 구름 입력기를 사용하니 한글 씹힘 문제와 크롬 글자깨짐 문제가 사라졌다는 댓글을 보고 바로 적용해보았다. 구름입력기 맥북 설치방법도 아직..

BackEnd🐝/Spring🎃

[JPA] 기본 키 생성 전략(IDENTITY, SEQUENCE, TABLE)

기본 키 할당 전략 JPA가 제공하는 DB 기본 키 할당 전략은 직접 할당 방식, 자동 생성 방식 두 가지이다. 이 중 직접 할당 방식은 Application에서 기본 키를 직접 할당하는 방식이다. 자동 생성 방식은 대리 키를 사용하는 방식으로 IDENTITY, SEQUENCE, TABLE 네 가지가 있다. 해당 방식들은 사용하는 DB에 의존한다. MySQL은 IDENTITY 사용, Oracle은 SEQUENCE 사용 직접 할당 방식 직접 할당 방식을 사용할 경우 Entity를 생성할 때 Key Column에 @Id만 사용해 주어도 된다. @Id private long id; @Id가 적용 가능한 Java Type은 아래와 같다. Java 기본형(int, double, long ...) Java Wrap..

BackEnd🐝/Spring🎃

Spring Boot 테스트 @DataJpaTest로 발생하는 데이터베이스 오류 해결하기

스프링 프레임워크에서 데이터베이스 관련 테스트를 진행할 때, 간혹 org.hibernate.exception.SQLGrammarException 오류가 나와서 당황할 수 있다. 그리고 해당 내용에 대한 해결과정이 블로그들에 제대로 나와있지 않아 많이 고생을 했다.. 그 배경 내용에 대해 같이 공부해면서 오류에 대해 파악해보자! 이 오류는 데이터베이스에 필요한 시퀀스나 테이블이 존재하지 않을 때 주로 발생하는데 특히, @DataJpaTest를 사용하여 JPA 구성 요소를 테스트하는 경우, 테스트 환경 설정이 올바르게 이루어지지 않았을 때 이러한 문제가 발생한다. 우선 @DataJpaTest 에대해 알아보도록 해보자. DataJpaTest란? @DataJpaTest는 Spring Boot에서 JPA 관련 구..

후기🦊

[Intellij] Intellij 인텔리제이 버전 업데이트 하는방법 간단 (삭제후 재설치 x)

1. 인텔리 J에서 새로운 버전을 업데이트 하라는 메시지가 올 때가 있다. 그때 업데이트 도중 화면을 꺼서 실패했거나, 2.인텔리 J 에서 항상 최신 버전을 이용하고 싶은 사람이 있다. 3. 대부분 블로그들처럼 Intellij 최신 버전 이용하려면 삭제하고 다시 다운로드 받아야한다는게 상식적으로 이해가 안된다. 위에 해당하는 분들은 이 글을 좌시하지 마십시오. 간단합니다. (바쁘신 분은 제일 첫번째 사진만 봐도 이해하실꺼같습니다.) Intellij IDEA 마크 에서 Check for Updates 를 클릭합니다. (Settings 있는곳) 눌러주면 우측 하단에 Update가 뜨는 것이 보이는데, 이걸 눌러주면 다음과 같이 업데이트 창이 뜨는데 Update and Restart를 눌러주면 인텔리 제이가 ..

BackEnd🐝/Spring🎃

SPRING JPA의 영속성 컨텍스트

영속성 관리에서 가장 중요한 것은 2가지이다. 객체와 관계형 데이터베이스간의 매핑 영속성 컨텍스트 ( JPA 내부 동작 ) EntityManagerFactory와 EntityManager 클라이언트의 요청이 올때 마다 ( 즉, thread가 하나씩 생성될 때마다 ) EntityManager를 생성한다. EntityManager는 내부적으로 DB 커넥션 풀을 사용해서 DB에 접근한다. EntityManagerFactory JPA는 EntityManagerFactory를 만들어야 한다. 애플리케이션이 로딩되는 시점에 DB당 딱 하나만 생성해야 한다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("emf"); 그리고 WAS가 종료되는 시..

BackEnd🐝/Spring🎃

Java에서 데이터 페이징 처리 방법 비교: JPQL, Querydsl, Spring Data JPA

들어가며 JPQL, Querydsl, 그리고 Spring Data JPA 모두 다양한 페이징 처리 방법이 있는데 이번에 이 부분을 따로 정리해서 나중에 적절한 페이징 처리를 쓸 수 있게 정리해보았다. JPQL 페이징 처리 JPQL(Java Persistence Query Language)는 JPA를 사용하여 데이터베이스를 질의하는 언어입니다. 페이징 처리를 위해서는 EntityManager를 사용하여 직접 쿼리를 작성하고, setFirstResult와 setMaxResults 메소드를 통해 결과의 범위를 지정합니다. String jpql = "SELECT m FROM Member m ORDER BY m.name"; Query query = em.createQuery(jpql); query.setFirst..

BackEnd🐝/Spring🎃

[JPA] 에러 Attempt to recreate a file for type ...

QueryDSL을 사용하는 프로젝트에서 빌드 과정 중에 자주 발생하는 에러인데 정리해서 다음에는 바로 수정할 수 있도록 하겠습니다. 오류 상황 QueryDSL을 사용하여 엔티티에 대한 Q타입 클래스 파일들을 자동 생성하는 과정에서, 이미 생성된 Q타입 클래스 파일을 다시 생성하려 할 때 발생하는 오류입니다. 오류 메시지는 다음과 같습니다: Attempt to recreate a file for type org.jake.spring.entity.QAnster Attempt to recreate a file for type org.jake.spring.entity.QMember 이는 QAnster와 QMember 같은 Q객체 파일들이 이미 생성되었는데, 빌드 과정에서 이 파일들을 다시 생성하려고 하면서 발생..

BackEnd🐝/Spring🎃

[Spring] 트랜잭션 어노테이션(@Transaction)에 대해서 간단한 정리

트랜잭션 관리는 데이터베이스의 일관성을 유지하기 위해 필수적인 과정입니다. 특히, Spring Framework와 같은 현대적인 애플리케이션 개발 환경에서는 트랜잭션을 효율적으로 관리할 수 있는 다양한 도구와 어노테이션을 제공합니다. 이번 글에서는 트랜잭션의 기본 개념과 Spring에서 @Transactional 어노테이션을 사용한 일반적인 예제를 다룹니다. 트랜잭션이란? 트랜잭션은 데이터베이스의 상태를 변화시키는 하나 이상의 연산을 하나의 작업 단위로 묶는 것을 의미합니다. 이는 모든 연산이 성공적으로 완료되거나, 하나라도 실패할 경우 모든 변경사항이 취소되어야 함을 보장합니다(All or Nothing). 이를 통해 데이터의 일관성과 정확성을 유지할 수 있습니다. Spring의 @Transaction..

Jakezo
Jakezo.dev