728x90

All 193

버퍼링(Buffering)과 스트림(Stream)

버퍼링(Buffering)과 스트림(Stream)은 데이터를 효율적으로 처리하기 위한 개념입니다. 버퍼링(Buffering) 효율성 메모리 영역인 버퍼(Buffer)는 데이터를 일시적으로 저장하는 임시 공간입니다. 버퍼는 데이터를 한 곳에서 다른 곳으로 전송하는 동안에 사용되며, 데이터를 효율적으로 처리하기 위한 중간 저장소 역할을 합니다. 버퍼의 주요 목적은 데이터 전송의 효율성을 높이는 것입니다. 입출력 작업이나 네트워크 통신 등의 데이터 전송은 데이터를 작은 단위로 나누어 전송하는 것이 일반적입니다. 이렇게 작은 단위로 나누어 전송하면, 데이터를 한 번에 읽거나 쓰는 것보다 성능이 향상될 수 있습니다. 버퍼를 사용하면 작은 데이터 단위를 모아서 한 번에 처리할 수 있습니다. 데이터를 일시적으로 버퍼..

Language/Java 2023.07.01

DB 격리 수준(ACID > Isolation)

ACID Atomicity (원자성) 트랜잭션은 원자적(Atomic) 단위로 처리되어야 합니다. 이는 트랜잭션 내의 모든 작업이 전부 성공하거나 전부 실패하는 것을 의미합니다. 트랜잭션은 모두 실행되거나 전혀 실행되지 않아야 하며, 중간 단계의 부분적인 성공 또는 실패가 허용되지 않습니다. Consistency (일관성) 트랜잭션이 실행 전과 실행 후의 데이터베이스 상태를 일관성 있게 유지해야 합니다. 트랜잭션은 미리 정의된 규칙과 제약조건을 준수하여 데이터베이스의 무결성을 유지해야 합니다. Isolation (격리성) 동시에 여러 개의 트랜잭션이 실행될 때, 각각의 트랜잭션은 다른 트랜잭션으로부터 독립되어야 합니다. 격리성은 한 트랜잭션이 다른 트랜잭션에 의해 영향을 받지 않도록 하는 것을 의미합니다...

DB 2023.06.15

JPA 기본 log사용하기

JPA 쿼리 로그 출력 설정하기 JPA를 사용할 때, 개발 중에 쿼리 로그를 확인하면서 디버깅하는 것은 매우 유용한 기능입니다. MyBatis와는 달리 JPA는 기본적으로 쿼리 로그에 파라미터를 대체하여 출력하지 않습니다. 그러나 몇 가지 설정을 통해 보기 편하게 로그를 구성할 수 있습니다. 이번 글에서는 완벽하게 구성된 JPA 쿼리 로그를 확인하는 방법을 알아보겠습니다. 완성된 Query 확인 하는법 Show-JPA-Query-Log application.yml 파일 수정하기 아래와 같이 application.yml 파일을 수정하여 JPA 쿼리 로그 출력을 설정할 수 있습니다: 좀더 다양한 설정을 테스트 해보고 더 최상의 환경설정이 있는지 연구해 보겠습니다. spring: jpa: show-sql: t..

BackEnd/Spring Boot 2023.06.11

JPA Entity여러 경우 적용_1

소개 JPA-적응기1에 작성된 내용을 기반으로 작성하였으며 이후 총 정리 및 사용 후기 등을 JPA-적응기2에 올릴 생각입니다. 또한 추후에 어떤 기술을 추가로 사용 해볼것인지도 같이 작성하겠습니다. 개발 환경 개발 소개 : JPA-적응기1 ERD : JPA-e-commerce GitHub : jpa-e-commerce DDL과 Entity 비교 예시들은 기본 Entity, 공통 Entity, 멀티키 Entity 만 작성 되어 있고 그외에는 Github 로 들어가서 확인해 주시면 감사하겠습니다. common 공통으로 들어가는 Column은 상속 받아 사용한다. 다른 방법으로 @Embeddable 을 사용하여 변수 처럼 사용 할수있다. Entity // 다른 Entity에서 사용시 "extends Comm..

BackEnd/Spring Boot 2023.06.11

JPA @Column 옵션

@Column 옵션 name (String) 데이터베이스 테이블에서 열의 이름을 지정합니다. 기본적으로 필드의 이름과 동일하게 매핑됩니다. unique (boolean) 해당 열의 값이 고유해야 하는지 여부를 지정합니다. 기본값은 false입니다. nullable (boolean) 해당 열의 값이 null 허용 여부를 지정합니다. 기본값은 true입니다. length (int) 문자열 열의 최대 길이를 지정합니다. 문자열 타입에만 적용됩니다. precision (int) 숫자 열의 전체 자릿수를 지정합니다. 숫자 타입에만 적용됩니다. scale (int) 숫자 열의 소수점 자릿수를 지정합니다. 숫자 타입에만 적용됩니다. insertable (boolean) 해당 열이 INSERT 작업에 참여해야 하는지 ..

BackEnd/Spring Boot 2023.06.10

JVM 메모리 구조

소개 JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신입니다. 이 블로그 포스트에서는 JVM의 메모리 영역 구조와 각 영역의 역할에 대해 자세히 알아보겠습니다. 메서드 영역 (Method Area 또는 Class Area) JVM이 시작될 때 생성되며, 모든 스레드가 공유하는 영역입니다. 클래스 파일의 정보, 상수, 메서드 코드 등이 저장됩니다. 클래스 로더에 의해 로딩된 클래스들의 정보와 정적 변수(static variables)가 할당됩니다. PermGen 영역이라고도 불리며, Java 7 이전 버전에서는 PermGen 영역에 존재했지만, Java 8부터는 Metaspace 영역으로 대체되었습니다. 힙 (Heap) 객체 인스턴스와 배열이 동적으로 할당되는 영역입..

Language/Java 2023.06.10

JPA 테스트 환경 구축

테스트 환경 구축 JPA를 사용하더라도 Controller, Service를 테스트를 해야 하고 이를 위해 테스트 환경을 구축 하였고 이를 정리한 내용입니다. 테스트 구축 순서 테스트 구축시 환경 프로젝트 구조 src └───test ├───java │ └───com │ └───jpa │ └───test │ └───service │ ServiceTest.java │ └───resources application-test.yml Dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-..

BackEnd/Spring Boot 2023.06.10
728x90