목록전체 글 (107)
정글에서 온 개발자
서브 쿼리조인은 집합간의 곱 관계라, M:N 관계의 테이블을 조인하면 MN 레벨의 집합이 결과로 생성된다.서브 쿼리는 서브 쿼리 레벨과는 상관없이 항상 메인 쿼리 레벨로 결과 집합이 생성된다.결과 집합을 잘보고 서브 쿼리를 써야 할 때 조인을 쓰지 않도록 하자 (DISTINCT로 결과를 원하는대로 낼 수 있지만 비효율적종류동작 방식 :비연관(un-correlated) 서브쿼리, 연관(correlated) 서브 쿼리반환데이터 형태 : Single Row 서브 쿼리, Multi Row 서브 쿼리, Multi Column 서브 쿼리위치에 따라 : 조건절, Select 절 (스칼라 서브 쿼리), From절 (인라인 뷰), Having 절서브쿼리의 논리적 실행 순서는 항생 메인 쿼리에서 데이터 읽음 -> 서브 ..

계기기존에 네트워크 지식이 없을 때는 certbot을 이용하면서도 내가 만들어놓은 WAS가 80 번을 listen하게 한 상태로 nginx-proxy 도커를 설치해서 proxy를 해왔다. 나중에는 갱신까지 포함된 docker를 쓰면서 신세계라고 생각하기도 했다.Go로 짠 프로그램으로 Nginx, Apache 같은 Web Server를 대체할 수도 있다는 사실을 알게 된 뒤로는 (사실 같은 원리로 node.js로도 이런 설정을 할 수 있지만 느릴 수 있다.) 굳이 Nginx를 안 써도 되겠다는 생각이 들었다.마침 이번에 아버지 홈페이지를 만들어드리면서 '주의 요함' 이 뜨길래 이를 해결하고자 도전해 봤다.배경 지식HTTPS암호화 통신을 시작하기 위한 public key가 필요하고, 이 public key에..
x.y.z 형식으로 되어 순서대로 major.minor.patch 를 의미한다.Major하위 호환이 안 될 수도 있는 기능의 변경이다. 예를 들어 python2로 작성한 코드는 python3에서 실행이 제대로 안 될 수 있고, Angular18로 작성한 코드는 Angular19에서 안 될 수 있다.deprecated로 경고하던 기능들이 이 때 사라질 가능성이 있다.Minor하위 호환은 가능한 변경이다. minor 버저닝을 잘지키는 정상적인 라이브러리라면 마음놓고 업데이트해도 현재 작성한 코드에 영향이 없다.Patch가벼운 버그 수정, 주석 변경 등이 있을 수 있다.내 생각현재 진행하는 프로젝트에도 버저닝을 적용하고 , 패치노트도 쓰면 롤백이 필요할 때 많은 참고가 될 것 같다.그런데 minor가 바뀐 ..