[TIL - 0830] 도커 알아보기와 이미지 만들고 실행, 쿼리 쓰는 연습하기
도커
- 리눅스 컨테이너 기술을 활용함 : 사용 하는 것에 있어서 추상화 시킨 것으로 이해함 - 사용할 때 커맨드 인터페이스로 명령(docker run, images 등)
- 왜 경량화인가? 왜 고립되었다고 하는가? (단번에 이해하기 어려운 기술일 것 같아서 계속해서 봐야할 듯)
- 가상화랑은 다르게 호스트 OS에 게스트 OS를 설치하지않음 : 호스트 커널을 공유함
- 자원을 같이 쓰되 고립된 환경에서 사용함
- 개발, 배포, 운영 단계에 반복적으로 해야할 수 있는 일을 이미지화 시켜서 생산성을 향상 시킴
- 개발 환경을 세팅한다면 jdk 설치, 빌드툴 설치, 디펜던시 설치, 환경 변수 세팅 등 해야할 일이 많은데 이미지로 만들고, 실행(컨테이너화)하면 끝 : N대로 늘렸을 때 매번 같은 환경 구성과 코드 내려받기 등을 하지않고도 이미지 pull -> run
- 단점은 뭐가 있지? - 파악해보기
- 실행
- docker run 이미지 : 입력하면 해당 이미지가 있는지 체크하고, 없다면 docker hub에서 내려받고 실행시킴
> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9db2ca6ccae0: Pull complete
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
- 이미지화 해보기 : docker docs에 나와있는 예제를 먼저 활용해봄
- Dockerfile(파일명) 만들기
- 이미지 빌드 : docker build -t 이름 빌드_파일_경로
- docker images로 이미지 생성되었는지 체크
- docker run -d -p 호스트포트:컨테이너포트 이미지명 (p : 포트 바인드 설정, d : 백그라운드 실행)
- DockerHub도 사용해서 이미지 공유하는 것도 해보기 : Docker Hub에 업로드 후 pull 받고 run 시키면 따로 환경세팅없이 똑같이 실행가능! - 패키징(이미지) 되어있는 것을 그대로 실행시킴(컨테이너화)
/* 실행 후 API 요청 결과 */
Hello World!
Hostname: 8f92d0eb1a86
Visits: cannot connect to Redis, counter disabled
데이터베이스
JOIN
- Outer Join과 Inner Join
- Outer Join은 방향에 따라 한 쪽 방향 데이터는 모두 출력되고, 한 쪽은 ON 조건에 맞는 데이터만 출력 나머지는 Null : 조건에 맞는 데이터만이 아니라 한 쪽은 모두 출력되기를 원할 때(nullable한 데이터까지 고려)
- Inner Join 두 테이블 모두 ON 조건에 맞는 데이터만 출력 : 교집합
- LEFT, RIGHT OUTER JOIN과 LEFT JOIN, RIGHT JOIN 완전 같은 쿼리 : OUTER를 생략함
GROUP BY
- 특정 컬럼의 데이터를 기준으로 그룹핑함
- 테스트 테이블 생성
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| country | varchar(16) | NO | | NULL | |
+---------+-------------+------+-----+---------+----------------+
- 그룹핑
> SELECT country, count(*) as countOfCountry from Customers GROUP BY country;
+---------+----------------+
| country | countOfCountry |
+---------+----------------+
| Korea | 2 |
| Mexico | 1 |
| Spain | 1 |
| UK | 2 |
+---------+----------------+