본문 바로가기

TIL

(26)
📚 3/20(수) 내일배움캠프 Java-Spring 59일차 TIL - SpringData JPA Service에서 다른 Service를 의존하게 된다면? 📝  오늘의 학습 키워드 SpringData JPA - Service에서 다른 Service를 의존하게 된다면?    📍 Service에서 다른 Service의 메소드를 호출해서 사용하게 된다면?   서비스에서 다른 서비스의 메소드를 호출해서 사용하게 된다면 어떻게 될까? 팀 프로젝트 진행 중에 댓글 조회 기능에 대한 이야기를 나누다가 이 얘기 주제가 나왔다. 트렐로의 구조를 보면 '보드 > 칼럼 > 카드 > 댓글' 순으로 되어있다.     여기서 내가 생각한 방식은 '카드 단건 조회를 했을 때, 댓글이 리스트 형식으로 같이 보여야 하기 때문에 카드 도메인 서비스단에서 댓글 조회기능을 구현해야 하지 않을까?'였다. 그런데 다른 팀원은 댓글 조회이니 댓글 도메인 서비스단에서 조회 기능을 만들어서 ..
📚 3/15(금) 내일배움캠프 Java-Spring 56일차 TIL - SpringData JPA 오류 - The bean 'jpaAuditingHandler' could not be registered. A bean with that name has already been defined and overriding is disabled. 📝  오늘의 학습 키워드 SpringData JPA - 오류 해결하기    📍애플리케이션 실행 오류  JPA Auditing 기능을 구현하기 위해 JPAConfig 클래스에 @EnableJpaAuditing 어노테이션을 선언하고 애플리케이션을 실행했는데 오류가 터졌다.      The bean 'jpaAuditingHandler' could not be registered. A bean with that name has already been defined and overriding is disabled.      같은 이름의 빈이 이미 존재하고 있다고 해서 확인을 해보니 프로젝트를 생성했을 때 만들어지는 클래스에 이미 선언이 되어있었다.     JPAConfig 클래스의 @EnableJpaAud..
📚 3/14(목) 내일배움캠프 Java-Spring 55일차 TIL - SpringData JPA QueryDSL 📝  오늘의 학습 키워드 SpringData JPA - QueryDSL    📍 QueryDSL이란?   QueryDSL은 오픈소스 프로젝트이다. SQL을 직접 문자열로 작성하는 대신, QueryDSL을 사용하여 쿼리를 작성할 수 있다. Maven이나 Gradle과 같은 의존성 관리 도구를 통해 프로젝트에 추가하여 사용할 수 있다.- 타입 안정성(Type Safety) Java의 타입 시스템을 활용하여 쿼리를 작성하므로 오타나 잘못된 필드명을 사용하는 등의 실수를 컴파일 시간에 잡아낼 수 있다.- 가독성과 유지보수성 SQL 쿼리 문자열을 사용하는 것보다 자바 코드로 쿼리를 작성하므로 가독성이 향상되고, 코드의 유지보수가 쉬워진다.- 동적 쿼리 작성 고정된 SQL문이 아닌 조건에 맞게 동적으로 쿼리를..
📚 3/13(수) 내일배움캠프 Java-Spring 54일차 TIL - SpringData JPA 영속성 컨텍스트 📝  오늘의 학습 키워드 SpringData JPA - 영속성 컨텍스트      📍 영속성 컨텍스트란?   영속성 컨텍스트(Persistence Context)는 JPA(Java Persistence API)에서 핵심적인 개념 중 하나로, 엔티티(Entity) 객체를 관리하는 환경을 의미한다. 영속성 컨텍스트는 엔티티의 상태를 추적하고 관리하여 데이터베이스와의 상호작용을 담당한다. 엔티티를 영구 저장하는 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. 📍 엔티티(Entity)란?  엔티티란 데이터베이스의 테이블에 대응하는 클래스라고 생각하면 된다. @Entity가 붙은 클래스는 JPA에서 관리하며 이를 엔티티라고 한다. 클래스 자체나 생성한 인스턴스도 엔티티라고 부른다.📍 엔티티 매..
📚 3/12(화) 내일배움캠프 Java-Spring 53일차 TIL - SpringData JPA Projection 📝  오늘의 학습 키워드 SpringData JPA - Projection    📍 Projection이란?   Spring Data JPA 프로젝션 데이터베이스에서 필요한 필드만을 선택적으로 조회하여 쿼리 성능을 최적화하고, 필요한 데이터만을 반환함으로써 불필요한 자원 낭비를 방지할 수 있다. 엔티티의 일부 속성만을 선택적으로 조회할 수 있으며, 이는 엔티티의 특정 필드나 연산 결과를 직접 조회하여 사용하는 등의 상황에서 유용하게 쓰인다. 프로젝션은 다양한 방법으로 구현할 수 있다.1. 인터페이스 기반 프로젝션 : 인터페이스를 정의하고 해당 인터페이스의 메서드에 조회할 필드를 선언하여 사용한다.public interface UserNameProjection { String getUserna..
📚 3/11(월) 내일배움캠프 Java-Spring 52일차 TIL - SpringData JPA 다이내믹 사용하기 / @DynamicInsert와 @DynamicUpdate란? 📝  오늘의 학습 키워드 SpringData JPA - @DynamicInsertSpringData JPA - @DynamicUpdate    📍 @DynamicInsert, @DynamicUpdate란?   @DynamicInsert와 @DynamicUpdate는 Hibernate에서 제공하는 주석(Annotation)으로, 엔터티의 저장 및 수정 동작에 대한 성능 및 최적화를 위해 사용된다. JPA에서 엔티티의 저장(insert) 및 업데이트(update) 시 엔티티의 변화가 있는 컬럼에 대해서만 SQL을 실행하고, 변화가 없는 컬럼에 대해서는 실행하지 않는 기능을 제공한다. 필드가 많아질수록 성능의 차이가 더 많이 나타날 수 있다. @DynamicInsert : 엔티티를 데이터베이스에 삽입(..
📚 1/31(수) 내일배움캠프 Java-Spring 28일차 TIL - Spring MVC 패턴 📝 오늘의 학습 키워드Spring MVC 패턴    📍 Spring MVC 패턴이란?  MVC란 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나이다. 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리한다. 이렇게 소프트웨어를 구성하는 요소들을 분리함으로써 코드의 재사용성과 유지보수성을 높이고, 개발자들 간의 협업을 용이하게 한다. 따라서 소프트웨어를 개발할 때, MVC 패턴을 적용하여 구조를 잘 설계하는 것이 중요하다.    Model(모델)데이터와 비즈니스 로직을 담당한다.데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행한다.Controller를 제외하고 전부 Model이라고 볼 수 있다. V..
📚 1/30(화) 내일배움캠프 Java-Spring 27일차 TIL - 서버, 웹서버, 네트워크, HTTP 통신(2) 📝 오늘의 학습 키워드네트워크웹 서버HTTP 통신    📍 HTTP 통신의 구성 요소  HTTP에는 크게 다음과 같은 구성 요소가 존재한다. Method (호출/요청 방식)GET: CRUD 중 Read에 해당한다. 어떤 리소스를 조회할 때 사용된다.POST: CRUD 중 Create에 해당한다. 웹 서버에 데이터를 게시할 때 사용된다.PUT: CRUD 중 Update에 해당한다. 게시한 데이터를 전체 수정할 때 사용된다.PATCH: CRUD 중 Update에 해당한다. 게시한 데이터를 일부 수정할 때 사용된다.DELETE: CRUD 중 Delete에 해당한다. 게시한 데이터를 삭제할 때 사용된다. Header (추가 데이터. 메타 데이터)브라우저가 어떤 페이지를 원하는지요청받은 페이지를 찾았는지요청받..