전체 글 691

Dockerfile 문법

docker file 문법 # 베이스 이미지 결정 FROM node:1 # 이미지의 메타데이터 label description="this is node.js" label maintainer="dong" # working 디렉토리 설정 WORKDIR /app # 호스트 OS의 파일을 컨테이너에 working dir에 복사 COPY my_files ./ #위에서 wokring dir을 /app으로 했으므로, app에 복사 # 도커이미지상에서 실행되는 명령어(도커이미지, /app에서 실행) RUN npm install # 현재디렉토리의 모든 파일을 도커이미지 디렉토리에 복사 copy . . # 8080포트를 사용한다고 명시용(run할떄 -p 옵션을 사용해야 실제로 8080포트 사용가능) EXPOSE 8080 ..

도커 2023.01.15

이미지생성

현재컨테이너 commit을 통한 이미지 생성 기존 컨테이너기반 commit을 통한 이미지 생성 docker commit [option] [conatiner] [image_name]:[tag] docker commit -m "first_commit" -a "dong" now_container my_ubuntu:v1 dockerfile을 이용한 이미지 생성 docker build -t [imagename]:[version] -f [path(Dockerfile이 있는 폴더)] ./ * 빌드명령 수행시 빌드 컨텍스트(현재 디렉토리)를 도커 데몬에게 전달하여 빌드가 정상적으로 수행되도록 한다.

도커 2023.01.15

도커 로그

도커 로그확인 docker logs [container] //전체로그 확인 docker logs --tail [n] [container] //마지막 로그 n줄 docker logs -f [container] //실시간 로그 스트림 확인 docker logs -f -t [container] //로그마다 타임스탬프 표시 호스트 로컬에 도커 로그 저장경로 cat /var/lib/docker/containers/[container_id]/[container_id]-json.log run 수행시 옵션값으로 로그용량 제한하기 docker run\ -d\ --log-driver=json-file \ //로그 드라이버 설정 --log opt max-size=3m \ 한 로그파일당 최대메모리, 3mb --log op..

도커 2023.01.15

도커 볼륨

도커 볼륨 도커가 제공하는 볼륨 관리 기능 이용. 기본적으로 /var/lib/docker/volumes/[volume-name]/_data 위치에 데이터 저장 * 볼륨생성 docker volume create --name db * 도커의 web-volume 볼륨을 Nginx의 웹 루트 디렉토리로 마운트 docker run -d\ --name my-mysql\ -v db:/var/lib/mysql \ -p 3306:3306\ mysql:5.7 호스트 볼륨 docker run -d\ --name [container_name]\ -v [host_path]:[container_path]\ [image] *읽기전용 옵션(:ro) docker run -d\ -v [host_path]:[container_path]:..

도커 2023.01.15

도커 run 주요옵션

도커 run 주요옵션 -기본 docker run \ -i -t\ -> i:호스트 표준입력을 컨테이너와 연결, t:TTY할당 -d\ -> 백그라운드 모드로 실행, 만약 포그라운드로 실행한 상태에서 빠져나오고싶으면 ctrl+p+q --name {name}\ -> 사용자지정 이름으로 컨테이너 이름 설정 -p {host port:contaner port}\ -> 포트바인딩 --rm\ -> 도커 컨테이너 실행종료 후 자동 삭제 my-command\ -> 컨테이너 내에서 실행할 명령어 ( ex)docker run ubuntu ls ) - 환경변수 docker run -e 변수=입력값\ -> 환경변수 --env-file {file_path} -> 환경변수(파일) - 엔트리포인트(도커컨테이너가 실행될 때 고정적으로 실..

도커 2023.01.14

도커 명령어

도커 명령어 (이미지) - 도커 생성(이미지가 없을 경우, pull을 먼저 수행하여 이미지 다운로드) docker create [image] - 컨테이너 생성 및 시작(이미지가 없을 경우, pull을 먼저 수행하여 이미지 다운로드) docker run [image] 도커 명령어 (컨테이너) * [container]에는 컨테이너의 이름이나 id를 넣으면 된다 - 컨테이너 시작 docker start [container] //컨테이너 이름 or id로 실행가능 - 동작중인 도커 컨테이너 확인 docker ps - 동작중인 도커 컨테이너 bash 쉘 실행하기 docker exec -it [컨테이너명] bash - 모든 도커 컨테이너 확인 docker ps -a - 컨테이너 정지 docker stop [co..

도커 2023.01.14

데이터프레임 문자열 컬럼을 두개로 쪼개기

문자열 쪼개기 하나의 문자열 컬럼을 쪼개서 다른 문자열 컬럼 두개로 만든다 str사용 a = df["SNP_01"].str[0] b = df["SNP_01"].str[2] display(pd.DataFrame({"SNP_01_01":a,"SNP_01_02":b})) apply함수사용 def split_get_one(a): return a[0] def split_get_two(a): return a[2] a = train["SNP_01"].apply(split_get_one) b = train["SNP_01"].apply(split_get_two) display(pd.DataFrame({"SNP_01_01":a,"SNP_01_02":b}))

라이브러리 프레임워크 차이

라이브러리와 프레임워크의 공통점 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것. 라이브러리와 프레임워크의 차이점 라이브러리 항목 프레임워크 사용자가 가지고 있음 (폴더명 파일명 등에 대한 규칙이 없음) 흐름 제어 권한 사용자가 가지고 있지 않음 (폴더명 파일명 등에 대한 규칙이 정해져 있음) "가위"라는 도구를 사용하여 내가 직접 컨트롤 함 예시 "비행기"라는 도구를 타고 이동하지만, 비행기를 내가 컨트롤하진 않음 텐서플로우, 파이토치 종류 예시 자바 스프링, 파이썬 플라스크, 파이썬 장고

IPV4, IPV6

IPV4 - 전세게에서 사용된 첫 인터넷 프로토콜(인터넷 주소를 만드는 규칙, 체계) - 주소를 만드는 규칙 * (주소용량) = (8bit 씩 4묶음) = (8bit.8bit.8bit.8bit) = (32bit) * (각 묶음은 8bit 이므로 각 묶음은 2^8=256개의 숫자를 나타낼 수 있음) = (0~255) = (000.000.000.000) * 따라서 총 (2^8)^4 = 2^32개의 주소를 만들 수 있음 - 주소 부여 : 네트워크 크기나 호스트의 수에 따라 클래스가 나뉘고 클래스에 따라 IPV6 - IPV4의 주소부족 문제를 해결하기 위해 만들어짐 - 주소를 만드는 규칙 * (주소용량) = (16bit 씩 8묶음) = (16bit.16bit.16bit.16bit.16bit.16bit.16bit..

CS/네트워크 2022.12.03

사설 IP, 공인 IP의 차이

공인 IP - 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP가 제공하는 IP주소 - 공용 IP주소라고도 불리우며 외부에 공개돼 있는 IP주소(전세계에서 유일한 IP주소) - 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로 부터 접근이 가능하다. 따라서 방화벽과 같은 보안설정을 해 주어야 한다. 사설 IP - 일반 가정이나 회사 내 등에 할당된 네트워크 IP주소 - 라우터(공유기)등을 통해서 로컬 네트워크 PC나 장치에 할당된다.

CS/네트워크 2022.12.03

[프로그래머스] 즐겨찾기가 가장 많은 식당정보 출력하기 #group by

문제 음식 종류별 즐겨찾기 수가 최대인 값들을 구하는 문제. 오답 SELECT A.FOOD_TYPE, A.REST_ID, A.REST_NAME, A.FAVORITES FROM (SELECT *, max(FAVORITES) as max_favorites FROM REST_INFO group by FOOD_TYPE) AS A order by FOOD_TYPE DESC 위 쿼리가 틀린 이유는 서브쿼리(SELECT *, max(FAVORITES) as max_favorites FROM REST_INFO group by FOOD_TYPE)에서 SELECT문을 "*, max(FAVORITES)"로 하면 max(FAVORITES)컬럼에는 FOOD_TYPE별 최댓값이 들어가지만, 나머지 컬럼들에는 FOOD_TYPE별 ..

DB/SQL 2022.11.26

해쉬테이블

해시테이블 - key와 value구조로 이루어져 있는 자료구조 - key를 해시함수를 이용해서 index로 바꾸고 해당 index를 주소로 사용 해시함수 1. digit folding : key의 문자열을 ASCII 코드로 바꾸고 그 합을 index로 사용 2. division method : 숫자 key를 테이블의 크기로 나누어 나온 나머지를 index로 사용 (index = key % 테이블 크기) * 테이블의 크기는 소수(prime number) 3. multiplication method : 숫자로 된 key 값에 A(0~1사이 실수)를 곱한 후 그 나머지에 2의 제곱수 m을 곱하는것을 index로 사용 (index = (K*A mod 1)*m) 충돌 회피 - 해시함수를 이용해 구한 index가 ..

CS/자료구조 2022.11.13

소트의 종류

시간복잡도 정리 최악 평균 최선 1. 삽입정렬 n^2 n^2 n 2. 선택정렬 n^2 n^2 n^2 3. 버블정렬 n^2 n^2 n^2 4. 퀵정렬 n^2 nlog(n) nlog(n) 5. 힙정렬 nlog(n) nlog(n) nlog(n) 6. 병합정렬 nlog(n) nlog(n) nlog(n) 1. 삽입정렬 - 앞에서 부터 순차적으로 선택하고 적절한 위치에 삽입 하는 정렬 방법 - 시간복잡도 최악 평균 최선 n^2 n^2 n 2. 선택정렬 - 가장작은(혹은큰) 값부터 선택해서 순차적으로 나열하는 것 - 시간복잡도 최악 평균 최선 n^2 n^2 n^2 3. 버블정렬 - 인접한 두 값을 서로 비교하여 교체하는 작업을 앞에서 부터 순차적으로 진행 - 시간복잡도 최악 평균 최선 n^2 n^2 n^2 4. 퀵정..

환경변수 PATH설정

PATH설정이란? https://sosoeasy.tistory.com/616에서 시스템변수를 설정해 보았다. 이번에는 PATH설정을 해 본다. 시스템변수는 어느 위치에서든 특정 디렉토리로 이동하거나 프로그램을 실행시키기 위해 변수를 지정하는 것이고(%변수% 로 실행) PATH는 어느 위치에서든 해당 PATH안에 모든 프로그램을 실행시킬 수 있도록 한다. (path속 프로그램을 바로 입력하여 실행가능, 아래 python과 %python%의 차이로 확인) PATH설정 1. 환경변수 -> 시스템변수 -> path 더블클릭. 2. 실행할 파일이 있는 디렉토리를 입력한다 PATH 확인 1. python 실행 가능 * python이라는 시스템변수를 이용할때는 %python%으로 실행했던 것과 다른것을 주의! 2. ..

CLI/터미널 2022.10.09

윈도우 시스템 환경변수

시스템 환경변수 cmd에서 특정 프로그램을 실행하기 위해선 해당 프로그램이 설치되어 있는 경로까지 이동하여 프로그램을 실행하여야 한다. 또한 특정 디렉토리로 이동하기 위해선, (해당 디렉토리가 아무리 길어도) 그 경로를 모두 입력하여야 이동할 수 있다. 이때 시스템 변수를 설정하면 변수입력만으로 특정 프로그램을 실행하거나 긴 경로로 바로 이동할 수 있다. 시스템 환경변수를 설정하는 방법과, 사용하는 방법을 알아본다. 시스템 환경변수 설정방법 1. 왼쪽아래 검색창에 "시스템 환경변수 편집" 검색 2. "고급"탭에 아래 "환경변수" 클릭 3. 아래 시스템 변수에 "새로 만들기"클릭 4. 변수이름과 값을 설정한다 5. 재부팅을 한다 시스템 환경변수 실행방법 %변수% 위와 같은 형태로 변수를 사용할 수 있다. ..

CLI/터미널 2022.10.09