전체 글

    PostgreSQL configuration

    데이터 수집 방식 1. 버전별로 DB 설치 후 연결해서 실시간으로 쿼리 날려서 뿌려주기 2. 버전별로 내용을 추출해서 한 DB에 버전별로 테이블 만들어서 저장하기 테이블을 버전별로 만드는 이유 : 버전별로 컬럼이 다를 수 있기 때문에 configuration 확인 쿼리 select * from pg_settings; 아래와 같이 필요한 내용이 한번에 조회된다. postgres.conf와 pg_settings의 차이 postgres.conf PostgreSQL 인스턴스에 대한 현재 설정 변수가 포함된 파일 일반적으로 데이터 디렉토리에 존재 vi로 수정할 수 있지만 프로그래밍 방식으로 조작하기 쉽지 않음 pg_settings 인스턴스에 대한 현재 설정 변수가 포함된 시스템 카탈로그 테이블 ALTER SYST..

    맥(Mac)에 PostgreSQL 설치 + DBeaver 연결

    PostgreSQL 설치 1. 터미널에서 brew를 이용하여 설치 brew install postgresql 2. 버전 확인 postgres -V 3. 시작 brew services start postgresql 4. 접속 psql postgres 유저 확인 종료 brew services stop postgresql DBeaver 연결 1. DBeaver 다운로드 공식 사이트에 접속하여 운영체제에 맞는 파일을 다운로드 한다 2. PostgreSQL 선택 3. 정보 입력 (유저 생성 후 진행해야함) 후 Test Connection 클릭 4. 드라이버 설치 5. 완료 Reference https://shanepark.tistory.com/186 https://pbj0812.tistory.com/407

    [Error] Component name should always be multi-word.

    문제 상황 Vue는 template 단에서 html 요소와 component 요소가 혼동되지 않도록 component 이름을 복합어로 권장한다. 해결 방법 하단의 속성을 프로젝트 package.json의 rules에 추가 공식 Reference vue/multi-word-component-names

    [Error] Parsing error: No Babel config file detected...

    문제 상황 VS Code에서 프로젝트의 ESLint 설정 파일을 인식하는 부분에서 에러 발생 해결 방법 하단의 코드를 VS Code의 settings.json에 추가

    Vue.js 핵심 기능 알아보기

    Reactivity 객체의 동작을 재정의함 데이터의 변경이 화면에 바로 반영됨 인스턴스 속성 new Vue({ el: , template: , data: , methods: , created: , watch: , }); 컴포넌트 화면의 영역을 구분하여 개발할 수 있는 뷰의 기능 재사용성이 향상되어 화면을 빠르게 제작 가능 전역 컴포넌트 // Vue.component('컴포넌트 이름', 컴포넌트 내용); // 전역 컴포넌트 - 거의 안씀 Vue.component("app-header", { template: "Header", }); Vue.component("app-content", { template: "content", }); 지역 컴포넌트 new Vue({ el: "#app", // 지역 컴포넌트 등..

    맥(Mac)에서 Vue.js와 Vuetify 개발환경 구축 및 설치하기

    개발환경 macbook pro (2019) macOS Monterey 12.6.2 node 18.14.0 (LTS) IDE : vscode node.js 설치 node 공식 다운로드 (LTS 설치) Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org vscode 플러그인 설치 Vetur (vue 2.x) Volar (vue 3.x) chrome 플러그인 설치 Vue.js devtools 크롬 개발자 도구에서 Vue 코드를 더 잘 파악할 수 있게 도와줌 Vue.js devtools Browser DevTools extension for debugging Vue.js appli..

    Vue.js란?

    Vue.js 프론트엔드 개발을 쉽게 하기 위한 자바스크립트 프레임워크 MVVM 패턴의 뷰모델(ViewModel) 레이어에 해당하는 화면(View)단 라이브러리 View(html DOM) : 사용자에게 보이는 화면 View Model : View와 Model의 중간 영역으로 DOM Listener와 Data Binding을 제공하는 영역 Model(JS) : 서버에서 가져온 데이터를 자바스크립트 객체로 저장 DOM : HTML 요소를 담고 있는 데이터 트리 DOM Listener : DOM 변경에 즉각적으로 반응하여 특정 로직을 수행 Data Binding : View에 표시되는 내용과 모델의 데이터를 동기화 장점 러닝커브가 낮음 React, Angular에 비해 가볍고 성능이 빠름 React(Virtua..

    Django와 MySQL 연동하기

    Django는 설치할 때 기본적으로 SQLite가 연동됩니다. 하지만 실제 프로젝트를 위해 MySQL 연동 작업을 진행해보겠습니다. 1. 커넥터 설치 mysqlclient 라는 라이브러리를 설치하면 파이썬과 MySQL 통신이 가능합니다. pip install mysqlclient 2. settings.py 설정 DATABASES = { 'default' : { 'ENGINE': 'django.db.backends.mysql', 'NAME': '연동할 데이터베이스 이름', 'USER': 'DB 접속 계정명', 'PASSWORD': 'DB 접속 비밀번호', 'HOST': '실제 DB 주소', 'PORT': '3306', # 기본 포트 주소 } } 3. DB 감지 해당 DB에 존재하는 테이블들을 model로 ..

    Django 튜토리얼 (2) - 데이터베이스

    Django 공식문서를 참조했습니다. 데이터베이스 셋업 기본으로 설치되어 있는 SQLite를 사용할 수 있다. SQLite 진입 # db.sqlite3 가 있는 위치에서 sqlite3 db.sqlite3 모델 만들기 모델이란, 부가적인 메타데이터를 가진 데이터베이스 구조! 1. polls/models.py에서 모델 작성 Question과 Choice 테이블을 만든다. from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): quest..

    Django 튜토리얼 (1) - 프로젝트 생성 및 View 작성

    ✅ 공식문서 https://docs.djangoproject.com/en/4.1/ ⬇️ Django 설치 전이라면 아래 글을 참고해보세요! 맥(Mac)에서 Django 개발환경 구축 및 설치하기 개발환경 macbook pro (2019) macOS Monterey 12.6.2 python 3.9.6 django 4.1.6 python3 설치 1. 설치 여부 확인 python3 --version 2. 설치가 되어있지 않다면 설치 python 공식 다운로드 (3.9.6으로 설치함) https://www.python.org/do myminju.tistory.com 개발환경 macbook pro (2019) macOS Monterey 12.6.2 python 3.9.6 django 4.1.6 Writing yo..

    맥(Mac)에서 Django 개발환경 구축 및 설치하기

    개발환경 macbook pro (2019) macOS Monterey 12.6.2 python 3.9.6 django 4.1.6 python3 설치 1. 설치 여부 확인 python3 --version 2. 설치가 되어있지 않다면 설치 python 공식 다운로드 (3.9.6 설치) Download Python The official home of the Python Programming Language www.python.org python3 명령어를 python으로 바꿀 수 있도록 환경변수 설정 vi ~/.zshrc 실행 후 하단에 아래 코드 기입 alias python="python3" # Setting PATH for Python 3.9 export PATH="/Library/Frameworks/P..

    인프라 엔지니어의 교과서 | 3장

    3장. 운영체제 리눅스 레드햇 계열 : RHEL, CentOS, Fedora, Vine Linux, Scientific Linux, Oracle Linux 등 데비안 계열 : Debian, Ubuntu, KNOPPIX, Linux Mine 등 윈도우 서버 윈도우 서버에서 실행되는 소프트웨어를 사용할 때 닷넷(.NET) 프레임워크를 사용할 때 액티브 디렉터리 환경을 사용할 때 유닉스 대부분 엔터프라이즈 서버용으로 사용 AIX, Solaris, HP-UX

    인프라 엔지니어의 교과서 | 2장

    2장. 서버 05 서버의 종류 랙 마운트형과 타워형 서버의 차이 랙 마운트형 데이터 센터나 서버 룸에 설치된 랙 안에 들어감 19인치 랙에 수용하며 유닛 단위로 사이즈가 정해짐 (1U 높이 = 1.75 inch = 44.45mm) 타워형 서버 사내 서버 룸에 설치되거나 사무실 또는 점포 등에도 설치됨 냉방과 소음을 고려해서 장소 선정 필요 사무실 설치용으로 저소음 서버를 준비할 수 있음 수십 Kg까지 무게가 나가므로 사내에 고밀도로 설치할 경우, 바닥 하중에 주의 엔트리, 미들레인지, 하이엔드 서버 엔트리 서버 수십만 엔 웹 서버나 애플리케이션 서버에 이용 소켓 단위로 1~2개의 CPU를 탑재할 수 있음 미들레인지 서버 수백만 엔 데이터베이스 서버나 기간계 서버에 이용 기간계 시스템 = 기간 업무 시스템..

    인프라 엔지니어의 교과서 | 1장

    1장. 인프라 엔지니어의 업무 01 인프라 엔지니어의 업무 인프라 설계 인프라를 만든 목적을 잘 이해한다. 목적을 달성하기 위해 필요한 기능이나 성능 등을 기준으로 조건을 정리한다. 조건에 맞는 기획서와 설계서를 작성한다. 비용, 기간 등을 예상 책임자에게 결재를 올린다. 인프라 구축 작업 내용 : 기기 운반과 조립, 장착, 설치, 설정, 동작 테스트, 부하 테스트 등 인프라 엔지니어가 직접하거나 오퍼레이터나 외부 업체에 맡김 SI(System Integration) 업계 CE : 기기 설치 관련 하드웨어 작업 SE : 서버나 스토리지 관련 시스템 작업 NE : 네트워크 장비 관련 네트워크 작업 웹기반 업계 보통 역할 분담을 하지 않고 처음부터 끝까지 인프라 엔지니어의 몫 인프라 운영 장애 대응 수용량 ..

    리눅스 다양한 환경설정 파일 알아보기 (feat. 시스템과 사용자)

    NHN Cloud에 redis를 자동 설치하는 쉘 스크립트를 작성하면서 여러 환경설정 파일을 수정해야 하는 상황이 있었다. 사실 /etc/profile, bashrc를 수정하면서도 정확히 어떤 아이들인지 알지 못한 채 찜찜한 상태로.. 돌아가는데만 집중한 점을 반성하면서 (ㅠㅠ) 리눅스에 어떤 환경설정 파일들이 있는지, 어떤 역할을 하는지, 어떤 순서로 적용되는지 꼼꼼히 알아보고자 한다. 또한, 선임님께서 말씀해주신 시스템용과 유저별 환경설정 파일의 구분과 설정 내용을 영구적으로 적용하는 방법도 함께 살펴보자! 1. 시스템 / 사용자 설정 파일 시스템 설정 파일 시스템(로그인 쉘)을 사용하는 전체 사용자의 공통 환경을 설정, 시스템 관리자가 관리 /etc 디렉토리에 존재 많이 사용하는 bash 쉘 /et..

    wget이란? 개념, 특징과 사용법에 대해서

    NHN Cloud 인스턴스에 MySQL을 설치하는 쉘 스크립트를 작성하면서 wget이라는 것을 알게 되었다. 리눅스에서 인터넷을 통해 파일을 받는 가장 좋은 방법은 wget 명령어를 사용하는 것이다. 단순히 단일 파일을 받는 정도로 사용하고 있었는데 다른 인턴분이 --spider 옵션 사용한 것을 보고 wget에 대해서 좀 더 자세히 알아볼까 한다! ✅ 공식문서 http://gnu.org/software/wget/ 개념 wget은 webget의 줄임말 HTTP, HTTPS, FTP와 FTPS 등 가장 널리 사용되는 인터넷 프로토콜을 이용해 파일을 검색하기 위한 자유 소프트웨어 패키지 상호작용 하지 않는 (non-interactive) 커맨드라인 툴이기 때문에 스크립트, cron 작업, X-Windows ..

    Redis 설치 자동화 스크립트 (2) - Yum 방식

    과제 내용 스크립트를 실행하면 비밀번호 없이 접속할 수 있도록 작성 가장 최신 버전을 설치함 sh install_redis.sh 개발환경 NHN Cloud CentOS 7.9 프로세스 코드 su - : root 계정으로 실행 yum repository 업데이트 redis가 이미 설치되어 있는지 확인 설치된 경우 삭제 dependency들이 이미 설치되어 있는지 확인 redis 설치 및 실행 redis.conf 등 설정 redis 재실행 설치결과 로그 파일로 저장 결과

    Redis 설치 자동화 스크립트 (1) - binary 방식

    과제 내용 스크립트를 실행하면 자동으로 redis를 설치함 redis-cli 입력시 자동으로 접속할 수 있는 alias 추가 설치 버전을 변수로 받기 sh install_redis.sh 7.0.8 개발환경 NHN Cloud CentOS 7.9 프로세스 코드 버전을 입력받지 않았을 때 버전을 입력받았을 때 입력한 버전을 설치할 것인지 묻기 redis와 dependency들이 이미 설치되어 있는지 확인 redis 다운로드 및 설치 redis.conf 등 설정 redis 실행 alias 설정 결과

    MySQL 설치 자동화 스크립트 (2) - Yum 방식

    과제 내용 스크립트를 실행하면 비밀번호 없이 접속할 수 있도록 작성 가장 최신 버전을 설치함 sh install_mysql.sh 개발환경 NHN Cloud CentOS 7.9 프로세스 코드 yum repository 업데이트 MySQL이 이미 설치되어 있는지 확인 설치된 경우 삭제 MySQL 설치 MySQL 실행 임시 비밀번호로 로그인 설치결과 로그 파일로 저장 결과

    MySQL 설치 자동화 스크립트 (1) - binary 방식

    과제 내용 스크립트를 실행하면 비밀번호 없이 접속할 수 있도록 작성 설치할 버전을 변수로 받기 sh install_mysql 8.0.32 개발환경 NHN Cloud CentOS 7.9 프로세스 코드 버전을 입력받지 않았을 때 버전을 입력받았을 때 입력한 버전을 설치할 것인지 묻기 OS와 아키텍처 버전 확인 MySQL이 이미 설치되어 있는지 확인 이미 설치된 경우 삭제할 것인지 묻기 wget이 설치되어 있는지 확인 MySQL 다운로드 및 설치 my.cnf 설정 data, logs 파일 만들고 환경변수 설정 초기화 및 시작 MySQL 실행 결과 피드백 여러 버전의 데이터베이스를 설치하고 싶을 수 있다. 설치할 때 파라미터로 포트번호도 받기 설치될 디렉토리도 분리해야 함 OS ubuntu 까지는 분기 처리하기..

    Dooray API를 이용한 태스크 생성 자동화 - 고도화 ver

    ✅ 공식문서 https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419 📍 목차 과제 내용 프로세스 주요 명령어 코드 결과 과제 내용 특정 두레이 프로젝트에 일일 스크럼 태스크를 자동 등록해주는 프로그램 작성 일일 태스크 생성: [2023/01/10 (화) 일일 스크럼] 등 일일 스크럼 태스크를 1주일 전 매일 자동 생성 주간 태스크 생성: 2023/01/10(화) 데이터운영팀 주간 업무 회의 의 주간 회의 태스크는 다음주 회의 태스크 자동 생성 프로세스 개발환경 macOS Monterey intel 7i / x86_64 도식화 상위 업무가 있는지 확인 없으면 연 또는 월 단위의 상위 업무 생성 해당 일에 업무가 있..

    Dooray API를 이용한 태스크 생성 자동화

    ✅ 공식문서 https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419 명령어 curl 프로토콜을 이용해 URL로 데이터를 전송해서 서버에 데이터를 보내거나 가져올 때 사용하는 명령어 Shell에서 REST API(http) 테스트를 하고 싶을 때 사용 지원하는 프로토콜 : http / https / ftp / ldap / scp / telnet / smtp / pop3 등 Linux/mac OS : 기본 탑재 사용한 옵션 -d : http POST 요청 데이터 입력 -s : 진행 내용이나 메시지 출력 안되게 -X : 요청시 사용할 메소드 종류 -H : 전송할 헤더 지정 date 날짜 및 시간을 다양한 포맷으로 출력..

    데이터베이스 첫걸음 | 8장

    8. 테이블 설계의 기초 테이블의 개념과 정규형 테이블 설계 정규형 체크포인트 🧐 관계형 데이터베이스가 주류가 된 이유는 무엇일까? ❗️ Garbage in, Garbage out 이라는 말이 있듯이, 데이터베이스에서 데이터 저장은 매우 중요함 데이터베이스에서 데이터의 정합성은 매우 높은 단계로 요구됨 관계형 데이터베이스가 데이터의 정합성을 높이기 위한 설계 노하우가 매우 발달함 테이블 설계 테이블 데이터를 관리하는 그릇 열과 행으로 구성된 데이터 구조 (엑셀) 유니크한 기본키를 가지는 공통 속성을 가진 것의 집합 현실 세계의 개념이나 집합을 나타낸 것 서버나 스토리지 같은 물리층과 관계없이 독립적으로 작성하는 것이 가능해서 '논리 설계'라고도 부름 원칙 테이블이란 공통점을 가진 사물의 집합을 나타낸 것..

    [Redis] 자세히 알아보기! (8) - ACL

    ACL Access Control List의 줄임말로 redis 6부터 도입된 기능입니다. 다른 RDBMS(MySQL, Oracle 등)에는 유저별로 접근 가능한 범위를 정할 수 있지만 redis에는 유저라는 개념이 없었습니다. ACL은 유저를 설정하고 실행 가능한 커맨드와 접근할 수 있는 키 측면에서 특정 연결을 가능하게 해줍니다. # 1 ACL SETUSER alice on >p1pp0 ~cached:* +get # 2 AUTH alice p1pp0 #1 : alice 라는 user를 생성한다. 이름 패스워드 : p1pp0 접근 가능한 키 패턴 : cached 로 시작하는 key들에 접근할 수 있다. (allkeys : 모든 키에 접근 가능) 실행 가능한 커맨드 : 접근할 때는 get 만 사용할 수 ..

    [Redis] 자세히 알아보기! (7) - Pub/Sub

    Pub/Sub - 메시지 브로커 Pub/Sub은 Publish/Subscribe의 줄임말입니다. 단어 자체에 구독/게시라는 뜻이 있듯이 Redis에서 Pub/Sub 기능을 사용하면 클라이언트가 채널을 통해 메시지를 주고받음으로써 서로 통신할 수 있습니다. 구조 클라이언트는 하나의 Topic을 "Sub"하고, 해당 토픽을 "Sub"한 다른 모든 클라이언트는 해당 Topic에서 "Pub"되는 메시지를 수신합니다. Topic이라는 매개체를 통해서 메시지를 전달하므로 수신자와 발신자가 서로를 알지 못하더라도 메시지를 송수신할 수 있습니다. 특징 메시지는 Redis에 저장되지 않고 채널을 구독하는 클라이언트에 실시간으로 전송된다는 점에 유의해야 합니다. 클라이언트에게 전달되면 이를 바로 삭제합니다. 예시 이를 통..

    NHN Cloud 인스턴스에 Redis 설치하기 (2) - Yum 이용

    ✅ 공식문서 Install Redis on Linux ⬇️ Redis 설치 전에 인스턴스 생성하는 방법 ⬇️ 2023.01.08 - [인프라/NHN Cloud] - NHN Cloud 인스턴스 생성하기 인스턴스 환경 OS : CentOS 7.9 아키텍쳐: x86_64 설치할 Redis 버전 redis 7.0.8 (the lastest stable) 1. 설치 과정 ( 1 / 4 ) 인스턴스에 SSH 방식으로 접속 ssh -i [키페어이름.pem] centos@[플로팅IP] ( 2 / 4 ) epel 다운로드 yum 리포지토리에는 최신버전(7.0.8)이 아닌 3.2.12 버전이 있으므로 epel, remi 저장소를 이용 sudo yum install epel-release 💡 EPEL이란? 더보기 Extra..

    NHN Cloud 인스턴스에 Redis 설치하기 (1) - 압축파일 이용

    ✅ 공식문서 Install Redis from Source ⬇️ Redis 설치 전에 인스턴스 생성하는 방법 ⬇️ 2023.01.08 - [인프라/NHN Cloud] - NHN Cloud 인스턴스 생성하기 인스턴스 환경 OS : CentOS 7.9 아키텍쳐: x86_64 설치할 Redis 버전 redis 7.0.8 (the lastest stable) 1. 설치 과정 ( 1 / 6 ) 인스턴스에 SSH 방식으로 접속 ssh -i [키페어이름.pem] centos@[플로팅IP] ( 2 / 6 ) wget 다운로드 # 인터넷이 가능한 환경일 경우 sudo yum install wget # 인터넷이 불가능할 경우 # 설치할 파일을 서버에 업로드해서 진행 ( 3 / 6 ) redis 바이너리 버전 압축파일 다운..

    데이터베이스 첫걸음 | 6장

    6장. SQL 문의 기본 SELECT 문의 이해 SELECT INSERT, UPDATE, DELETE VIEW SUBQUERY JOIN 체크포인트 🧐 SQL을 왜 사용할까? 요즘은 ORM으로 작업을 많이 하니까 SQL.. 자세히 몰라도 되는거 아닐까? SQL을 알아야 하는 이유는 무엇일까? ❗️ ORM은 SQL을 쉽게 사용하기 위하여, 접근성을 위해 만들어진 하나의 도구 ORM이 왜 나오게 되었는지 SQL 동작원리는 어떻게 된건지 ORM이 없을 때는 어떻게 해야하는지 제일 중요한 것은 가장 기본적인 것, DB에 직접 접근해서 데이터를 열람하거나 필터링 할 수 있어야 합니다. SELECT 문 MySQL CLI를 실행하여 로그인을 한 후 MySQL 서버에 있는 데이터베이스 목록 표시 mysql> show d..

    데이터베이스 첫걸음 | 5장

    5장. DBMS를 조작할 때 필요한 기본 지식 조작하기 전에 알아두어야 할 것 ⬇️ MySQL 설치방법 ⬇️ 2023.01.18 - [인프라/NHN Cloud] - NHN Cloud 인스턴스에 MySQL 설치하기 (1) - 압축파일 이용 2023.01.18 - [인프라/NHN Cloud] - NHN Cloud 인스턴스에 MySQL 설치하기 (2) - Yum 이용 2023.01.18 - [인프라/NHN Cloud] - NHN Cloud 인스턴스에 MySQL 설치하기 (3) - 설정 MySQL과 커넥션 만들기 로그인 로그인 성공: MySQL이라는 DBMS에 사용자가 로그인해서 조작할 수 있게 된 상태 mysql> : 프롬프트, 사용자 명령을 입력 받을 수 있는 상태 커넥션 로그인해서 프롬프트가 표시되었다는 ..

    데이터베이스 첫걸음 | 4장

    4장. 데이터베이스와 아키텍처 구성 견고하고 고속의 시스템을 구축하기 위해 데이터베이스 아키텍처 클러스터링 리플리케이션 샤딩 데이터베이스의 아키텍처 💡 아키텍처란 시스템을 만들기 위한 물리 레벨의 조합 ➡️ 하드웨어와 미들웨어의 구성 = 어떤 기능을 가진 서버를 준비하고 어떠한 저장소나 네트워크 기기와 조합할 것인지? 1. 역사와 개요 아키텍처의 역사 '아키텍처'라는 말은 추상적이어서 딱 들었을 때 이미지를 떠올리기가 쉽지 않다. 그래서 구체적인 시스템 구성을 예로 들어보려고 한다. 데이터베이스에 관한 아키텍처의 역사는 다음 3단계로 나누어진다. 1) Stand-alone (~1980년대) 2) 클라이언트/서버 (1990년대~2000년) 3) Web 3계층 (2000년~현재) 1) Stand-alone ..