분류 전체보기 101

[Docker] 1-1. 도커란 무엇인가

1. 도커란 무엇인가 도커란? 한마디로 정의하면 데이터 또는 프로그램을 격리시키는 기능을 제공하는 SW 이 기능은 주로 서버에서 사용된다. 마치 개인용 컴퓨터에서 여러 가지 프로그램이 동작하듯 서버에서도 여러 가지 SW들이 함께 동작한다. 도커는 이렇게 다양한 프로그램과 데이터를 각각 독립된 환경으로 격리하는 기능을 제공한다. 뿐만 아니라 다른 사람들에게 똑같은 작업 환경을 전달하는 기능도 제공한다. 컨테이너와 도커 엔진 개인용 컴퓨터 또는 서버 상의 환경을 마치 코스트코에서 판매하는 조립형 창고 같은 작은 방으로 분할한다고 생각해보자. 그 창고에 데이터나 프로그램을 둔다. 이때, 조립형 창고를 컨테이너(container)라고 하고 이러한 컨테이너들을 다루는 기능을 제공하는 SW가 도커(Docker)이다..

Docker 2023.05.15

[MySQL 성능 최적화] Day 1 (p.2 ~ 21)

01. MySQL 아키텍처 MySQL은 아키텍처의 특성 덕분에 광범위한 목적에 유용하게 사용된다. 작은 개인 웹 사이트에서부터 대규모 엔터프라이즈 애플리케이션에 이르기까지 크고 작은 환경에서 잘 동작할 만큼 유연하다. MySQL을 최대한 활용하려면 MySQL의 의도에 맞게 잘 활용할 수 있도록 해야 하고 그러기 위해서는 MySQL의 설계를 이해해야 한다 01장에서는 MySQL 서버 아키텍처를 살펴보고 스토리지 엔진 간의 주요한 차이점에 대해서 살펴볼 것이다. MySQL의 논리적 아키텍처 MySQL의 구성요소가 함께 작동하는 원리를 잘 이해하면 서버를 이해하는데 도움이 된다. 1번째 계층 (클라이언트) MySQL의 고유한 서비스보다는 대부분의 네트워크 기반 클라이언트/서버 도구 또는 서버에 필요한 연결 처..

[파이썬 코드 업] 9-2장. 클래스와 매직 메서드

9.9 매직 메서드 개요 파이썬은 의미를 미리 정의한 여러 메서드 이름이 있다. 모든 이름은 언더바 2개(__)로 시작하고 끝난다. 이런 메서드를 던더(dunder, double underscore) 메서드라 부른다. 그래서 메서드 이름을 지을 때 언더바 2개(__)를 아예 사용하지 않는다면 던더 메서드의 이름과 겹치지 않는다. 미리 정의된 이름을 사용하는 메서드를 매직 메서드라고 부른다. 다른 메서드와 똑같은 방식으로 호출되지만 특정 조건에 따라 자동으로 호출되기도 한다. ex) __init__ 메서드 : 해당 클래스의 인스턴스가 생성될 때 마다 자동으로 호출되는 매직 메서드 그렇다면 어떤 매직 메서드가 있는지 하나씩 살펴보겠다. 9.10 매직 메서드 상세 앞으로 소개할 각 섹션은 중/고급 파이썬 프로..

Python 2023.05.07

[파이썬 코드 업] 9-1장. 클래스와 매직 메서드

대부분 클래스를 정의할 수 있는 기능을 갖고 있다. 파이썬은 클래스에 매직 메서드라는 기능을 추가했다. 9.1 클래스와 객체 기본 문법 class Car : accel = 3.0 mpg = 25 car1 = Car() car2 = Car() print('car1.accel : ' , car1.accel) # 3.0 출력 print('car1.mpg : ' , car1.mpg) # 25 출력 print('car2.accel : ' , car2.accel) # 3.0 출력 print('car2.mpg : ' , car2.mpg) # 25 출력 car1이 갖고 있는 인스턴스의 변수를 내 맘대로 수정할 수도 있다. car1.accel = 5.0 car1.mpg = 300 >>> car1.accel 5.0 >>>..

Python 2023.05.06

[파이썬 코드 업] 4-3장. 데코레이터

4.9 데코레이터 파이썬에서 제공하는 데코레이터는 함수를 장식한다는 뜻에서 붙여진 이름이다. 그렇다면 언제, 어떻게 사용해야 할까?? 데코레이터는 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용한다. 개념 및 예시 ex) hello 함수, world 함수 기존함수 hello, world def hello() : print('hello') def world() : print('world')이때, 각각의 함수의 시작과 끝을 출력하는 코드를 넣고 싶다. 그러면 아래와 같이 함수를 수정해주면 된다. def hello() : print('hello 함수 시작') print('hello') print('hello 함수 끝') def ..

Python 2023.05.06

[파이썬 코드 업] 4-1장. 프로그래밍 지름길

① 필요하다면 코드를 여러 줄에 걸쳐 작성한다 물리적으로 1줄보다 긴 문장을 작성할 때 여러 가지 방법을 이용해서 해결할 수 있다. literal 문자열 다음에 literal 문자열 입력 ex) my_str = 'I am Hen-er-y the Eighth,' ' I am!' 라고 입력 >>> my_str 'I am Hen-er-y the Eighth, I am!' 로 입력된다. # 'I am Hen-er-y the Eighth, ' 라는 literal 문자열 다음에 # 한 칸 띄고 # ' I am!' literal 문자열을 입력함으로써 두 문자열을 연결했다. \를 이용하는 방법 my_str = 'I am Hen-er-y the Eighth,' \ ' I am!' # 이때, 역슬래시(\) 뒤에 아무런 공..

Python 2023.05.05

[Docker Error] Bind for 0.0.0.0:8080 failed: port is already allocated

도커 컨테이너를 시작(docker start / docker restart) 할 때 마다 항상 마주한 문제였다. 문제의 이유는 해석 그대로다. 내가 사용하려는 포트가 이미 할당되어 있다는 것 이전에는 이미 사용하고 있던 포트들을 일일이 kill 하는 방식으로 문제를 해결했었지만 그때만 해결될 뿐 다음날 또 도커 컨테이너를 시작할 때 똑같은 문제가 발생해서 항상 귀찮았다. 다행히 좀 더 근본적인 문제의 원인과 해결책을 정리해놓은 사이트를 찾았다. 생각해보면 당연한 얘기였다. 문제의 원인 이미 host machine에서 사용하고 있던 포트를 컨테이너에서 사용하려고 할 때 발생하는 문제 예를 들면, 이미 다른 컨테이너가 8080 포트를 사용하고 있기 때문에 새로 시작하려는 컨테이너가 8080 포트를 사용하지 ..

Docker 2023.05.04

[Nginx] Nginx 도커에 설치하고 실행하기

Nginx란 Nginx란 HTTP 프록시 서버, reverse 프록시 서버, 메일 프록시 서버, 범용 TCP/UDP 프록시 서버 HTTP 서버 측면의 기본적인 특징 정적(static) 파일, 인덱스(index) 파일을 제공 캐싱을 이용한 가속화된 리버스 프록싱 FastCGI, uwsgi, SCGI, memcached 서버의 캐싱을 이용한 빠른 속도 지원 모듈 구조(modular architecture) SSL, TLS SNI 지원 HTTP/2 에서 동작 가능 동작 환경 OS : Windows 10 커맨드 : Windows Powershell (ver 5.1.19041.2673) Docker에서 Nginx 설치 1) NGINX 이미지를 pull한다. docker pull nginx 2) static con..

다양한 주제 2023.05.03

[파이썬 스킬 업] 3장. 리스트 기능

3.1 리스트 생성 및 활용 간단하게 왼쪽에 변수 오른쪽에 리스트라고 생각하면 된다. myList = [1, 4, 6, 2, 44, 20] beatles_list= ['John', 'Paul', 'George', 'Ringo'] 항목 추가 (뒤에서부터 추가) : append my_list = [] my_list.append(10) my_list.append(220) my_list.append(3) my_list # 출력값 : [10, 220, 3] # 코드 순서처럼 10, 220, 3 순서로 데이터가 저장된 걸 확인할 수 있음 항목 삭제 my_list = [10, 220, 3]my_list.remove(10) # 값이 10인 항목을 삭제한다. # ..

Python 2023.04.27