728x90
반응형

MySQL 6

[가계부 만들기] Category Table 구조 변경

카테고리 관련 기능을 구현하려고 보니 카테고리 관련 테이블 구조가 잘못된 것을 알게 되었다. 최초에는 시스템에서 정의한 카테고리만 보이도록 하고 시스템에서 정의한 카테고리는 변경을 할 수 없도록 하려고 했다. 그러나 출력되는 순서를 변경하고 싶거나 시스템 카테고리에 서브로 카테고리를 더 추가하고 싶을 수도 있을 것이라고 판단된다. 그럼 회원이 가입할 때 시스템 정의 카테고리를 회원별로 정의해 주고 회원별로 정의된 카테고리는 각 회원이 자신의 필요에 맞춰 수정할 수 있도록 해야 할 것이다. 그리고 최초 정의한 테이블에는 지출에 대한 카테고리만 생각하고 정의했는데 수입에 대해서도 카테고리를 정의하고 싶을 수 있으므로 카테고리 테이블에 수입/지출에 대한 구분 값을 넣을 것이다. 마지막으로 순서를 변경할 수 있..

[가계부 만들기] DB 비동기 처리

프로그램을 구현하다 보면 좀 더 효율적이고 빠르게 동작하는 프로그램으로 계속 수정해나가야 한다. 이렇게 프로그램의 퍼포먼스를 증가시켜서 더 사용자들에게 프로그램이 진화하고 있다는 것을 보여주는 것이 중요하다. 프로그램을 개발하다 보면 보편적으로 가장 많은 리소스를 차지하는 것이 결국에는 IO 처리이다. 파일을 읽고 쓰고, 네트워크로 데이터를 주고 받고 하는 일련의 과정들이 결국에는 IO인 셈이다. 그럼 이렇게 리소스를 많이 잡아먹고 대기시간을 길게하는 IO 작업을 한없이 기다리게 할 수 없을 것이다. 그래서 일반적으로는 이런 처리를 비동기로 처리하도록 개발한다. 동기와 비동기에 대한 차이를 여기서는 자세히 기술하지 않을 것이다. 간단하게 설명하면 동기 방식으로 프로그램을 구현하면 네트워크에 질의를 하였을..

[가계부 만들기] Backend - Database #1

이제 본격적인 개발을 진행해볼 것이다. 본격적인 개발을 시작하면서 데이터를 실제로 저장할 데이터베이스를 연결해두어야 한다. 여기서는 app/databases 디렉토리를 생성하고 거기서 관련 코드를 넣을 계획이다. 개발은 vscode IDE를 사용하여서 진행할 것이다. uvicorn으로 프로그램을 실행하면 app 디렉토리 하단에 __pycache__라는 디렉토리가 생성된다. 이 디렉토리가 계속 생성되고 갱신되는데 개발에서 사용하는 디렉토리가 아니다보니 제법 신경이 쓰인다. 그리서 여기서는 해당 디렉토리를 보이지 않도록 처리한다. backend 디렉토리에서 .vscode 라는 디렉토리는 생성하고 settings.json 파일을 생성한다. 이렇게 하고 나면 디렉토리 구조가 다음과 같아 진다. settings...

[Docker Server] 도커 기반의 PHP 웹 서비스 구성

예전에는 PHP를 통해서 웹 서비스를 구성하는 것을 APM이라고 불렀다. Apache + PHP + Mysql의 앞 글자를 따서 이렇게 이름을 불렀던 것이다. 아파치는 굉장히 훌륭한 프로그램이고 기능도 다양하기 때문에 막강한 프로그램이다. 하지만 이렇게 기능이 많다는 얘기는 무겁고 설정이 어렵다는 의미가 되기도 한다. 실제로 아파치의 모든 설정을 다 알기는 쉽지 않다. 아파치는 다른 프로그램과 연동도 다양하기 진행할 수 있고 많은 역할을 할 수 있기 때문에 이에 대한 설정들은 꽤 복잡하고 어렵다. 그래서 그 대항마로 만들어진 것이 nginx라고 할 수 있을 것이다. nginx는 꽤 간단하고 설정도 간편하게 할 수 있지만 그렇다고 성능이 떨어지는 것도 아니였다. 그래서 10년여전부터 php 서비스를 구성할..

Programming/Technic 2023.02.03

howto switch from mariadb to mysql in ubuntu 12.04

ubuntu 12.04에 MariaDB를 설치하였다가 mysql로 다시 전환할 일이 있는데 문서가 제대로 없어서 오랜 시간 삽질을 했다. 기록을 위해서 내용을 정리한다. 1. mariadb-server 삭제 apt-get purge --auto-remove mariadb-server* apt-get purge --auto-remove mysql-common* 이렇게 해서 mariadb 및 mysql 관련 패키지를 모두 삭제합니다. 2. sources.list 수정 /etc/apt/sources.list 파일에서 mariadb 관련 주소를 삭제 또는 주석처리합니다. 그리고 나서 apt-get update 이렇게 하지 않고 mysql을 설치하면 mysql 관련 의존성 패키지를 가져올 때 mariadb 관련 ..

Windows에 설치된 Mysql 자료를 Linux로 옮기기

뻘짓을 계속하다가 기록을 남겨놓기 위해서 글을 남긴다. 상황은 다음과 같다. Windows에 Mysql 4 버전이 설치되어 있고 Default-Character-Set은 latin1으로 되어 있음Linux Mysql 5 버전이 설치되어 있고 Default-Character-Set은 UTF-8임Windows 머신 한 대와 MacBook Pro를 통해서 작업을 진행함. 일단 자료를 백업받아야 한다. 윈도우즈의 콘솔을 열어서 그냥 mysqldump를 실행하니 온갖 한글이 다 깨져서 저장된다. 그래서 구글링을 해본 결과 다음과 같은 명령어를 통해서 덤프를 떠야한다. mysqldump --default-character-set=latin1 -u유저아이디 -p 데이터베이스이름 > 저장할 파일이름 Character-..

728x90
반응형