본문 바로가기

개념 공부16

[DBMS] 트랜잭션(Transaction)이란 트랜잭션쪼갤 수 있는 업무의 최소 단위데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위상태를 변화시킨다는 것은 SQL 쿼리문을 통해 DB에 접근하는 것이다.위에 써놓은 것을 좀더 풀어서 설명하면 작업단위란 쪼갤 수 있는 업무의 최소 단위를 의미하는데, 그 작업 단위는 여러 개의 SQL 쿼리문을 사람이 정하는 기준에 따라 묶어놓은 것이다.📌 Ex)게시판을 구현한다고 가정하자.게시판에 글을 올리고, 다시 게시판 메인으로 돌아오면 내가 올린 글을 볼 수 있는 기능을 구현하고 싶다.그러면 이 작업을 위해서 필요한 SQL 작업은 아래와 같다.올리기 버튼을 누른다. : INSERT문을 사용해서 사용자가 올리려고 하는 게시글 데이터를 DB에 저장한다.게시판 새로 구성: SELECT 문으로 최신 정보를 유지한.. 2024. 9. 2.
[Java] Reflection을 활용해서 검증 어노테이션 구현하기 ReflectionReflection이란?컴파일 타임이 아닌 런타임에 클래스, 메서드, 필드 등의 정보를 조회하고 검사할 수 있도록 하는 자바의 기Reflection의 주요 기능클래스 정보(클래스 이름, 메서드, 필드 등)을 런타임에 알 수 있음런타임에 해당 클래스의 객체 생성 가능런타임에 메서드 호출하능런타임에 필드에 접근하고 수정할 수 있음예를 들어 JPA 기술을 쓰면, DB에서 값을 찾아오고 그 값으로 객체를 만들어 주는데 이때 리플렉션으로 private 변수에 직접 접근하여 값을 할당합니다.객체와 Json 사이의 직렬화/역직렬화를 도와주는 Jackson 라이브러리도 리플렉션이라는 기능을 활용합니다.Reflection 활용 예제아래와 같은 Calculator 클래스를 만들고, 리플렉션의 여러 기능들.. 2024. 6. 20.
[JPA 개념] 연관 관계 매핑 단방향 연관 관계 매핑MEMBER라는 테이블과 TEAM이라는 테이블이 있다고 하겠습니다.한 멤버는 한 팀에 속할 수 있고, 한 팀에는 여러명의 멤버가 속해있습니다.따라서 MEMBER와 TEAM은 N:1 관계입니다.Member.javaimport jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.Id;import lombok.Getter;import lombok.Setter;@Getter@Setter@Entitypublic class Member { @Id @GeneratedValue @Column(name = "MEMB.. 2024. 6. 6.
[JPA 개념] JPA의 기본 어노테이션 알아보기 @Entity@Entity가 분은 클래스는 JPA가 관리, 엔티티라고 합니다.JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수입니다.주의할 점!엔티티 클래스에는 기본 생성자가 필수입니다. (파라미터가 없는 public 또는 protected 생성자)final 클래스, enum, interface, inner 클래스에는 @Entity 어노테이션 사용이 불가능합니다.저장할 필드에 final 키워드 사용이 불가능합니다.@Table@Table 어노테이션은 엔티티와 매핑할 테이블을 지정합니다.데이터베이스 스키마 자동 생성 기능hibernate.hbm2ddl.auto속성create: 기존 테이블을 삭제 후 다시 생성합니다. (DROP + CREATE)create-drop: create와 같으나 종료 시.. 2024. 6. 6.
[Beyond SW / 7일차 복습 - 2] 정규형, DB Dump 실습 정규화정규화란 관계형 스키마를 더 좋은 구조로 정제해 나가는 과정입니다.이 포스트에서는 1, 2, 3차 정규형에 대해서만 다뤄보고자 합니다.  1차 정규화(도메인 분해)모든 컬럼이 하나의 값만 갖도록 데이터베이스가 설계되어 있다면, 그 설계는 1차 정규형이라고 합니다.즉 아래와 같은 설계는 1차 정규화가 되지 않은 것입니다.사진 출처: https://www.youtube.com/watch?v=FYDHJbIwm5Y이런 경우, topic 테이블과 tag 테이블을 따로 분리하고, topic과 tag 사이에 정션 테이블(교차 테이블)을 추가해줌으로써 하나의 컬럼이 하나의 값만 가지도록 풀어줄 수 있습니다.  2차 정규화(부분 종속 제거)기본키가 아닌 모든 속성이 기본키에 완전 함수 종속된 상태를 의미합니다.즉,.. 2024. 5. 26.
[Beyond SW / 7일차 복습 - 1] 데이터모델링 데이터모델링데이터 모델링이란 구축할 DB 구조를 약속된 표기법에 의해 표현하고 설계해 나가는 과정을 의미합니다.데이터모델링의 단계개념적 데이터 모델링논리적 데이터 모델링물리적 데이터 모델링개념적 데이터 모델링다이어그램을 통해 데이터베이스 구조를 시각화이 단계는 추상화된 DB 구조를 그리는 것이므로 생략이 가능합니다.사각형: 엔터티원: 속성마름모: 관계논리적 데이터 모델링구체적으로 데이터베이스를 설계합니다.각 데이터의 타입, 관계, key 등을 지정합니다.erd cloud, draw.io, mysql 워크벤치 등의 툴을 써서 ERD를 그릴 수 있습니다.엔터티: (엄밀히 말하면 다르지만,) DB의 한 테이블을 엔터티라고 생각하면 됩니다.ERD: 엔터티 간의 관계를 표현하는 다이어그램입니다.DB 설계에서 가장.. 2024. 5. 22.