그래도 해야지

    [Go] Golang 환경변수, 파일, 명령어

    환경 변수 GOROOT : Go가 실제로 설치된 경로, go 관련된 실행파일, SDK가 위치 GOPATH: go 언어로 된 프로젝트를 사용하거나 사용할 워킹 디렉토리를 가리키는 환경변수를 말한다. 기본적으로 3개의 폴더를 가진다. src : 내가 작성한 프로젝트 소스 코드가 위치 bin : go install로 컴파일이 완료된 바이너리 파일이 저장될 위치 pkg: 외부 패키지의 컴파일이 끝난 오브젝트 파일들이 저장될 위치 +) 1.16버전 이후부터 기본적으로 gopath가 아닌 module 을 사용하게 변경되었다. 따라서 GOPATH 와 상관없이 아무 위치에서나 자신의 소스파일을 작성할수 있으며 모듈을 사용하기 위한 go.mod 파일도 반드시 필요하다. GO111MODULE : go가 package들을 ..

    hosts 파일

    1. hosts 파일 ip 주소와 도메인 주소를 매핑해주는 파일이다. 호스트 이름에 대응하는 ip주소가 저장되어 있어서 DNS(Domain Name System)에서 주소 정보를 제공받지 않아도 서버의 위치를 찾게 해주는 파일을 말한다. 즉, 주소창에 url을 입력했을때 가장 먼저 hosts 파일의 정보를 먼저 읽어보고 해당 내용이 없으면 DNS에 접속을 한다. 만약에 이렇게 ip주소와 도메인 주소를 hosts파일에 저장하고, 해당 도메인 주소를 호출하면 실제 www.memm.com 주소로 접속되지 않고, 내가 설정한 111.111.111.111로 접속이 된다. 111.111.111.111 www.memm.com 1.1 파일 위치 //윈도우의 호스트파일 위치 C:\\Windows\\System32\\dr..

    루프백 ( 127.0.0.1, localhost )

    1. 루프팩(Loopback) 루프백 ip는 네트워크 상에서 자신을 나타내는 가상주소를 말한다. 자신에게 다시 네트워크 입력이 들어온다해서 루프백이다. IPv4에서 루프백 주소는 127.0.0.1이며 , IPv6에서는 ::1 로 사용된다. 127.0.0.1 대신 localhost를 사용하는 경우도 있는데 localhost는 컴퓨터 네트워크에서 사용하는 루프백 호스트명으로 OS hosts 파일의 redirect rerules를 통해 redirecting ip를 지정할 수 있다. 보통 시스템에서는 hosts파일에 127.0.0.1을 localhost로 연결시켜서 , localhost를 입력하면 DNS를 타지않고 바로 로컬로 연결된다. 1.1 동작 원리 TCP/IP 모델에서 생성된 모든 메세지는 수신자의 IP..

    l4 로드밸런싱

    1. l4 로드밸런싱 로드밸런싱이란(= 부하 분산)외부로부터 들어오는 다수의 요청을 서버들에게 적절히 배분하는 것을 말한다. 이 분산 처리를 network switch가 담당한다. 이 분산 처리를 담당하는 network switch를 L4/L7 switch라고 부르며 클라우드에서는 로드 밸런서라고 부른다. 1.1 로드밸런싱 방법 1. 라운드 로빈 : 다수의 서버에게 순서대로 요청, 가장 효율적 2. least connection : 로드밸런서는 connection 정보를 갖고 있는데 이 connection수를 기반으로 가장 connection이 적은 서버에게 전달 3. Ratio : 서버의 처리 능력을고려해 할당할 수 있는 connection 비율이 있는데, 이를 비율대로 할 4 . Fasted : 응답..

    mysql Index 종류 및 B-Tree 구조

    인덱스란? 인덱스란 지정한 칼럼들을 기준으로 메모리 영역에 일종의 목차를 생성해 읽기 속도를 높여준다. insert, update, delete의 성능을 희생하고 대신 select의 성능을 향상시키게 된다. 인덱스 종류 책으로 비유하자면 클러스터형 인덱스는 영어사전이며, 보조 인덱스는 맨 뒷장에 찾아보기가 존재하는 책이다. - 클러스터형 인덱스 (clustered index) 테이블당 1개만 존재 테이블은 이 클러스터형 인덱스로 자동정렬이 된다. 즉 특정 컬럼에 pk를 생성하는 순간 해당 칼럼에 클러스터형 인덱스가 자동으로 생성된다. 생성과 동시에 오름차순으로 정렬된다. 리프 페이지가 곧 데이터 페이지 (실제 데이터가 저장된 위치) - 보조 인덱스(secondary index) 한 테이블에 여러개 설정 ..

    mysql 쿼리 최적화

    1. 필요한 데이터만 select 하기 X : SELECT * FROM user O : SELECT id,username,tel FROM user 2. or 이 아닌 UNION ALL 을 사용한다. 먼저 join은 수직결합, union은 수평결합이다. union all과 union distinct의 차이점은 union은 중복 데이터값을 다 삭제하고 연결하며, union all은 중복되는 값을 모두 연결한다. or 조건은 풀스캔으로 인덱스를 타지 않기때문에 unino all 으로 바꿔 인덱스를 타게 해줘야한다. X : SELECT * FROM user WHERE id=1 OR salary=5000 O : SELECT * FROM user WHERE id=1 UNION ALL SELECT * FROM use..

    도커 컴포즈(Docker Compose)

    Docker Compose 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴을 말한다. 즉 하나의 서비스를 운영하기 위해서는 컨테이너화된 여러 개의 애플리케이션이 동작되어야하는데 이를 통합 관리할 수 있게 해준다. yaml 형태 파일을 이용해 도커 컴포즈에게 요청을 하면, 도커 컴포즈가 이 파일을 읽어서 실행한다. 문법 만약 word press의 docker-compose 파일을 해석해보자면 , version: '3.1' #컴포즈를 이용해서 실행할 컨테이너의 옵션을 정의 #이 services안에는 db와 wordpress가 존재 services: wordpress: image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB..

    도커 데이터 보존하기 - Bind Mount/Volume

    먼저 도커 이미지는 read only로 수정이 불가능한 상태이다. 이미지를 docker run으로 실행을 시켜도 여전히 read only 상태의 프로세스이다. 따라서 컨테이너에 추가되는 데이터들은 별도의 read write 레이어에 저장된다. Union FIle System (= Overlay) 여러 개의 파일 시스템을 하나의 파일 시스템에 마운트하는 기능을 말한다. 여러 파일을을 하나의 파일 시스템으로 합칠때, 중복되는 파일이 존재한다면 UFS에서는 나중에 마운트된 파일로 덮어쓴다. Docker의 Union FIle System 도커의 컨테이너는 UFS 를 기반으로 동작한다. 컨테이너의 read only layer와 read write layer가 하나인것처럼 보이게 만드는 것을 말한다. 기존 레이어 ..