본문 바로가기
  • keep calm and carry on

분류 전체보기9

DDD) Domain Driven Development TDD(Test Driven Development)같은 개발 방법론중 하나이며 TDD에서는 테스트중심의 개발방법론이라면 DDD는 도메인 중심으로 개발하는 방법을 말합니다. 도메인(Domain)이란 소프트웨어 문제 영역이라고 볼 수 있습니다. 추상적인 개념에 대한 정의만을 이야기 하면 이해가 어려우니 예를 들어보도록 하겠습니다. 일상생활 속에서 거치는 생각 루틴 몇가지를 살펴보겠습니다. 만약 당신이 읽고 싶은 책이 생각났다라고 가정하면 당신이 다음에 취할 행동은 다음과 같습니다. 1. 오프라인 서점을 방문하여 책을 구매한다. 2. 온라인 서점을 방문하여 책을 구매한다. 3. 중고거래를 통해 책을 구매한다. 이 과정을 하나씩 풀어보자면 당신의 생각(책을 읽고싶다)은 문제영역으로 볼 수 있고 온/온프라인서점,.. 2021. 7. 21.
[ mariaDB ] 실행계획 #2, id칼럼 EXPLAIN() 명령어의 결과에서 id 칼럼의 숫자가 의미하는 것은 작성한 쿼리의 SELECT문의 갯수를 뜻합니다. 예를 들어보겠습니다. [ 쿼리 ] EXPLAIN ( SELECT * FROM `employees`.`employees` WHERE emp_no = 10032 ); [ 결과 ] id값이 1입니다. 그 이유는 EXPLAIN 안에 있는 쿼리의 SELECT 의 갯수가 1개이기 때문입니다. 다음 예제를 살펴보겠습니다. [ 쿼리 ] EXPLAIN ( SELECT * FROM `employees`.`employees` WHERE emp_no = ( SELECT emp_no FROM `employees`.`salaries` WHERE `salary` = 158220 ) ); [ 결과 ] ( id 칼럼만.. 2019. 12. 8.
[ mariaDB ] 실행계획 분석 #1, EXPLAIN mariaDB는 크게 mariaDB 엔진, 스토리지 엔진 으로 나눌 수 있습니다. mariaDB엔진은 사용자로부터 전달된 쿼리를 파싱하여 파스트리(parse tree)를 만들고, 옵티마이저가 실행계획을 세워 같은 결과를 내지만 비용이 가작 적게드는 쿼리를 만들어 스토리지 엔진으로 전달하는 역할을 합니다. 흔히 옵티마이저를 데이터베이스의 두뇌의 역할로 비유합니다. 옵티마이저의 역할이 SQL 실행 성능에 상당부분을 차지하기 때문에 SQL쿼리 튜닝에 관심이 많거나 SQL 개발자라면 반드시 알고 넘어가야 하는 부분이라고 생각합니다. 실행계획은 옵티마이저의 주된 역할로써 쿼리가 어떻게 실행될지에 대한 많은 정보를 담고 있습니다. mariadb에서 실행계획을 보는 방법은 생각보다 간단합니다. 쿼리문을EXPLAIN(.. 2019. 12. 8.
#카카오톡 링크 인식 분석[코드] [실험] 편에서 카카오톡에서 링크를 보낼경우 링크로 인식하는 경우를 테스트 해 보았고, 나 규칙을 다시 한번 정리하면 다음과 같다. 1) 1, 2, 3, 4 번으로 보아 프로토콜(http(s)) 가 있던 없던 링크로 인식한다. 2) 4번, 5번으로 보아, 마지막에 올 수 있는 도메인이 명확하게 있다. 3) 6번, 7번으로 보아, 링크 앞에 딸린 특수문자는 제외하고 링크로 인식 4) 9번으로 보아, 도메인 마지막의 특수문자는 제외하고 링크로 인식 5) 10,번, 11번으로 보아 - 한개는 링크로 인식, --는 링크로 인식하지 않는다. 6) ₩~!@#$%^&*()+-=;':",.? 의 특수문자가 나오는경우 앞에 특수문자 전까지만 링크로 인식 7) _가 나올경우는 전체를 문자로 인식 8) /가 나오는경우 /뒤.. 2019. 4. 14.