데이터 중복과 insertion, update, deletion anomaly를 최소화하기 위해 일련의 nomal forms(NF)에 따라 relation DB를 구성하는 과정정규화 되기 위해 준수해야 하는 몇가지 rule이 존재하는데 이 각각의 rule을 normal
한 테이블에 있는 두 개의 attribute(s) 집합(set)사이의 제약X의 값에 따라 Y값이 유일하게 결정되는 것X가 Y를 함수적으로 결정한다 (functionally determine)Y가 X에 함수적으로 의존한다 (functionally dependency)두
isolation level을 통해 전체 처리량(throughput)과 데이터 일관성 사이에 어느정도 거래(trade)할 수 있다.Serializable은 Dirty, Non-repeatable, Phantom read이 세 가지뿐만 아니라 아예 이상한 현상 자체가 발
단일한 논리적인 작업 단위 (a single logical unit of work)논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나누어 질 수 없는 것transaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않는다.
DBMS에 저장되고 사용하는 사용자 정의 함수SQL의 select, insert, update, delete statement에 사용가능IF, ELSEIF, ELSE, END, CASE 등등 여러 작업이 가능3-Teir architecture시 DATA 영역에 비즈니스
SQL에서 = 비교 연산은 TRUE, FALSE, UNKNOWN 을 반환한다(Three-valued logic) WHERE 절의 condition은 TRUE인 tuple만 반환이 되는데 이 말은 FALSE, UNKNOWN시에는 해당하는 tuple이 존재하지 않는다는 결
두 개 이상의 table들에 있는 데이터를 한 번에 조회하는 방식여러 종류의 JOIN이 존재함from 절에 table을 나열하고 where 절에 join condition을 작성 \- join condition, where condition이 같이 있기 때문에 가독성
조회 결과를 특정 attribute(s)를 기준으로 정렬하여 가져오는 방법Default 정렬 방식은 오름차순이다 (ASC)오름차순 정렬은 ASC로 표기한다내림차순 정렬은 DESC로 표기한다관심있는 attribute(s) 기준으로 그룹을 나누어 그룹별로 aggregate
프로그램: 컴퓨터가 실행할 수 있는 명령어의 집합프로세스: 컴퓨터에서 실행 중인 프로그램. 각각의 프로세스는 독립된 메모리 공간을 할당받음. 명령어와 데이터를 가진다CPU: 명령어를 실행하는 연산장치메인메모리: 프로세스가 cpu에서 실행되기 위해 대기하는 곳IO: 파일
전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합조직화된 집합 1\. 정해진 규칙에 맞추어 데이터를 빠르게 찾을 수 있다. 2\. 불필요한 데이터 중복 생성 방지 3\. 데이터 불일치 방지DB를 관리하는 기능을 제공하는 소트프웨어 시스템이다. ex
객체: 런타임중에 프로그램에 존재하는 구체적인 엔티티다. 프로그램을 실행할 때 생성되는 특정한 값과 속성을 갖는 동적인 것이다.객체설계단계객체와 객체의 속성(메소드와 데이터)을 식별한다.각 객체에 무엇을 할 수 있는지 결정한다.각 객체가 다른 객체에 무엇을 할 수 있는
연속된 메모리 공간에 저장이 된다인덱스를 통한 접근(Random Access)가 가능하다CPU Cache를 통해 같은 배열에 있는 다른 데이터에 접근하는 시간을 단축할 수 있다.데이터의 삽입/삭제시 데이터시프트에 의한 O(N)의 시간이 소요될 수 있다.동적배열의 추가적
(이력서 피드백시 가장 궁금한 부분입니다)제가 이력서에 어필할 수 있는 것이 없어서 진행한 하나의 프로젝트의 이해도를 높이고 코드의 리팩토링 및 작은 기능 및 라이브러리등을 추가해보려고 합니다. 특히 리팩토링을 진행예정 중입니다. 그러면서 위 이미지같은 코드 변경 전/
새로운 팀원분들과 미니 프로젝트 설계에 들어갔다. 아직 table 관계를 설정하는 것이 익숙하지 않아서 어떤 table을 만들어야하는지 각 table의 관계는 어떻게 설정해야하는지 와닿지가 않는다. 이번 프로젝트를 진행하면서 중점적으로 생각해봐야겠다.
SOLID에 대해 학습하면서 여러측면에서의 의견들을 보게 되었다. 결론은 원칙이라고 하기에는 무리가 있고 특정상황(적어도 새로 개발중인 프로젝트에서는 고려하지 않아도 된다고 생각)에서 고려해볼만한? 참고사항정도라고 생각한다.
예외처리란 무엇인가에 대해 학습하는 시간을 가졌다. 예외를 다루는 방식을 크게보면 무시, 수정, 종료, 예외 이 4가지로 구분이 가능하다. 중요한 것은 이 4가지 방식중 절대적으로 좋은 것은 없다. 상황에 맞추어 적절한 선택을 해야한다는 것이다. 그것보다 더 중요한 것
이전에 풀어봤던 알고리즘문제들을 다시풀어보고 있다. 다시 보니 새로운 문제처럼 보여서 조금 당황했지만 천천히 다시 해보니 한번 더 머리에 붙는 느낌이 들었다. 이번 주는 새로운 문제보다는 풀었던 문제를 다시한번 풀어보는 과정을 진행할 것 같다.스프링을 사용해보면서 단단