전체 글

전체 글

    [CS] 데이터베이스 정규화와 이상현상(Normalization & Anomaly)

    [CS] 데이터베이스 정규화와 이상현상(Normalization & Anomaly)

    이상 현상(Anomaly) 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성이 저하된다. 이상 현상으로 인해 현실세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생합니다. 이상 현상의 종류(Insert, Update, Delete) 1. 삽입 이상 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 2. 갱신 이상 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 문제 3. 삭제 이상 튜플을 삭제하면 꼭 필요한 데이터까지 같이 삭제되는 데이터 손실 문제 이런 이상 현상을 해결하기 위한 솔루션은 바로 정규화(Normalization) 정규화..

    개발하면서 자주 만났던 이슈 및 용어 정리

    개발하면서 자주 만났던 이슈 및 용어 정리

    개발 공부를 하면서 자주 들은 말들을 한번 쭉 정리해보고 싶은 마음이 생겨 글을 남기려고 한다. 데이터 무결성(Data Integrity) 데이터 값이 정확한 상태를 의미한다 데이터 정합성(Data Consistency) == 일관성 어떤 데이터들이 값이 서로 일치하는 상태를 의미한다. 더보기 ex) User Table, Product Table이 있다고 하자. 두 테이블에서 공통적으로 쓰이는 데이터에 대하여 서로 일치하면 -> 정합성 but, 데이터가 -1인데 이 데이터는 원래 양수여야 한다 => 무결성 멱등성(Idempotent) 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질, 연산을 여러 번 반복하여도 한 번만 수행된 것과 같은 성질 Q. 데이터를 Request 할 떄 변경되지 않은 값들도..

    [Error] @RequestBody로 String or Integer를 받으려고 할 때

    @PostMapping("{id}") public void testMethod(@RequestBody String value, @PathVariable long id) { System.out.println("value = " + value); } @RequestBody 동작 순서 HTTP Clients 가 request body에 데이터를 담아 request 를 보낸다. 컨트롤러 메서드에 @RequestBody가 명시되어 있으면 해당 어노테이션이 스프링에게 request body에 담긴 데이터를 도메인 객체로 역직렬화 처리 하라고 알려준다. 추가적으로 자바 Map 으로도 역직렬화 처리를 해준다 @RequestBody Integer id 로 받을 수 없는 이유는 이때 MappingJackson2HttpMe..

    프로젝트 회고(BangBangGokGok)

    프로젝트 회고(BangBangGokGok)

    방탈출 테마 추천 사이트라는 주제로 만든 방방곡곡 웹사이트 프로젝트! 이번 프로젝트에서는 SpringBoot를 많이 다뤄보진 못하고 단순 기능 구현에 힘쓴 것 같아 너무너무 아쉽다... [Spring Boot] 선언적 트랜잭션 @Transactional 트랜잭션이란? 데이터베이스의 상태를 변경시키는 작업 또는 한번에 수행되어야하는 연산들을 의미한다. 트랜잭션 작업이 끝나면 Commit 또는 Rollback 되어야한다. 트랜잭션의 성질 원자성(Atomicity bamdule.tistory.com aws ec2에 docker container log를 좀 더 편리하게 보는 방법이 없을까? ELK 스택 사용:ELK (Elasticsearch, Logstash, Kibana) 스택을 사용하면 Docker 컨테이..

    [Jenkins] Jenkins로 SpringBoot/Django/React 배포하기 (ver.2)

    [Jenkins] Jenkins로 SpringBoot/Django/React 배포하기 (ver.2)

    저번 프로젝트 때 Jenkins에 대한 아쉬움이 많아서 이번엔 각잡고 제대로 해보려고 한다. 저번엔 Docker in Docker 방식으로 진행했었는데 다시 개념을 찾아보니 이러한 문제가 있다고 한다. Docker in Docker는 Docker 컨테이너 내부에서 Docker를 실행하는 방식으로, 하나의 Docker 호스트에서 다른 Docker 호스트를 만드는 것과 유사하지만 문제점이 있다. DinD 방식은 컨테이너 안에서 호스트 시스템의 Docker 데몬을 실행하는 것이므로, 컨테이너 안에서 실행 중인 모든 애플리케이션은 호스트 시스템의 Docker 데몬에 대한 접근 권한을 가지게 됩니다. 이는 보안 문제를 발생시킬 수 있습니다. DinD 방식은 성능에 문제가 있을 수 있습니다. 컨테이너 안에서 Doc..

    [AWS] EC2 인스턴스(Ubuntu)에서 Docker 설치

    Ubuntu에 Docker 설치하기 먼저 기본 중에 기본. 패키징 툴(apt-get)을 업데이트, 업그레이드 시켜주자. apt update & apt upgrade 다음으로는 Docker 설치에 필요한 필수 패키지를 설치해주자. sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 설치가 되었다면 Docker의 GPC Key 인증을 하자. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 입력 시 'OK'가 출력된다면 정상 작동한 것이다. 다음으로는 Docker Repository를 등록해보자..