Java Persistence API(JPA)는 자바 표준 기술 중 하나로, 객체와 관계형 데이터베이스 간의 매핑을 처리하는 ORM(Object-Relational Mapping) 프레임워크입니다. 이 기술은 객체 지향 프로그래밍의 강점을 살려 데이터베이스와의 상호 작용을 추상화하고, 개발자가 데이터베이스와 직접적으로 상호 작용하지 않고도 객체 모델을 사용하여 데이터를 조작할 수 있게 합니다. JPA의 필요성 1. 객체 지향 프로그래밍과의 통합 - JPA는 객체 지향 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결합니다. 객체는 상속, 다형성, 연관 관계 등의 특징을 가지고 있지만, 관계형 데이터베이스는 이러한 특징을 직접적으로 지원하지 않습니다. JPA를 사용하면 객체 모델과 데이터베이스 간의 매핑..
전체 글
개발자 되고싶어서 7년다닌 회사 때려치고 개발 공부 끄적이는 공간.제어의 역전 (IoC, Inversion of Control) 제어의 역전은 기존의 프로그램 개발 방식에서 개발자가 객체의 생명주기와 의존성을 직접 다루던 것을 프레임워크 또는 컨테이너에게 위임하는 개념 스프링에서 IoC는 객체의 생성, 생명주기의 관리, 의존성 주입 등을 스프링 컨테이너가 담당 IoC 컨테이너 IoC 컨테이너는 제어의 역전을 실제로 구현하는 역할 스프링에서는 ApplicationContext 인터페이스가 IoC 컨테이너를 나타낸다. ApplicationContext는 빈의 생성, 관리, 소멸과 같은 작업을 처리한다. 빈 (Bean) 빈은 IoC 컨테이너가 관리하는 객체 스프링에서는 빈으로 등록된 객체는 스프링 컨테이너에 의해 생성되고, 관리되며, 필요한 곳에 주입된다.. 빈은 일반적으로..
1. 제어의 역전 (IoC) 제어의 역전은 소프트웨어 개발에서 중요한 개념 중 하나로, 기존의 제어 흐름을 바꾸는 개념. 기존에는 개발자가 애플리케이션의 제어 흐름을 직접 다루었지만, 제어의 역전은 이를 반전시키는 개념. 일반적으로 프로그램이 실행될 때는 개발자가 정한 흐름대로 실행된다. 예를 들어, 함수 A에서 함수 B를 호출하고, B에서 C를 호출하는 경우, 제어 흐름은 A에서 B, B에서 C로 흘러간다..(일반적인 제어 흐름) 제어의 역전은 이런 제어 흐름을 프레임워크나 컨테이너에게 넘기는 것을 의미. 프레임워크나 컨테이너가 언제, 어떻게, 어떤 객체(클래스)를 생성하고, 실행할지를 제어. 이렇게 하면 개발자는 자신이 작성한 코드를 프레임워크나 컨테이너에 등록하고, 이를 통해 실행 흐름을 변경하거나..
3 Layer Architecture는 소프트웨어 개발에서 사용되는 일반적인 아키텍처 패턴 중 하나다. 이 아키텍처는 소프트웨어 시스템을 세 가지 주요 계층으로 나누는 방법을 나타낸다. Presentation Layer (표현 계층) 사용자 인터페이스(UI)와 상호작용을 담당하는 계층. 주로 사용자와 시스템 간의 상호작용을 처리하며, 사용자에게 정보를 표시하거나 입력을 받는 역할을 한다. 웹 애플리케이션의 경우, 웹 페이지 디자인 및 브라우저와 상호작용하는 부분이 여기에 속한다. Business Logic Layer (비즈니스 로직 계층) 시스템의 핵심 비즈니스 로직과 데이터 처리를 다루는 계층. 비즈니스 규칙, 데이터 처리, 유효성 검사, 데이터베이스 상호작용 등을 처리. 이 계층은 Presentati..
데이터베이스 개념 및 용어 데이터 정보를 나타내는 숫자, 텍스트, 이미지, 오디오 등의 항목. 데이터베이스 관련된 정보를 구조화하여 저장하고 관리하는 시스템 또는 소프트웨어. 테이블 데이터를 행과 열로 구성된 형식으로 저장하는 데이터베이스의 기본 단위. 레코드 테이블에서 각 행으로 나타나는 하나의 데이터 항목. 필드 테이블에서 각 열로 나타나는 데이터의 속성을 나타내는 항목. 스키마 데이터베이스의 구조와 구성을 정의하는 설계 또는 청사진. 쿼리(Query) 데이터베이스에서 정보를 검색하거나 조작하기 위한 명령어 또는 질문. 인덱스(Index) 데이터 검색을 빠르게 하기 위해 특정 열(필드)의 값을 정렬된 구조로 저장하는 데이터베이스 객체. RDBMS의 종류 MySQL 오픈 소스 RDBMS로, 무료로 사용..
Model-View-Controller (MVC) Model 애플리케이션의 데이터와 비즈니스 로직을 나타냅니다. 데이터를 검색하거나 수정하고, 데이터의 유효성 검사 및 가공을 수행하는 역할 View 사용자에게 데이터를 표시하고 사용자 입력을 받는 부분입니다. 주로 웹 페이지, 화면 또는 사용자 인터페이스를 의미 Controller 사용자의 요청을 받아 해당 요청을 처리하고, Model과 View 간의 상호 작용을 관리 클라이언트의 요청을 받아서 어떤 Model을 사용할 것인지 결정하고, 그 Model을 View에 전달함 Spring MVC의 주요 구성 요소 DispatcherServlet Spring MVC의 핵심 컴포넌트로, 클라이언트 요청을 받고 요청을 처리하기 위한 Controller를 찾아서 실행..
스프링 프레임워크(Spring Framework)의 MVC 패턴 스프링 프레임워크(Spring Framework)에서는 MVC(Model - View - Controller) 패턴을 사용하고 있습니다. MVC(Model - View - Controller)는 사용자의 인터페이스와 비지니스 로직 구현 및 제어를 하는데 사용되고 있습니다. 이 MVC(Model - View - Controller)는 사용자 관점에서 보는 화면과 비지니스 로직을 구분하는 것이 가장 중요합니다. 여기서, MVC(Model - View - Controller)의 사용자 관점에서 보는 화면은 View 즉, 개발을 하는데 *.jsp 이며, MVC(Model - View - Controller)의 비지니스 로직은 Model *.java..
Spring MVC에 Front Controller 장점 API를 처리하기 위해 여러 개의 클래스를 만드는 것을 줄여줄 수 있다. Controller 화면(view)과 비즈니스 로직(Method)을 연결시켜 주는 다리 역할. TV리모컨 같은 존재?라고 생각하면 될 것 같다 사람이(Client, 브라우저) 채널을 눌러 리모컨(Controller)이 채널번호 인식(Method) 받아 TV화면(view)으로 보여주는 것이라고 비유할 수 있을 것 같다. Controller Code Front Controller 패턴으로 효율적인 API 처리를 할 수 있다. API마다 파일을 만들 필요 없이 유사한 성격의 API를 하나의 Controller로 관리한다. 메서드 이름도 마음대로 설정 가능하나 중복은 불가하다. 관련..
MVC는 무엇인가 Model-View-Controller의 약자 디자인 패턴의 중 하나이다. 소프트웨어를 구성하는 요소를 Model, View, Controller로 구분하여 역할을 분리한다. Model 데이터와 비즈니스 로직을 담당 데이터 베이스와 연동하여 저장하고 불러오는 등의 작업 수행 View 사용자 인터페이스를 담당 프런트엔드라고 생각하면 될듯하다 사용자에게 보이는 부분을 말한다. Controller 모델과 뷰가 상호작용을 조정하고 제어한다. 사용자가 입력한 값을 받아 모델에 전달하고 모델의 결과를 뷰에 업데이트한다. 스프링에서의 MVC Spring Web MVC는 Servlet API를 기반으로 구축된 독창적인 웹 프레임워크로, 처음부터 Spring Framework에 포함되어 왔으며, 정식 ..
Lombok 코드를 절약하기위해 사용하는 라이브러리다. 프로젝트를 진행하는 데 필수적으로 사용되는 메서드 / 생성자 / 게터 / 세터등을 자동생성해준다. 자동적으로 코드를생성해주어 코드의 가독성이 높아지고 절약할수있다. 사용방법은 @이노테이션을 붙여사용하면된다.. @Getter // 필드의 게터를 생성해준다. @Setter // 필드의 세터를 생성해준다. @AllArgsConstructor //모든 필드의 생성자를 만든다. @NoArgsConstructor //기본 생성자를 만든다. @RequiredArgsConstructor // final 이달린 플드드만 생성자를 만든다. 등등 추가로 더있지만 현재 내가 강의에서 사용하는것은 위의 명령어를 자주사용한다고 한다. application.properties..