[DEV] study&learn
article thumbnail
두려움은 진정한 용기의 적수가 될 수 없다.
- 그라시안

금요일 토요일 정신도 없고 집중도 못 했던 이틀이 지나갔다.
날짜 개념이 무뎌지고 있다고 해야 하나,
이틀이나 블로그 못 쓴 것도 몰랐네...
정신 차리고 나아가자!! 
아자아자 파이팅🙌

 

JPA 란?

JPA는 자바 진영에서 ORM(object-Relational Mapping) 기술 표준으로 사용되는 인터페이스 모음이다.
즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다.

ORM(object-Relational Mapping) 

우리가 일반적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화해주는 것이라고 보면 된다.

 

장점

  1. SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음.
  2. 객체지향적인 코드 작성이 가능하다. 오직 객체지향적 접근만 고려하면 되기에 생산성이 증가한다.
  3. 매핑하는 정보가 Class로 명시되기 때문에 ERD를 보는 의존도를 낮출 수 있고, 유지보수 및 리팩터링에 유리하다.

단점

  1. 설계가 잘못된 경우, 속도 저하 및 일관성을 무너뜨리는 문제점이 생길 수 있다.
  2. 복잡하고 무거운 Query는 속도를 위해 별도의 튜닝이 필요하기 때문에 결국 SQL문을 써야 할 수도 있다.
  3. 학습비용이 비싸다.

 

왜 JPA를 사용해야 할까?

JPA가 반복적인 CRUD SQL을 처리해주기 때문에,

개발자는 어떤 SQL이 실행될지 생각만 하면 되고 예측도 쉽게 할 수 있다.

 

  • JPA는 SQL이 아닌 객체 중심으로 개발을 할 수 있게 해 준다.
    (생산성이 좋아지고 유지보수도 수월해진다.)
  • JPA는 패러다임의 불일치고 해결해준다.
 

[Spring JPA] JPA 란?

이번 글에서는 JPA(Java Persistence API)가 무엇인지 알아보려고한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된것이

dbjh.tistory.com

 

스프링 프레임워크 디자인패턴

디자인 패턴이란?

특정 문맥에서 공통적으로 발생하는 문제에 대해 쓰이는 재사용 가능한 해결책이다.

목적별로 일정한 패턴이 제시되어 있다.

완전한 정답이 되는 알고리즘과 달리 현재 상황에 맞춰 최적화된 패턴을 결정하여 사용하는 것이 좋다.

대표적으로 구체화된 디자인 패턴은 GoF(Gang of Four)에서 제시한 총 23개의 패턴이 있다.

 

디자인 패턴의 장점

  1. 개발자 간의 원활한 협업이 가능하게 한다.
  2. 소프트웨어의 구조를 파악하기 용이하게 한다.
  3. 재사용을 통해 개발 시간을 단축시킬 수 있게 한다.
  4. 설계 변경이 있을 경우 비교적 원활하게 조치가 가능하게 한다.

 

디자인 패턴의 장점

  1. 객체지향적 설계를 고려하여 진행해야 한다.
  2. 초기 투자 비용이 많이 들어간다.(돈 뿐만 아니라 시간 등 포함)

 

GoF 디자인 패턴

목적에 따른 분류

  • 생성 패턴, 구조 패턴, 행동 패턴 총 3가지로 구분된다.
  • 각 패턴이 어떤 작업을 위해 성성되는 것인지에 따른 구분이다.

 

생성 패턴

생성 패턴은 객체의 생성과 관련된 패턴이다.

특정 객체가 생성되거나 변경되어도 프로그램 구조에 최소화할 수 있도록 유연성을 제공한다.

 

구조 패턴

구조 패턴은 프로그램 내 자료 구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 사용되는 패턴이다.

클래스나 객체를 조합하여 더 큰 구조를 만들 수 있게 해준다.

 

행동 패턴

행동 패턴은 반복적으로 사용되는 객체들의 케뮤니케이션을 패턴화하는 것이다.

객체 사이에 알고리즘 또는 책임을 분배하는 방법에 대해 정의된다.

결합도를 최소화 하는 것이 주 목적이다.

 

스프링 주요 디자인 패턴

1. Singleton pattern

싱글톤 패턴은 어플리케이션당 오직 하나의 인스턴스만 존재하도록 보장해주는 패턴이다.

공유 자원을 관리하거나 cross-cutting services를 제공할 때 유용하다.

 

2. Factory Method pattern

팩토리 메소드 패턴은 원하는 객체를 생성하기 위한 추상 메소드가 있는 팩토리 클래스를 생성한다.

 

3. Proxy pattern

프록시 패턴은 한 객체(proxy)가 다른 객체(subject or service)로의 접근을 제어하도록 하는 기술이다.

 

4. Template pattern

다수의 프레임워크에는 상당량의 코드가 boilerplate code이다.

boilerplate code?
최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다.

예를 들어, DB에서 쿼리를 실행하기 위해선 다음 단계들이 필수적이다.

  1. Connection 생성
  2. 쿼리 실행
  3. cleanup 실행
  4. Connection 종료

이런 단계들은 템플릿 메서드에 이상적인 시나리오이다.

 

RESTful API란?

일단 API에 대해서 알아보자

 

API란?

애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.

 

웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다.

클라이언트 : 웹에서 정보에 액세스하려는 사용자.
리소스 : 다양한 애플리케이션이 클라이언트에게 제공하는 정보.

 

REST란?

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처이다.

REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다.

REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있다.

 

REST 아키텍처 스타일의 몇 가지 원칙

  1. 균일한 인터페이스
    모든 RESTful 웹 서비스 디자인의 기본이다.

  2. 무상태
    REST 아키텍처에서 무상태는 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법을 나타낸다.

  3. 계층화 시스템
    계층화된 시스템 아키텍처에서 클라이언트는 클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있으며 여전히 서버로부터도 응답을 받는다.

  4. 캐시 가능성
    RESTful 웹 서비스는 서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원한다.

  5. 온디맨드 코드
    REST 아키텍처 스타일에서 서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있다.

 

RESTful API의 장점

  1. 확장성
    REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다.

  2. 유연성
    RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원한다.

  3. 독립성
    REST API는 사용되는 기술과 독립적입니다.

 

 

RESTful API란 무엇인가? - RESTful API 초보자 가이드 - AWS

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway를 사용하면 실시간 양방향 통신 애

aws.amazon.com

 

profile

[DEV] study&learn

@devjuni

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!