일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- database
- 엘라스틱서치
- API
- 클린코드
- 그리디
- 코딩
- 백준
- Baekjoon
- framework
- mongoDB
- Java
- ES
- 자바
- 애자일프로그래밍
- 코드
- 스프링
- 읽기쉬운코드
- 개발
- JPA
- 그리디알고리즘
- 알고리즘
- Elasticsearch
- Spring
- cleancode
- 개발자
- spring boot
- 코딩테스트
- 데이터베이스
- 프레임워크
- 애자일기법
- Today
- Total
목록도커 (2)
튼튼발자 개발 성장기🏋️

Alpine linux에 대해 살짝 알아보고 가자. 알파인 리눅스는 보안/간편성/리소스 효율을 위해서 디자인된 리눅스 배포판이다. [그림 1]과 같이 알파인 리눅스는 glibc 대신에 musl libc를 사용하게 되었는데 라이브러리의 size 차이가 많이 차이나는 사실을 알 수 있다. docker images 상기 command로 OS 이미지의 크기를 [그림 2 ]와같이 알 수 있다. 타 OS 이미지와 비교해보았을 때 알파인이 훨신 더 경량화되어있다는 것을 알 수 있다. 이 처럼 size가 중요한 이유는 메모리/디스크 공간을 적게 잡아먹고, 로딩이 빠른만큼 앱이 올라가는 속도가 빨라진다. 하지만 많은 dependency 라이브러리가 빠져있기 때문에 멀티 스테이지 빌드 방식을 사용한다. # Alpine l..

흔하게 볼 수 있는 docker짤이다. 대학생 때나 신입 때 누구나 이런 말을 해본적이 있을테지.. "내 컴터에선 왜 안돼?!?!" 코드가 똑같다면 대부분 환경이 달라서 다른 결과가 나오는 경우가 있을텐데, 이것을 해결해주는 것이 Docker라 볼 수 있다. 아래 [그림 2]를 보면 docker의 형태를 알 수 있다. 앱을 구동하기위한 코드와 종속성, runtime을 하나로 묶어서 local, dev환경을 비롯한 스테이징, 라이브환경 등 다양한 환경에 배포를 할 수 있다. "이 그림에서 docker를 왜 쓰는가?!"에 대한 답을 볼 수 있는데, 개발자가 만들었던 아티펙트가 컨테이너 런타임이 동작하는 어떤 환경에 구애받지 않고 동일한 아티펙트가 동작한다. 개발자가 앱을 빌드하고 배포하는 속도를 향상시킨다...