전체 글47 [개발도서] Real MySQL 8.0 2권(작성 중) 을 읽고 개인 학습용으로 정리한 내용입니다. 쿼리 작성 및 최적화 동등 비교(=, ) : NULL-Safe 비교 연산자라고 하여 NULL에 대한 비교도 수행한다. => 동등 비교의 두 대상이 모두 NULL일 경우 1, 그렇지 않을 경우 0 NULL NULL : 1 NULL = 1 : NULL 나누기(/, DIV)와 나머지(%, MOD)연산자 - /: 일반적인 나누기 - DIV: 몫만 반환 - %, MOD: 나머지만 반환 REGEXP 연산자 - 정규 표현식을 이용한 패턴 비교 - REGEXP 연산자는 인덱스 레인지 스캔을 사용할 수 없다. 따라서 가능한 데이터 조회 범위를 줄이고 REGEXP 연산자를 사용하기 권장한 다. - ex) SELECT 'abc' REGEXP '^[x-z]'; => 문자가 'x',.. 2022. 5. 11. [개발도서] Real MySQL 8.0 1권 을 읽고 개인 학습용으로 정리한 내용입니다. MySQL 엔진 아키텍처 - mysql 서버는 크게 mysql 엔진과 스토리지 엔진으로 구분할 수 있다. MySQL 엔진 - mysql 엔진은 클라이언트로부터 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 sql 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다. 스토리지 엔진 - mysql 엔진은 요청된 sql 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행하고, 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어오는 부분은 스토리지 엔진이 전담한다. - mysql 서버에서 mysql 엔진은 하나지만 스토리지 엔진은 여러 개를 동시에 사용할 수 있다. CREATE TABLE test_.. 2022. 4. 19. [개발 도서] 파이썬 코딩의 기술 을 읽고 개인 학습용으로 정리한 내용입니다. PEP 8 스타일 가이드를 따르라 - PEP 8은 파이썬 코드를 어떤 형식으로 작성할지 알려주는 스타일 가이드다. - 일관된 스타일을 사용하면 코드를 더 쉽게 읽을 수 있고 다른 개발자들과 공통된 코드 스타일을 공유하여 협업에 이점이 있다. 공백 - 파일 안에서 각 함수와 클래스 사이에는 빈 줄을 두 줄 넣어라 - 클래스 안에서 메서드와 메서드 사이에는 빈 줄을 한 줄 넣어라 - dictionary에서 키와 콜론 사이에는 공백을 넣지 않고, 한 줄 안에 키와 값을 같이 넣는 경우에는 콜론 다음에 스페이스를 하나 넣는다. ex)"key": "value" - 변수 대입에서 = 전후에는 스페이스를 하나씩만 넣는다. ex) a = 1 - 타입 표기를 덧붙이는 경우에는.. 2021. 12. 7. [개발도서] 클린코드 (클린코드)을 읽고 개인 학습용으로 정리한 내용입니다. 의미 있는 이름 의도를 분명히 밝혀라 - 변수나 함수, 클래스 명을 지을 때 이름이 분명히 나타나도록 짓는다. - int d, x[0] == 4 와 같이 의미 없는 이름은 새롭게 코드를 읽는 사람에게 추가적인 정보를 해석할 시간이 필요하게 된다. => cell[STATUE_VALUE] == FLAGGED 와 같이 이름을 통해 의도를 명확히 해주는 것이 좋다. 그릇된 정보를 피해라 - list의 경우 프로그래머에게 특수한 의미이다. 이를 List 자료구조가 아닌 변수의 이름에 List를 붙이게 되면 혼란을 줄 수 있다. => 변수명에 다수의 데이터를 표현하고 싶다면 list가 아니라 복수형의 단어를 사용하는 것이 좋다. 의미있게 구분하라 - 예를 들어.. 2021. 11. 7. [강의] 우리를 위한 프로그래밍 : 파이썬 중급 (인프런)을 학습하고 개인 학습용으로 정리한 내용입니다 클래스 변수와 인스턴스 변수 - 클래스 변수는 클래스 내부에 선언되어 있어 모든 인스턴스가 공유한다. - 인스턴스 변수는 해당 인스턴스 내에서만 사용되는 변수로 앞에 'self.' 가 붙게 된다. - 파이썬 코드에서 특정 변수를 확인할 때 인스턴스 변수 먼저 확인하고 없으면 클래스 변수를 확인한다. class Account: num_accounts = 0 // 클래스 변수 def __init__(self, name): self.name = name // 인스턴스 변수 클래스 메소드 - 클래스 내 메소드에는 class, instance, static 3가지 종류가 있다. - 클래스 메소드에는 @classmethod 데코레이터가 붙는다. => 클래스 변.. 2021. 9. 29. Docker를 이용한 무중단 배포 기존의 배포 과정 - 서버에 빌드된 jar 파일을 배포하게 되면 새롭게 배포된 버전으로 애플리케이션을 실행해야한다. - 이때 새롭게 배포된 버전으로 애플리케이션을 실행하게 되면 잠시 동안이지만 새로운 버전의 애플리케이션이 실행되기 전까지 해당 서비스를 이용할 수 없게된다. - 실제 운영 환경에서 아무리 사용자의 수가 적은 새벽시간에 배포를 수행한다 하더라고 서비스가 정지되는 일이 있어서는 안된다. 무중단 배포 - 서비스가 중단되지 않고 배포 작업을 수행할 수 있도록 무중단 배포환경을 구축해보자 - nginx 웹서버를 사용해 로드밸런싱 설정을 해주고 여러대의 서버를 이용하면 무중단 배포환경을 구축할 수 있다. 배포 전략 - 무중단 배포환경을 구축하기 앞서 어떤 배포 전략을 사용할 것인지 고려해보자 - 대표.. 2021. 3. 30. 이전 1 2 3 4 ··· 8 다음