도커란? -컨테이너 기반으로 작동하는 오픈소스 가상화 플랫폼으로 물리적 자원인 하드웨어를 효율적으로 활용 하기 위해 하드웨어 위에 가상의 머신을 생성하여 데이터, 응용 프로그램등을 호스트 환경과 격리 시켜 빠르게 구축,테스트, 배포 할 수 있는 소프트웨어입니다 즉, 호스트 컴퓨터의 OS의 기능은 그대로 사용하지만, 프로세스 공간을 격리해 독립된 환경을 만들어 하드웨어를 효율적으로 활용하는 기술입니다. 도커가 필요한 이유 하드웨어 자원 조정 어려움 도커 없이 물리적 컴퓨터에 서버를 구축한다고 했을 시, 서버 컴퓨터 OS위에 프로그램을 올려 실행을 합니다. 이렇게 서버 프로그램을 하나 올려서 사용할 시에, 프로그램의 필요 성능에 맞게 직접 하드웨어를 구축하기 어려워 하드웨어의 자원의 부족,낭비 현상이 일어납..
데이터베이스 CLI(Command-Line Interface)란? -DBMS와 사용자가 상호 작용을 하기위한 명령줄 도구로, CLI를 활용하여 SQL 쿼리를 실행하거나 MySQL 서버의 설정과 관련된 작업을 수행할 수 있습니다.GUI와 달리 명령으로 조작할 수 있으며, 유연성이 뛰어나, 복잡한 작업을 할때 유용합니다. CLI 명령어 mysql -u [사용자이름] -p -MYSQL 데이터베이스 서버에 접속하기 위한 명령어입니다. 사용자의 이름을 지정해 로그인할 수 있고, 이후 비밀번호 입력으로 접속이 가능합니다. SHOW DATABASES -현재 MYSQL 서버에 존재하는 모든 데이터베이스의 목록을 보여줍니다. USE [데이터베이스 이름] -작업을 하려는 특정 데이터베이스를 선택하며, 선택된 데이터베이스에..
정규화란? -데이터베이스 설계과정에서 데이터간의 중복을 최소화 하고 데이터의 구조를 효과적으로 조직화하기 위한 형식입니다. 정규화의 주 목적은 데이터 베이스의 이상 현상을 줄여 데이터의 일관성과 정확성을 유지하는 것 입니다. 즉, 테이블을 잘개 쪼개 데이터의 중복성을 제거하며, 입력,수정,삭제의 성능이 향상됩니다. 정규화 장점 중복 제거 -정규화를 통해 데이터의 중복이 최소화됩니다. 이로 인해 데이터의 일관성과 무결성이 향상되며, 저장 공간도 절약됩니다. 데이터 무결성 향상 -정규화 과정에서 데이터베이스에 적용되는 무결성 규칙이 데이터의 정확성과 일관성을 유지하는 데 도움을 줍니다. 이상현상 제거 -정규화를 통해 삽입, 삭제, 갱싱 이상 현상을 방지하며, 더욱 효율적으로 데이터관리를 합니다. 설계 명확성..
데이터 모델링 데이터 모델링이란? -데이터 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 다이어그램으로 표현하는 것을 의미합니다. 데이터베이스를 개발하기전에, 다이어그램으로 먼저 분석 및 표현을 하며, 좀더 효율적으로 작성하게 해줍니다. 데이터베이스를 구축하기 위해 데이터 관점에서 분석/설계를 하는과정이라고 생각하면 됩니다. 데이터 모델링의 특징 추상화, 단순화, 명확화 -데이터 모델링은 데이터 구축을 어떻게 할지, 대략적으로 표현하는 것으로, 전체 데이터를 추상화하고, 최대한 단순하게, 명확하게 작성을 해야합니다. 중복 제거 -데이터 모델링은 해당 여러 장소에 같은 정보를 저장하지 않게 하여 중복이 없어야합니다. 유연성 -데이터 모델이 다양한 사용자의 요구사항을 수용하거나 요구..
엔티티 리포지토리란? -엔티티 데이터 접근 로직을 캡슐화하는 패턴으로, 특정 엔터티 타입에 대한 CRUD(Create,Read,Update,Delete)연산을 제공합니다. 이를 이용해서 엔티티와 데이터베이스 사이에서 데이터 접근을 어떻게 할지 지정할 수 있습니다. 엔티티 리포지토리에서 지원하는 연산으로는 기본 CRUD 연산 + 쿼리 메서드 등이 있습니다. 엔티티 리포지토리 예시 public interface UserRepository extends JpaRepository { // 여기에 추가적인 쿼리 메서드를 정의할 수 있습니다. List findByLastName(String lastName); } 기본 CRUD 연산 save() -엔티티를 저장합니다. 새 엔티티일 경우 생성, 기존 엔티티면 업데이트..
엔티티란? -데이터베이스 테이블과 직접 매핑되는 JAVA 객체를 나타냅니다. 엔터티를 사용해 데이터베이스 테이블의 레코드를 객체 지향적으로 표현할 수 있게 됩니다.엔티티는 주로 애노테이션으로 구성이 됩니다. 엔티티 특징 테이블 매핑 -엔티티는 데이터베이스 테이블에 직접 매핑이 되며, 한 엔티티 클래스는 하나의 테이블에 매핑이 됩니다. 식별자 -모든 엔티티는 유일한 식별자를 가져야하며, 이는 데이터베이스 테이블의 기본 키(Primary key)에 매핑됩니다. 상태관리 -JPA는 엔티티의 상태를 관리하는데, New , Persistent , Detached , Removed 총 4개의 상태가 있습니다. 관계 매핑 -객체 지향적인 엔티티 간의 일대다, 다대다, 일대일 관계를 애노테이션으로 구현하여, 객체 지향..
브랜치(Branch)란? -프로젝트의 특정시점에서 분기하여 나뉘는 포인터같은 것으로 여러개발자들이 동시에 다양한 작업을 병렬로 진행할 수 있게 도와줍니다. 예를 들어 새로운 브랜치를 만들고 해당 브랜치에서 작업을 진행하면, 메인 브랜치의 코드에 영향을 주지 않고 병렬적으로 작업을 진행할 수 있습니다. 또한 디버그 작업을 할 때 버그 수정을 위한 별도의 브랜치를 만들어서 해당 브랜치에서 문제를 수정하고 테스트할 수 있습니다. 기본 브랜치 -기본적으로 모든 Git 리포지토리에는 'master' OR 'main' 이름의 기본브랜치가 있습니다. 이거는 가장 기본적인 브랜치로 브랜치의 가장 중심이 되는 곳입니다. 브랜치 생성 및 이동 git branch [브랜치 명] -브랜치 생성 git checkout [브랜치..