개념 공부25 [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. [DBMS] 트랜잭션 격리 레벨(isolation level) 트랜잭션 격리 레벨이란?트랜잭션 격리 레벨(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것입니다.즉 다르게 말하면 ⭐️여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것입니다.트랜잭션의 격리 수준에는 아래 4가지가 있습니다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE아래로 갈수록 트랜잭션 간의 고립 정도가 높아지고 성능이 떨어집니다.일반적으로 READ COMMITED나 REPEATABLE READ 중 하나를 사용한다고 합니다.(대표적으로 mysql, mariadb는 REPEATABLE.. 2024. 5. 18. [Spring MVC] Spring MVC 구조와 DispatcherServlet Spring MVC의 구조와 그 핵심인 DispatcherServlet에 대해 알아봅시다.MVC란MVC란 Model, View, Controller의 약자로, 애플리케이션 개발 영역을 각각 Model, View, Controller로 나누어 개발하는 디자인 패턴입니다.MVC 패턴 도입 전에는 비즈니스 로직과 뷰를 렌더링 하는 부분 등의 코드가 모두 한 jsp 파일에 있었는데, MVC 패턴을 도입한 이후에는 UI 영역과 도메인(비즈니스 로직) 영역이 분리 되어 서로에게 영향을 쥐 않으면서 개발과 유지 보수가 가능하게 되었다.Model(모델)Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 합니다.처리한 작업의 결과 데이터를 클라이언트에게 응답으로.. 2024. 5. 18. [Java / Web] 서블릿과 서블릿 컨테이너, 톰캣의 동작 서블릿서블릿이란 클라이언트의 요청을 처리하고 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다.즉 서블릿은 클라이언트가 어떠한 요청을 하면 그 요청을 받고 그에 대한 응답을 전송해주는 역할을 하는 자바 프로그램입니다.서블릿의 특징클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트입니다.html을 사용하여 요청에 응답합니다.MVC 패턴에서 Controller로 이용됩니다.Servlet은 javax.servlet.Servlet을 최상위 인터페이스로 가집니다.HTTP 프로토콜 서비스를 지원하는 java.servlet.http.HttpServlet 클래스를 상속받습니다.html을 변경하면 Servlet을 재컴파일해야하는 단점이 있습니다.서블릿의 동작 방식.. 2024. 5. 16. 이전 1 2 3 4 5 다음