2022 Masters Course/Project Course

2022 마스터즈 코스(백엔드) 72일차 회고(2022. 4. 19.) - "데이터 베이스 설계하기"

ikjo 2022. 4. 19. 20:35

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

어제는 팀원들과 간단한 인사를 나누고 앞으로 프로젝트를 진행함에 있어 role(규칙)을 정했고 오늘부터는 본격적으로 팀 프로젝트를 수행했다. 우선 프론트 엔트 팀원들과 협의하여 메인 화면에 노출되는 카테고리별 반찬 정보들을 조회하는 것을 목표로 작업을 진행했다. 백엔드 역할을 하고 있는 나와 피오는 가장 먼저 '데이터 베이스 설계' 작업을 진행했다.

 

사실 나의 경우 데이터 베이스 설계 시 그동안 단순 무식한 방법으로 테이블을 만들어 나갔었는데, 오늘 피오와 함께 테이터 베이스 설계 작업을 할 때는 '데이터 베이스 개론' 상에 나와있는 방법에 따라 나름(?) 체계적으로 설계 작업을 진행해보았다. 우선 '요구사항'을 분석한 후 이를 바탕으로 '개념적 설계'와 '논리적 설계'를 진행하고 최종적으로 '물리적 설계'를 진행하는 방식이었다.

 

오늘 일과 중에 피오와 함께 '요구 사항 분석'과 '개념적 설계' 단계까지는 약식으로 진행해보았으나, 이번 팀 프로젝트 앞으로의 빠듯한 일정 상 나머지 단계는 단순 조회 기능부터 구현한 이후로 차차 진행해보기로 했다. 한정된 시간으로 FM대로 데이터 베이스 설계를 진행하지는 못했지만 평상시에 하던 방식 보다 좀 더 체계적으로 설계해볼 수 있어 유익한 시간이었다.

 

 

학습 회고

  • 주문 서비스 웹 앱 구현 프로젝트
    • 팀원들(백 엔드 2명, 프론트 엔드 2명)과 zoom 회의실에서 학습

 

JDBC란?

JDBC는 Java Database Connectivity의 약자로 자바를 이용한 데이터 베이스 접속SQL 문장의 실행 그리고 SQL 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약(Java API)이다. 데이터 베이스 접속 시에는 주로 TCP/IP를 사용해서 커넥션을 연결하며, SQL 실행 시에는 애플리케이션 서버가 데이터 베이스가 이해할 수 있는 SQL을 앞서 연결된 커넥션을 통해 데이터 베이스에 전달한다. 최종적으로 데이터 베이스는 전달받은 SQL을 수행하고 그 결과를 응답하며, 애플리케이션 서버는 해당 응답 결과를 활용한다.

 

과거에는 각각의 데이터 베이스(Oracle, MySQL 등)마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답 받는 방법들이 모두 달랐기에 굉장히 번거로웠지만 JDBC라는 표준 인터페이스가 등장하면서 이러한 문제점을 해결할 수 있었다. JDBC 표준 인터페이스에는 대표적으로 연결을 담당하는 java.sql.Connection 인터페이스와 SQL 전달을 위한 java.sql.Statement 인터페이스 그리고 SQL 요청 응답을 위한 java.sql.ResultSet 인터페이스가 존재한다.

 

JDBC 동작 흐름(이미지 출처 : 부스트코스 웹 프로그래밍(풀스택))

 

자바에서는 이렇게 표준 인터페이스를 정의해두었기에 JDBC 드라이버(ex. MySQL JDBC 드라이버, Oracle JDBC 드라이버 등)만 변경해주면 개발자 입장에서는 이 표준 인터페이스만 사용하여 개발할 수 있게 된다.

 

 

학습 참고자료

  • 인프런 '스프링 DB 1편 - 데이터 접근 핵심 원리'
  • 부스트코스 '웹 프로그래밍(풀스택)'

 

 

좋았던 점

  • 오늘 피오와 함께 새로운 방식으로 데이터 베이스를 설계할 수 있어서 유익한 시간이었습니다. 👍

 

 

아쉬웠던 점

  • 오늘 피오는 코드스쿼드에 방문 했는데, 함께 하지 못해 Zoom을 통해 원격으로 소통하여 아쉬웠습니다. 💦

 

 

이전 보다 개선되었던 점

  • 원래 기존의 방식을 고수하는 성향이 있지만 오늘 프로젝트를 진행할 때는 기존의 방식이 아닌 새로운 방식으로 문제 해결에 접근해볼 수 있었습니다. ✨