728x90

개발 287

[Java] Checked Exception, Unchecked Exception 차이

Checked Exception, Unchecked Exception 차이를 알아보자    1. Checked Exception Checked Exception은 컴파일 시점에 확인되며, 반드시 처리해야 하는 예외.자바에서는 IOException, SQLException 등이 이에 속한다.Checked Exception을 유발하는 메서드를 호출하는 경우, 메서드 시그니처에 throws를 사용하여 호출자에게 예외를 위임하거나 메서드 내에서 try-catch를 사용하여 해당 예외를 반드시 처리해야한다. Checked Exception은 외부 환경과의 상호작용에서 발생할 가능성이 높은 예외에 적합.예를 들어, 파일 입출력, 네트워크 통신 등에서 발생할 수 있는 예외는 Checked Exception으로 처리하..

[Java] 일급 컬렉션 알아보기

일급 컬렉션 알아보자   1. 일급 컬렉션이란?일급 컬렉션(First-Class Collection)은 하나의 컬렉션을 감싸는 클래스를 만들고, 해당 클래스에서 컬렉션과 관련된 비즈니스 로직을 관리하는 패턴    2. 광고   3. 예시아래 코드 중에서 Order의 List 자료구조를 감싼 Orders가 일급 컬렉션의 예시// 일급 컬렉션public class Orders { private final List orders; public Orders(List orders) { validate(orders); // 검증 수행 ... } public void add(Order order) { if (order == null) { t..

[JPA] JPA의 N+1 문제 알아보기

N+1에 대해서 알아보자  - 지난 번 만났던 N+1 문제[JPA] N+1 해결하기 [JPA] N+1 해결하기N+1은 한 번의 쿼리를 요청했는데 여러 번 쿼리가 요청되는 현상을 말한다.(1+N) Book 도메인에 아래와 같이 연관관계가 있었고, (각각 양방향 연관관계) @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Cdevhooney.tistory.com     - 개념N + 1 문제는 연관 관계가 설정된 엔티티를 조회할 경우에, 조회된 데이터 개수(N)만큼 연관관계의 조회 쿼리가 추가로 발생하는 현상.예를 들어, 블로그 게시글과 댓글이 있는 경우, 게시글을 조회한 후 각 게시글마다 댓글을 조회하기 위해 추가 쿼리가 발생한다면 N + 1 문제가 발생..

[JPA] 엔티티 매니저 알아보기

엔티티 매니저에 대해서 알아보자 !   1. 영속성 컨텍스트엔티티 매니저에 대해 알기 위해선 영속성 컨텍스트에 대해 알아야 한다. 영속성 컨텍스트는 엔티티를 영구 저장하는 환경으로 1차 캐싱, 쓰기 지연, 변경 감지를 통해 영속 로직을 효율적으로 할 수 있게 해준다. 이러한 효율적인 영속 로직 수행을 위해서 엔티티는 영속성 컨텍스트에 관리되어야 한다.     2. 엔티티 매니저영속성 컨텍스트를 도와주는 것이 바로 엔티티 매니저이다. 엔티티 매니저는 엔티티의 상태를 변경하고, 영속성 컨텍스트와 상호작용함으로써 영속 로직을 수행하는 역할을 가지고 있다.  - 역할엔티티는 영속성 컨텍스트와 관련하여 4가지 상태(비영속, 영속, 준영속, 삭제)를 가질 수 있다. 엔티티 매니저는 persist, merge, re..

[JPA] JPA의 ddl-auto 옵션 알아보기

JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용하는 지 알아보자   ddl-auto 옵션은 스프링 부트 애플리케이션에서 Hibernate와 같은 JPA 구현체를 사용할 때 데이터베이스 스키마 관리를 제어하는 설정이다. 이 옵션은 application.properties 또는 application.yml 파일에서 설정할 수 있으며, 다양한 값에 따라 데이터베이스 스키마에 대해 다른 동작을 수행한다. ddl-auto 옵션에는 none, validate, update, create, create-drop 등이 존재한다 . 1. none데이터베이스 스키마와 관련된 어떠한 작업도 수행하지 않는다.데이터베이스 스키마를 수동으로 관리하고 싶을 때 유용하며, 프로덕션 환경에서 주로 사용된다...

[JPA] Spring Data JPA에서 새로운 Entity 판단하는 방법

Spring Data JPA에서 새로운 Entity를 저장할 때 public interface SaveTestRepository extends JpaRepository {} save @Transactional @Override public S save(S entity) { Assert.notNull(entity, "Entity must not be null."); if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } } Repository의 save 메소드로 저장한다.   저장할 때 Entity가 insert 인지 update 인지 확인하는 로..

[Python] append 와 extend 차이

파이썬에서 배열을 다루다가 append와 extend의 차이가 궁금해져서 공부해봤다.     1. append 용도: 리스트의 끝에 단일 요소를 추가.인자: 추가할 요소 하나(리스트, 문자열, 숫자 등).결과: 리스트의 길이가 1만큼 증가하며, 추가한 요소가 리스트의 한 항목으로 추가 예제# 예제 리스트my_list = [1, 2, 3]# append() 사용my_list.append(4)print(my_list) # 출력: [1, 2, 3, 4]# append()로 리스트를 추가할 경우my_list.append([5, 6])print(my_list) # 출력: [1, 2, 3, 4, [5, 6]] (리스트가 한 항목으로 추가됨)    2. 광고    3. extend 용도: 리스트의 끝에 여러 요소..

개발/Python 2024.11.01

cannot inspect work tree in repository with unmerged files 에러 해결

컴퓨터를 바꾸고 D드라이브에 있던 프로젝트를 git과 연결시킨 후 업데이트를 하려는데 에러가 발생했다  detected dubious ownership in repository at 'D:/~~~' 'D:/~~~' is owned by: (inconvertible) (S-1-5-21-2995346877-315592488-2163824232-1001) but the current user is: ~~~~ (S-1-5-21-211324981-537285231-2465116909-1001) To add an exception for this directory, call: git config --global --add safe.directory D:/~~~      에러 발생의 이유는 디렉터리의 소유자와 현재 ..

개발/ETC 2024.10.25

[Flutter] 플러터 웹뷰 환경 파일 다운로드 구현하기

웹뷰 환경에서 파일 다운로드 구현하기!      먼저 웹뷰 라이브러리를 사용해야 한다. 마지막 포스팅에서 사용했던 웹뷰 사용 기준으로 한다. [Flutter] 플러터 웹뷰 사용하기 (2) (tistory.com) [Flutter] 플러터 웹뷰 사용하기 (2)플러터 웹뷰 구현하기 !  지난번에 사용한 라이브러리는 rtc가 허용이 안되어서 마이크를 사용해야하는데 그 기능이 동작하지 않았다. 그래서 다른 웹뷰 라이브러리를 사용했는데, 이건  fluttdevhooney.tistory.com    광고     1. 라이브러리 설치 flutter pub add flutter_downloader   2. 경로 가져와주는 라이브러리 설치 flutter pub add path_provider   3. 로딩바 상태바 라이..

728x90