개요JPA에서 가장 중요한 것을 뽑아본다면 "객체와 데이터베이스 테이블이 어떻게 매핑되는지를 이해하는 것"이라고 생각합니다.왜냐하면 JPA의 목적인 "객체 지향 프로그래밍과 데이터베이스 사이의 패러다임 불일치를 해결"이라는 것과 가장 직접적으로 연관되어 있기 때문입니다. 연관관계 정의 규칙연관관계를 매핑할 때는 다음의 3가지를 고려해서 매핑해야 합니다.방향 : 단방향, 양방향 ( 객체 참조 )연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 방향방향에는 단방향과 양방향이 있습니다. DB 테이블은 외래키(Foreign Key) 하나로 조인(Join)을 사용해서 양방향으로 쿼리가 가능하기 때문에 DB에는 방향의 개념..
기본키(Primary Key) 매핑 방법기본키를 매핑하기 위해서는 @Id, @GeneratedValue 두가지의 어노테이션을 사용하게 되는데, JPA에서 기본키를 매핑하는 방법은 2가지로 직접 할당과 자동 생성이 있습니다. 직접 할당은 @Id 어노테이션만 사용하여 데이터를 개발자가 직접 할당해 주는 것이고,자동 생성은 @Id, @GeneratedValue 모두 사용하여 원하는 키 생성 전략을 선택하는것 입니다. 직접 할당@Id 어노테이션만 사용하여 기본키를 정하고 값을 직접 할당하는 방법입니다.@Entitypublic class Member { @Id private Long id; /** 생략 **/ // getter, setter ~~}/** 생략 **/Member member = ..
객체(Object)와 테이블(Table) 매핑JPA에서 제일 중요한 2가지는 JPA의 동작 원리 또는 과정과 영속성 콘텍스트 즉, JPA 매커니즘적 측면과 객체(Object)와 테이블(Table)간에 어떻게 매핑을 하여 사용할것 인지 즉, JPA의 설계적 측면이 가장 중요하다고 합니다. 이번 포스팅에서는 JPA의 설계적인 측면(객체와 테이블 매핑)에 대하여 정리해보도록 하겠습니다. JPA의 매커니즘과 관련해서는 이전 포스팅을 참고해주세요. [Spring] JPA(Java Persistence API)란?JPA(Java Persistence API)란?JPA(Java persistence API)는 자바 진영에서 ORM(Object-Relational-Mapping) 기술 표준으로 사용되는 인터페이스의 모..
JPA란? [Spring] JPA(Java Persistence API)란?JPA(Java Persistence API)란?JPA(Java persistence API)는 자바 진영에서 ORM(Object-Relational-Mapping) 기술 표준으로 사용되는 인터페이스의 모음입니다. 그 말은 즉, 실제적으로 구현된것이 아니라 구현된 클래스h-1-y.tistory.com 개발환경IDE : STS4Java : 17Framework : SpringbootBuild Tool : MavenDatabase : H2 H2 DatabaseH2는 JAVA로 작성된 관계형 데이터베이스 관리 시스템입니다. H2 데이터베이스는 설치가 간편하고, 용량이 매우 가벼우며, 웹용 콘솔(쿼리툴)을 제공하여 로컬 환경이나 테스트 ..
JPA(Java Persistence API)란?JPA(Java persistence API)는 자바 진영에서 ORM(Object-Relational-Mapping) 기술 표준으로 사용되는 인터페이스의 모음입니다. 그 말은 즉, 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크입니다. JPA를 구현(구현체)한 대표적인 오픈소스로는 Hibernate가 있습니다. ORM(Object Relational Mapping)이란?ORM은 Object Relational Mapping의 약자로 객체와 데이터베이스의 관계를 매핑해주는 도구를 말합니다. 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구이며, 프로그래밍 언어의 객체와 관계형 데이터베이..
브라우저 렌더링(Browser Rendering)브라우저 렌더링이란 HTML, CSS, JavaScript등 개발자가 작성한 문서를 브라우저에서 그래픽 형태로 출력하는 과정을 말합니다. 즉, 클라이언트(사용자)에서 서버로부터 여러 파일을 받아 브라우저에 나타내는 과정을 말합니다. 렌더링 엔진렌더링 엔진은 HTML과 CSS를 파싱하여 화면에 표시하는 역할을 합니다. 렌더링 엔진은 브라우저마다 사용하는 렌더링 엔진이 각각 다르기 때문에, 모든 브라우저가 동일한 소스를 화면에 동일하게 그려주지 않고 엔진마다 읽을 수 있는 코드의 버전도 다릅니다. 렌더링 엔진 동작 과정렌더링 엔진은 HTML 문서를 파싱하여 DOM(Document Object Model) 트리를 만들고 CSS 문서를 파싱하여 CSSOM(CSS ..
웹 브라우저 (Web Browser)웹 브라우저는 웹 서버에서 양방향으로 통신을 하며 HTML 문서, 멀티미디어 등의 컨텐츠를 열람할 수 있게 해주는 GUI(Graphic User Interface)기반의 소프트웨어 프로그램입니다. 브라우저는 페이지를 다운로드하기 위해 응용 계층의 HTTP 프로토콜을 이용해 데이터를 송/수신합니다. 웹 브라우저 동작 원리브라우저는 사용자가 선택한 자원(Resource)을 서버에 요청(Request)하고, 서버로부터 받은 응답(Response)을 브라우저에 렌더링(Rendering)합니다.여기서 자원은 HTML 문서, PDF, 멀티미디어 등으로 여러 형태일 수 있으며, 자원의 주소는 URI(Uniform Resource Identifier)로 되어있습니다.1. 사용자브라우..
DispatcherServletDispatcherServlet의 Dispatcher는 "보내다"라는 뜻을 갖고 있습니다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있습니다. 이것을 보다 자세히 설명하자면, 클라이언트로부터 어떠한 요청이 오면 톰캣과 같은 서블릿 컨테이너가 요청을 받게 됩니다. 그리고 이 모든 요청을 프론트 컨트롤러인 DispatcherServlet이 가장 먼저 받게 됩니다. 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후 해당 요청을 처리해야 하는 컨트롤러를 찾아 작업을 위임합니다. 여기서 Front Controller(프론트 컨트롤..
MVC Pattern이란?MVC ( Model - View - Controller ) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. MVC 패턴은 애플리케이션의 개발 영역을 각각 Model, View, Controller로 구분하여 역할에 맞게 코드를 작성하고 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다. 이러한 "관심사 분리"는 더 나은 업무의 분리와 향상된 관리를 제공합니다. 이러한 MVC 패턴의 특징은 컴포넌트의 변경이 다른 컴포넌트에 영향을 미치지 않아 유지보수가 용이하고, 컴포넌트 간의 결합성이 낮아 프로그램 수정이 용이해 확장성이 뛰어납니다. ModelModel은 소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 ..
Framework란?Spring Framework를 알아보기 앞서 Framework의 의미에 대해 알아보겠습니다.사전적 의미로 frame은 "틀" + work는 "일하다" 라는 의미로 "틀을 사용하여 일한다." 정도의 의미를 가지고 있습니다.즉, 프레임워크(Framework)는 일정한 틀과 뼈대를 제공받아 일한다는 의미로 제공받은 일정한 요소와 기능, 규칙 등을 기반으로 무언가 만드는 일이며, 이것을 IT 업계에서는 Framework라고 부릅니다.프레임워크는 개발시 필요한 여러 요소들을 제공해주고, 개발의 편리함과 생산성을 높여줍니다.또 프레임워크는 사용목적에 따라 다양한 종류의 프레임워크가 존재합니다. Spring Framework란?Spring Framework는 JAVA를 위한 오픈 소스 프레임..