사이트에 연결할 수 없음 (DNS_PROBE_FINISIHED_NXDOMAIN)최근에 하나의 애플리케이션 서버를 구축하고 배포한 뒤 당당하게 도메인으로 접속했는데 아래 화면을 만난 적이 있다. 해당 화면은 잘못된 사이트에 접속하면 쉽게 만나볼 수 있는 화면이다.그렇다면 이 화면이 보여지는 이유는 뭘까? 하단의 오류명이 DNS로 시작하는 것을 보아하니, DNS와 관련이 있어 보인다.그래서 우선은, 브라우저의 URL 입력창에 접근하고자 하는 URL을 입력했을 때 무슨 일이 일어나는지를 먼저 되짚어봤다.브라우저는 먼저 URL을 분석하여 URL로부터 도메인을 추출한다.(https://admin.devpanpan.com → admin.devpanpan.com)도메인으로부터 IP 주소를 얻어내기 위해 DNS 서버에..
이 글은 최범균 님의 유튜브 “프로그래밍 초식 : DB 트랜잭션 조금 이해하기 02 격리”를 시청하고 작성되었습니다. 같은 데이터에 동시 접근? 동시성은 초심자가 놓치기 쉬운 문제를 발생시킴 ex) 당직 담당자를 최소 1명은 유지해야 한다. 2명의 담당자 A, B가 존재한다. A가 담당자 수를 SELECT ⇒ 결과: 2 B가 담당자 수를 SELECT ⇒ 결과: 2 A는 자신이 빠져도 최소 1명을 만족하므로 자신을 당직에서 제거하도록 UPDATE B가 자신이 빠져도 최소 1명을 만족하므로 자신을 당직에서 제거하도록 UPDATE 결과적으로 남은 당직자는 0명. 최소 1명을 유지해야 한다는 비즈니스 로직 위반 왜? A와 B가 동시에 같은 데이터(당직자 수)에 접근했기 때문 따라서 트랜잭션을 격리하여 이러한 동..
트랜잭션 (Transaction) 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 트랜잭션이 필요한 이유 SELECT → UPDATE → INSERT 순으로 동작하는 비즈니스 로직이 있다고 가정하자. 만약 UPDATE를 성공적으로 수행한 후 INSERT를 수행하는 과정에서 오류가 발생해 성공적으로 INSERT가 수행되지 않았다면, 이는 로직을 작성한 개발자가 의도한대로 처리된 것이 아니라고 봐야 한다. 따라서 개발자는 어떻게든 수행된 UPDATE를 되돌려야 하고, 이는 복잡한 추가 작업을 요구한다. 트랜잭션을 도입하면 INSERT까지 모든 쿼리가 정상적으로 수행된 경우에만 변경 사항을 반영하고(Commit), 중간에 예외 등에 의해 일부 쿼리가 정상적으로 수행되지 못한 경우에는 수행된 쿼리의 ..
클라이언트에서도 데이터베이스에서 길이 제한 오류가 나지 않도록 문자열 길이에 제한을 둘 필요가 있다. 보통 한글과 같은 문자는 1 Byte가 아닌 2 또는 3 Bytes로 이루어진다. (주로 사용하는 UTF-8은 한글을 3 Bytes로 표현한다.) 따라서, VARCHAR가 Byte를 기준으로 한다면 VARCHAR의 길이 제한은 어떤 것을 입력하는지, 어떤 인코딩 방식을 사용하는지에 따라 달라질 것이다. 이를 모르고 사용하면 추후에 이슈가 생길 수도 있고, 데이터베이스 마이그레이션 시 문제가 발생할 여지도 있을 것 같아 주로 사용하는 DBMS 종류별로 정리해보았다. ✔ VARCHAR의 기준 - MySQL 버전 4.1 이전까지는 Bytes를 사용했다가 4.1부터는 Character를 사용한다고 한다. 즉, ..
IP 주소는 A부터 E까지 총 5개의 클래스로 구성된다. 다섯 가지 클래스는 다음과 같이 구성된다. 위 그림을 통해 알 수 있는 한 가지 사실은 IP를 나타내기 위해 사용되는 비트의 수가 다르다는 것이다. IP를 나타내기 위한 비트를 제외한 비트는 모두 호스트를 할당하는 비트로 사용된다. 즉, 클래스별로 할당 가능한 호스트의 수가 다르며, A클래스가 가장 많고 C 클래스로 갈수록 줄어든다. 일반적으로 클래스 A는 대규모 네트워크에, 클래스 B는 중간 규모의 네트워크에, 클래스 C는 소규모 네트워크에 사용된다. D와 E는 멀티캐스트, 연구 등에 사용되기 위한 클래스이지만 잘 사용되지 않는다고 한다. 또한, IP는 사설 IP와 공인 IP로 나뉜다. 사설 IP는 특정 네트워크 내에서 사용하는 상대적인 주소라면..
✔ 산술 평균 (Arithmetic Mean) 일상 생활에서 우리가 평균을 구할 때 주로 사용하는 방식이다. 특징 전체 데이터의 합이 의미가 있는 자료인 경우 사용한다. 때문에 합 계산을 적용할 수 없는 비율값 등을 이용할 때에는 산술 평균보다 조화 평균을 이용하는 것이 좋다. 매우 큰 값 또는 매우 작은 값이 포함되어 있다면 산술 평균 값은 크게 변화한다. ✔ 기하 평균 (Geometric Mean) 변화량의 평균 계산, 데이터의 정규화에는 산술 평균을 적용하기 어렵기 때문에 등장하였다. 특징 데이터를 정규화할 때에는 기하평균을 이용하면 좋다. 산술평균은 정규화의 기준을 다르게 잡으면 데이터의 크기 순위가 달라질 수도 있다. ✔ 조화 평균 (Harmonic Mean) 특징 비율값의 평균을 구할 때에는 ..