Spring

Backend/Spring Boot

Spring boot - 트랜잭션(Transaction)

트랜잭션? 트랜잭션(transaction)은 "쪼갤 수 없는 업무처리의 최소 단위"를 말합니다 개발에서는 "DB(database)의 상태를 변화시키기 위해서 수행하는 작업의 단위"를 의미합니다. DB에 접근하기 위해서 SQL(질의어)문을 이용하는데, 작업단위는 질의어 하나가 아니라, 많은 질의어를 사람이 기준을 정해서 사용합니다. 예시 예를들어 장기게임을 만든다고 치고, 게임을 즐기기위해서 방을 만들도록 합니다. 방을 만들면 데이터베이스에서는는 방을 만드는 작업, 방을 만들면서 장기말을 세팅하는 작업, 두가지가 일어나게 됩니다. 트랜잭션 단위로 데이터가 처리되지 않는다면, 오작동 했을 시 원인을 찾기가 힘들것입니다. 게임방 생성과 장기 기물을 생성하는 두개의 과정을 별도의 과정으로 보게되고, DB입장에서..

Backend/Spring Boot

Spring Boot - MVC 모델

MVC 모델? 스프링 부트에서 MVC 모델은 애플리케이션의 구조를 설계하고 관리하는 방법 중 하나로, MVC는 모델(Model: M), 뷰(View: V), 컨트롤러(Controller: C)로 분류합니다. 이 패턴은 소프트웨어를 세 가지 역할로 구분하여 개발하고, 이를 통해 애플리케이션의 유지보수와 확장을 용이하게 합니다. Model 모델은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스와 상호 작용하거나 비즈니스 규칙을 적용하여 데이터를 가공하는 역할을 합니다. 주로 데이터를 가져오고 저장하는데 관련된 코드가 모델에 포함됩니다. 스프링 부트에서는 데이터베이스와의 상호 작용을 위해 JPA(Java Persistence API)를 사용하거나, JDBC(Java Database Connec..

Backend/Spring Boot

Spring Boot - Spring Data JPA 활용

JPQL? JPQL은 JPA Query Language의 줄임말로 JPA에서 사용할 수 있는 쿼리를 의미합니다. JPQL의 문법은 SQL과 매우 비슷해서 데이터베이스 쿼리에 익숙하다면 어렵지 않게 사용할 수 있습니다. SQL과 차이점은 SQL에서는 테이블이나 칼럼의 이름을 사용하지만 JPQL은 엔티티 객체를 대상으로 수행하는 쿼리이기 때문에 매핑된 엔티티의 이름과 필드의 이름을 사용합니다. // JPQL 쿼리의 기본 구조 // Product = 엔티티 타입, p.number = 엔티티 속성 SELECT p FROM Product p WHERE p.number =?1; 쿼리 메서드 리포지토리는 JpaRepository를 상속받는 것만으로 다양한 CRUD 메서드를 제공합니다. 하지만 이러한 기본 메서드들은 ..

Backend/Spring Boot

Spring Boot 개발에 앞서 알면 좋은 기본 지식

서버간 통신 어떤 포털 사이트를 하나의 서비스 단위로 개발한다고 한다고 가정하자, 블로그, 게시판, 카페, 메일 등등의 기능들을 하나의 애플리케이션에 통합합니다. 서비스를 이렇게 구성하면 유지보수할 때마다 하나의 서비스만 존재하므로 서비스를 닫아놔야 할 것입니다. 또한 규모가 점점 커지면 시간도 오래걸립니다. 이를 해결하기 위해서 마이크로 아키텍쳐(Microservice Architecture)가 있습니다. 마이크로 아키텍쳐는 단어 그대로 서비스 규모를 작게 나누어 구성한 아키텍쳐 입니다. 위의 그림처럼 두 개발 방식을 비교할 수 있습니다. 우측 그림처럼 독립적인 애플리케이션들을 개발하게 되면, 각 서비스 간에 통신을 해야하는 경우가 생깁니다. 예를들어 [로그인 > 블로그 사용] 같은 동작이 있습니다. ..

Backend/Spring Boot

스프링 부트(Spring boot)란?

스프링 부트란? 스프링 프레임워크(Spring Framework)는 자바(Java) 기반의 애플리케이션 프레임워크로 엔터프라이즈급 애플리케이션을 개발하기위한 기능을 제공합니다. 스프링(Spring)은 목적에 따라서 다양한 프로젝트를 제공하는데, 그중 하나가 스프링 부트(Spring Boot)입니다. 애플리케이션 프레임워크? 프레임워크란, 자동차를 만드려면, 차의 기본 베이스가 되는 차체와 같습니다. 웹 개발에 있어서 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둔 것을 의미합니다.애플리케이션 프레임워크는 애플리케이션 개발에 집중된 코드와 기술들의 뼈대를 제공해줍니다. '엔터프라이즈급 개발'은 기업 환경을 대상으로 하는 개발을 뜻합니다. 대규모의 데이터를 처리하는 환경..

코딩하는너굴맨
'Spring' 태그의 글 목록