Web 서비스를 하나 만든다라고 생각을 해봤을 때 Client와 Server는 HTTP로 서로 통신을 할 것이다. 만일 RESTFul APi 로 구성을 했다라고 하면 Server는 JSON 형식의 데이터를 보낼것이고 Client는 그 JSON형식을 데이터를 통해선 화면을 렌더링 할것이다. 그렇다면 Server와 Data가 있는 DB는 어떻게 통신을 할까? SpringBoot 프로젝트를 몇가지 진행을 하면서 무지성으로 HikariCP를 써왔는데 이번 글에서는 HikariCP가 관리하는 DBCP란 무엇인지 살펴보도록 하자. Server와 DB는 어떻게 통신을 하는가?기본적으로 WAS와 DB는 DB 드라이버를 거쳐 서로 TCP 통신을 하게 된다. TCP의 장점은 연결 지향적이고 packet의 순서의 신뢰를 보..
procedure의 사전적 의미는 '절차' 라는 뜻이다. 원문 그대로 해석하면 저장되어 있는 절차를 의미한다. 그래서 SP에서 대해서 쉽게 생가하면 이미 정해져 있는 절차에 따라서 SQL를 실행하는 것 이라고 생각하면 된다.이번 글에서는 저장 프로시저의 특징이 무엇이 있고 이것을 왜 쓰는지 그리고 단점이 무엇인지 살펴보도록 하겠다. 사용예시DELIMITER //CREATE PROCEDURE GetCustomerOrders(IN customerId INT)BEGIN SELECT * FROM Orders WHERE CustomerID = customerId;END //DELIMITER ; Delimiter(구획문자)를 // 또는 $$로 변경을 해준 뒤 메서드 형태로 선언해서 사용한다. IN, OUT 사..
트랜잭션이란?트랜잭션(Transaction)이란 '더 이상 분할이 불가능한 업무처리의 단위', '하나의 논리적 기능을 수행하기 위한 작업의 단위' 이다.회원가입 예시 코드를 보면서 살펴보자 @Transactional public BaseResponse signup(PostMemberSignupReq req, MultipartFile profileImage) { .... // 회원가입을 위해 DB에 Write Member member = memberRepository.save( Member.createMember(req.getMemberId(), passwordEncoder.encode(req.getPassword()), ..
DB를 처음 공부하다보면 헷갈리는 용어가 굉장히 많다. 이번 글에서는 본격적으로 DB를 공부하기에 앞서 DB에서 자주 사용하는 용어의 개념을 알아보겠다. DataBase란?체계적, 구조화 된 데이터의 저장소, 데이터의 모음DBMS에 의해 제어된다.DBMS란?다수의 사용자들이 DB에 내에 데이터에 접근 할 수 있게 도와주는 소프트웨어데이터 정의, 수정 삭제 등 DB 관련한것들을 할 수 있다.이외 트랜잭션, 보안 등 DB관리에 효율성을 높이는 기능들을 제공한다.관계형 DBMS, 객체지향형 DBMS, 객체 관계 DBMS 등 꾸준히 발전해가고 있다.RDBMS는 mysql, mariaDB가 있고 NoSQL DBMS중에서는 MongoDB, Redis 등이 있다.관계형데이터베이스릴레이션(relation): 데이터 베..