good_da22 's devLog

Back-End 27

관계(Relationship)

관계 (Relationship) 관계(Relationship)을 사전적으로 정의하면 상호 연관성이 있는 상태 데이터 모델에 대입하여 정의해 보면, "엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태" 관계는 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 송성 정의 및 관계 정의에 따라서 다양하게 변할 수 있다. 관계의 패어링 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링) 이것의 집합을 관계로 표현한다. 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여..

Back-End/Database 2023.04.13

속성(Attribute)

속성(Attribute) 속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 시레를 생각할 수 없는 것으로 정의할 수 있다. 본질적 속성이란 어떤 사물 또는 개념에서 없어서는 안 될 징표의 전부 이 징표는 사물이나 개념이 어떤 것인지 나타내고 그것을 다른 것과 구별하는 성질 데이터 모델링 관점에서 속성을 정의하자면 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 엔터티, 인스턴스, 속성, 속성값의 관계 엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 업무에서는 엔터티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악..

Back-End/Database 2023.04.11

Entity

Entity 엔터티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것" 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합 눈에 보이지 않는 개념에 대해서도 엔터티로 인식이 가능하다. 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)를 갖는다. 속성 가운데는 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성도 있고, 엔터티 인스턴스 중 일부에만 해당하는 개별 속성도 있을 수 있다. 엔터티는 인스턴스의 집합이라고 말할 수 있고, 반대로 인스턴스라는 것은 엔터티의 하나의 값에 해당한다고 정의할 수 있다. 엔터티의 특징 엔터티는 다음과 같은 특징을 가지고 있고 도출된 엔터티가 다음의 ..

Back-End/Database 2023.04.10

SpringBoot & Swagger

SpringBoot Spring의 경우 Application을 개발하려면 사전에 많은 작업(library 추가, dependency 설정, 그 외 SpringFramework가 처리해야 할 여러 가지 구성 및 설정 파일 등)이 필요 SpringBoot의 장점 project에 따라 자주 사용되는 library들이 미리 조합되어 있다. 복잡한 설정을 자동으로 처리 내장 서버를 포함하여 tomcat과 같은 WAS를 추가로 설치하지 않아도 개발 가능 WAS에 배포하지 않고도 실행할 수 있는 JAR파일로 Web Application 개발 가능 Spring Starter Project를 이용하여 쉽게 SpringBoot 기반 프로젝트 생성 가능 project 생성 구조 및 주요 구성 폴더 / 파일 src/main/..

REST API

REST API OPEN API (Application Programming Interface) OPEN API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 Interface 많은 사이트들이 가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 OPEN API를 제공 OPEN API와 함께 거론되는 기술이 REST, 대부분의 OPEN API는 REST 방식으로 지원 REST (Representational State Transfer) 2000년도 로이 필딩(Roy Fielding)의 박사학위 논문에 최초로 소개 REST 는 'Representational State Transfer'의 약어로 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개..

MyBatis

MyBatis My Batis는 Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM Framework https://blog.mybatis.org MyBatis는 SQL을 별도의 파일로 분리해서 관리 Object - SQL 사이의 parameter mapping 작업을 자동으로 해준다. MyBatis는 Hibernate나 JPA(Java Persistence API)처럼 새로은 DB 프로그래밍 패러다임을 익혀야 하는 부담이 없다. 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 제거한다. 도메인 객체나 VO 객체를 중심으로 개발이 가능 MyBatis 특징 쉬운 접근성과 코드의 간결함 가장 간단한 persistence framework XML 형태로 ..

Back-End/etc 2022.11.03

Interceptor

Interceptor HandlerInterceptor를 통한 요청 가로채기 Controller가 요청을 처리하기 전/후 처리 로깅, 모니터링 정보 수집, 접근 제어 처리 등의 실제 Business Logic과는 분리되어 처리해야 하는 기능들을 넣고 싶을 때 유용 interceptor 여러 개 설정 가능, 순서 주의 HandlerInterceptor 제공 default method boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) fasle를 반환하면 request를 바로 종료 void postHandle(HttpServletRequest request, HttpServletResponse ..

Spring Web MVC 2

Spring Web MVC Controller @Controller 와 @RequestMapping 선언 스프링 4.2버전까지는 아래와 같은 방식으로 작성 @RequestMapping(value = "URL", method = RequestMethod.GET or RequestMethod.POST) 이후 버전에서는 @GetMapping("URL") 또는 @PostMapping("URL") 사용 Method 단위의 mapping이 가능 DefaultAnnotationHandlerMapping과 AnnotationHandlerAdapter를 사용함 Spring 3.0부터는 기본 설정이므로 별도의 추가 없이 사용 가능 Controller Class는 Client의 요청을 처리 @Controller 선언 Cla..

Spring Web MVC

Spring Web MVC MVC(Model-View-Controller) Pattern 어플케이션의 확장을 위해 Model, View, Controller 세 가지 영역으로 분리 컴포넌트의 변경이 다른 영역 컴포넌트에 영향을 미치지 않음(유지보수 용이) 컴포넌트 간의 결합성이 낮아 프로그램 수정이 용이(확장성이 뛰어남) 장점 화면과 비즈니스 로직을 분리해서 작업 가능 영역별 개발로 인하여 확장성이 뛰어남 표준화된 커드를 사용하므로 공동작업이 용이하고 유지보수성이 좋음 단점 개발과정이 복잡해 초기 개발속도가 늦음 초보자가 이해하고 개발하기 다소 어려움 Model 어플리케이션 상태의 캡슐화 상태 쿼리에 대한 응답 어플리케이션의 기능표현 변경을 view에 통지 View 모델을 화면에 시각적으로 표현 모델에게..

AOP (Aspect Oriented Programming)

AOP (Aspect Oriented Programming) OOP(Object Oriented Programming)에서 모듈화의 핵심 단위는 클래스 AOP(Aspect Oriented Programming)에서 모듈화의 단위는 Aspect Aspect는 여러 타입과 객체에 거쳐서 사용되는 기능(Cross Cutting(공통 관심사항), Core Concern(핵심 관심사항), 트랜잭션 관리 등)의 모듈화 Spring Framework 의 필수 요소는 아니지만, AOP 프레임워크는 Spring IoC를 보완 AOP 용어 Aspect 여러 클래스에서 공통적으로 구현되는 관심사(Concern)의 모듈화 JoinPoint 메서드 실행이나 예외처리와 같은 프로그램 실행 중의 특정 지점, Spring에서는 메서..