STUDY
-
-
[도메인 주도 개발 시작하기] 1. 도메인 모델 시작하기STUDY/DDD 2022. 11. 1. 00:13
1. 도메인(domain)이란? 소프트웨어로 해결하고자 하는 문제 영역 사용자가 소프트웨어를 사용하는 대상 영역(소프트웨어는 도메인의 문제를 해결하는 수단임) 일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역 예를 들어, 개발자 입장에서 온라인 서점은 구현해야 할 소프트웨어의 대상이 된다. 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품 조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. 이때 온라인 서점은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인(domain)에 해당한다. 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 카탈로그 하위 도메인은 고객에게 구매할 ..
-
도커와 쿠버네티스STUDY/Docker 2022. 10. 25. 23:59
애플리케이션 배포 환경 변화 Traditional Deployment(전통적 배포)는 오래전부터 쓰이던 가상화 이전 방식이다. 물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러가지 프로그램을 설치하는 방식이다. 가장 오래되고 단순한 방식이며 단일 목적 시스템이라면 별 무리가 없다. 하지만 이 방식은 한 대의 컴퓨터에서 모든 것을 처리하므로, 어떤 프로그램의 동작이 다른 프로그램의 동작을 간섭하거나, 특정 프로그램이 성능을 독점할 경우 또 다른 프로그램의 성능이 떨어지는 단점이 존재한다. 이에 대한 해결책은 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것이 있다. 하지만 이 방법은 많은 비용이 든다. 이 문제를 해결하기 위해 등장한 것이 Virtualized Deployment(가상화 배포)이..
-
마이크로서비스 아키텍처STUDY/Docker 2022. 10. 18. 22:09
이전 애플리케이션 구축 방식에서는 모놀리식 아키텍처에 중점을 두었는데, 모놀리식 아키텍처는 애플리케이션에서 구축 가능한 모든 부분이 하나의 애플리케이션에 포함하는 방식이다. 이 방식의 단점은 애플리케이션이 커질수록 새로운 문제를 해결하고 새로운 기능을 추가하는 것이 어려워진다는 것인데, 이를 해결하기 위해 등장한 것이 마이크로서비스 아키텍처이다. 마이크로서비스 아키텍처는 시스템 전체가 하나의 목적을 지향하는 것은 모놀리식 아키텍처와 동일하지만 개별 기능을 하는 작은 서비스를 각각 개발해 연결하는 데 차이가 있다. 애플리케이션을 상호 독립적인 최소 구성 요소로 분할하는 방식으로, 모든 요소가 독립적이며 연동되어 동일한 테스크를 완수한다. 보안, 인증 등과 관련된 기능이 독립된 서비스를 구성하고 있으며 다른..
-
개발자를 위한 인덱스 생성과 SQL 작성 노하우 : 22-24STUDY/DB 2022. 8. 30. 21:16
- 오라클 에러 메시지 1. "ORA-00001: 유일성 제약조건에 위배됩니다" 테이블에 PK가 있거나 UNIQUE INDEX가 있을 때, 중복되게 INSERT 하면 발생한다. 2. "ORA-00942: 테이블 또는 뷰가 존재하지 않습니다" 개발자의 오타에 의한 경우가 가장 흔하지만, 실제로 테이블이 생성됐는지 확인이 필요하다. 또한 권한이 없을 때 발생하는 경우도 존재한다. 권한이 없는 경우에는 권한을 요청하거나 직접 권한을 부여할 수 있다. GRANT SELECT, INSERT, UPDATE, DELETE ON [테이블명] TO [유저명] 마지막으로 대소문자 사용에 의한 문제일 수 있다. 오라클은 대소문자 구분이 없으며 자동으로 테이블이 대문자로 생성되지만, 따옴표로 감싸서 소문자로 테이블을 생성할 ..
-
개발자를 위한 인덱스 생성과 SQL작성 노하우 : 18-20STUDY/DB 2022. 8. 15. 23:06
- 오라클 기능 1. FLASHBACK 오라클에서 삭제 혹은 갱신된 레코드는 commit 하기 전에는 rollback 명령어를 사용하면 원복이 가능했다. 만약 이미 commit 명령어가 실행돼 완전히 삭제 혹은 갱신됐다면, 지금까지는 레코드 원복이 불가능했지만, 오라클 10g 이후부터는 flashback 기능을 제공해 commit 이전 상태의 레코드도 조회할 수 있게 됐으며, 레코드 원복까지도 가능하다. commit/rollback 여부와 상관없이 한시적으로 데이터를 백업하는 기능을 지원해, 특정 시점의 데이터를 원복 가능하게 됐는데, flashback 기능은 오라클 서버에 부하를 주므로 사전에 설정된 제한 시간만큼만 지원된다. db_flashback_retention_target 에서 설정된 시간을 확..
-
개발자를 위한 인덱스 생성과 SQL작성 노하우 : 15-17STUDY/DB 2022. 8. 10. 22:24
- 유용한 오라클 힌트절 1. 접근 순서를 결정하는 힌트절 ORDERED : FROM 절에 나열된 테이블 순서대로 접근한다.(SQL문에 종속적) LEADING : 테이블 접근 순서를 명시적으로 표현한다.(SQL문에 독립적) SELECT /*+ ORDERED */ 컬럼들, ... FROM 고객 A, 주문 B WHERE A.고객번호 = B.고객번호 AND A.고객명 = ? AND B.주문일자 = ? SELECT /*+ LEADING(B A) */ 컬럼들, ... FROM 고객 A, 주문 B WHERE A.고객번호 = B.고객번호 AND A.고객명 = ? AND B.주문일자 = ? ORDERED 힌트절은 FROM절에 나열된 테이블 순으로 접근을 유도하지만, LEADING 힌트절은 테이블 접근 순서를 명시적으로..
-
개발자를 위한 인덱스 생성과 SQL 작성 노하우 : 12-14STUDY/DB 2022. 8. 1. 23:17
- 오라클의 조인 방식 관계형 데이터베이스에서 쿼리는 조인(Join) 없이 단독으로 사용하는 경우가 거의 없다. 대부분의 쿼리는 여러 테이블 간의 관계를 맻는 경우이고, 오라클의 조인은 이러한 테이블 간 관계에 있어서 어떤 방식으로 접근하는가에 대한 조인이다. 오라클에서의 조인은 방식에 따라 쿼리의 비용과 성능이 달라지기 때문에 중요하다. 조인 방식 Nested Loop Join : 순차적 루프에 의한 접근 방식, 소량 데이터 처리에 적합 Sort Merge Join : 정렬을 통한 접근 방식, 거의 사용하지 않음 Hash Join : 해시 함수를 이용한 접근 방식, 대량의 데이터 처리에 효율 Nested Loop Join(NL 조인) 보통 가장 흔하게 접할 수 있는 오라클 조인 방식으로 OLTP(Onl..