개발자를 위한 쉬운 리눅스
무료
입문 / Linux
4.9
(69)
현업 개발자가 실제로 사용하고 있는 명령어들로 커리큘럼을 만들었습니다. OS 설치나 관리와 관련된 복잡한 개념들은 다루지 않습니다. 2시간 안에 빠르게 리눅스 기본 사용법을 익힐 수 있습니다.
입문
Linux
새로운 기술을 학습하고 전달하는 것을 좋아합니다.
⚡ 클라우드 네이티브 애플리케이션 개발
⚡ 클라우드 인프라 및 파이프라인 설계
⚡ Azure, Docker, Kubernetes, Spring Boot
✉ daintree.henry@gmail.com
개발자를 위한 쉬운 리눅스
무료
입문 / Linux
4.9
(69)
현업 개발자가 실제로 사용하고 있는 명령어들로 커리큘럼을 만들었습니다. OS 설치나 관리와 관련된 복잡한 개념들은 다루지 않습니다. 2시간 안에 빠르게 리눅스 기본 사용법을 익힐 수 있습니다.
입문
Linux
개발자를 위한 쉬운 도커
₩88,000
초급 / Docker, container, 가상화, docker-compose, docker-volume, CI/CD, github-actions, docker-image
5.0
(101)
현업 개발자가 도커를 사용한 경험을 녹여낸 새로운 커리큘럼으로 기존 교재 및 강의와 차별된 강의를 제공합니다. 단순한 명령어 사용법이 아닌 도커를 왜 사용해야하는지 대한 근본적인 질문에서부터 출발합니다.
초급
Docker, container, 가상화
질문&답변
안녕하세요 질문있습니다.
커디널스팀 안녕하세요. 데브위키입니다. 네 학습 순서는 리눅스->도커->쿠버네티스 순으로 학습하시면 좋을 것 같습니다.강의를 다 들으신 후 "개발자를 위한 쉬운 도커 강의"를 수강하시면 학습에 도움이 되실 것 같습니다!
질문&답변
도커 이미지 파일에서 질문 있습니다.
hoonseung님 안녕하세요, 데브위키입니다.멀티 스테이지 빌드는 2개 이상의 임시 컨테이너를 순차적으로 실행하여 작업을 수행한 뒤, 마지막 스테이지에서 최종 이미지를 만듭니다.예를 들어, Maven 이미지와 OpenJDK 이미지를 사용해서 멀티 스테이지 빌드를 한다고 가정해 보겠습니다.먼저 Maven 이미지를 기반으로 한 첫 번째 스테이지에서 임시 컨테이너가 실행되고, 임시 디렉터리가 생성되어 애플리케이션을 빌드합니다. 작업이 완료되면 이 디렉터리에는 JAR 파일 같은 결과물이 남습니다.이후 OpenJDK 이미지를 기반으로 한 두 번째 스테이지에서, 첫 번째 스테이지의 임시 디렉터리에 있는 JAR 파일을 복사하여 최종 실행 이미지를 만듭니다. 이렇게 하면 빌드에 사용된 도구(Maven)는 포함되지 않고, 필요한 실행 파일만 포함된 깔끔한 이미지가 만들어집니다.강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요! ☺
질문&답변
컨테이너 가상화에서 OS
가보자고님 안녕하세요. 데브위키입니다.하이퍼바이저 가상화의 OS에는 커널이 별개로 존재하고, 컨테이너 가상화에서 사용되는 이미지의 OS는 파일시스템만 포함됩니다! "사용자 환경이 windows or ubuntu고 이미지에 사용하고 있는 os는 linux or centos라고 가정할때 해당 이미지를 실행하면 다른 os를 가지는거 아닌가 싶습니다." 위 질문에서는 윈도우 에서 컨테이너 가상화를 사용하면 윈도우 용으로 만들어진 이미지만 사용이 가능하고, 우분투와 CentOS 같은 리눅스에서 컨테이너 가상화를 사용하면 같은 리눅스 기반의 이미지만 사용이 가능합니다. OS는 윈도우 / 리눅스 / 맥OS와 같이 분류할 수 있습니다.만약에 제가 윈도우용 이미지를 만들어서 배포하면, 해당 이미지는 리눅스에서는 사용할 수 없는 구조입니다. 이렇게 이미지가 OS에 종속적인 이유는 커널을 포함하지 않고 파일 시스템만 있기 때문입니다.하이퍼바이저 가상화의 경우 OS에 커널도 포함되어 있기 때문에 윈도우에서도 리눅스 가상머신을 실행할 수 있습니다. 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
질문&답변
EC2 서버에서 컨테이너 실행시 포트포워딩
힝훙항님 안녕하세요. 데브위키입니다.네 별도로 서버를 구성할 경우에는 DB컨테이너에 포트포워딩을 하셔도 괜찮을 것 같습니다! 보안의 경우 다양한 구성 방법이 있지만 외부에서 접근되지 않도록 구성하는 것이 목적이고, 보안 그룹을 통해서 외부 접근을 막는다면 포트포워딩을 설정하셔도 문제되지 않을 것으로 보입니다. 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
질문&답변
강의계획 질문입니다.
진상민님 안녕하세요. 데브위키입니다.현재 쿠버네티스 강의를 제작하고 있으며 늦어도 3월 중으로 오픈할 예정입니다.좋은 강의로 찾아뵙겠습니다. 감사합니다.☺
질문&답변
[섹션2] 강의 화면이 나오지 않습니다.
HYOJU DO님 안녕하세요. 데브위키입니다.제 맥북에서는 화면이 잘 나오는데 혹시 지금도 동일하실까요?!
질문&답변
멀티 스테이지 빌드
김민섭님 안녕하세요. 데브위키입니다.좋은 질문이네요, 싱글스테이지에서 빌드에 사용한 maven:3.6-jdk-11 이미지에는 openjdk가 이미 설치되어 있습니다! 그래서 jar 파일을 빌드할 뿐 아니라 바로 실행시킬 수도 있습니다.😊 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
질문&답변
강의 실습 프로젝트 git clone은 못하나요?
김형준님 안녕하세요. 데브위키입니다. 혹시 go로 개발된 웹 애플리케이션을 말씀하시는 걸까요? 간단한 코드라 답변으로 공유 드립니다!package main import ( "fmt" "log" "net/http" "os" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { myVar := os.Getenv("WEBAPP_VAR") if myVar == "" { fmt.Fprintf(w, "환경변수가 설정되어 있지 않습니다.") } else { // 환경변수 값이 설정되어 있다면 그 값을 출력 fmt.Fprintf(w, "WEBAPP_VAR 환경변수는 %s 입니다.", myVar) } log.Println("Received request") }) log.Println("This is GO-WEB-APPLICATION") log.Println("INFO: Application is initializing...") log.Println("INFO: Configuration files are being read...") log.Println("WARN: Debug mode is enabled.") log.Println("DEBUG: Verbose logging is activated for debugging.") log.Println("WARN: Example warning message.") log.Println("WARN: Another warning, maybe related to configuration.") log.Println("INFO: Starting server on port 8080...") log.Println("INFO: Server is ready to receive requests.") log.Println("INFO: Listening for connections...") log.Println("INFO: Health checks are running.") log.Println("INFO: WEBAPP_VAR 환경변수는 "+os.Getenv("WEBAPP_VAR")+" 입니다.") log.Println("Starting server on :8080") if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal("Error starting server: ", err) } }애플리케이션을 빌드하실때는 go를 설치하시거나, 아래 도커파일로 컨테이너 내부에서 빌드하신 후 CP명령으로 가지고 올 수 있습니다FROM golang:1.18 WORKDIR /app COPY . . RUN go mod init example.com/myapp || echo "Go mod init skipped" RUN GOOS=windows GOARCH=amd64 go build -o go-web-application-windows.exe . RUN GOOS=darwin GOARCH=amd64 go build -o go-web-application-macos . RUN GOOS=linux GOARCH=amd64 go build -o go-web-application-linux . 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
질문&답변
도커 볼륨 공유에 대해 질문있습니다.
gogoDevelop님 안녕하세요. 데브위키입니다.네, 말씀하신대로 여러 데이터베이스가 하나의 볼륨을 공유하면 무결성 문제가 발생합니다.보통은 실무에서 이 문제를 두 가지 경우로 해결하는데요. 첫 번째로 실무 파트에서 배울 예정인 Master-Slave구조를 사용하는 것입니다. 이 구조에서 실제 쓰기작업은 1대의 서버에서만 이루어지고, 나머지 서버들은 읽기 작업만 수행합니다. 두 번째로 각각의 서버가 별도의 볼륨을 사용하면서, 데이터를 동기화하는 소프트웨어(rsync, Ceph 등)를 사용하는 방법입니다. 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
질문&답변
질문입니다.
doyeon kim 님 안녕하세요, 데브위키입니다.개발자를 위한 쉬운 리눅스 강의는 실제 사용하는 명령에 초점을 맞춘 강의이기 때문에, 리눅스 마스터 2급을 준비하는 데는 많은 도움이 되지 않을 수 있습니다!강의로 먼저 리눅스에 익숙해지신 후에, 리눅스 마스터2급 관련 도서를 하나 구매하셔서 학습하시는 것을 추천 드립니다.☺ 강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!