소개
소프트웨어 아키텍트 & 교육가
• 현) 보이는소프트웨어연구소 대표(2016~현재)
- 삼성전자 소프트웨어 아키텍트 양성 및 인증
- 소프트웨어 구조 설계 및 평가 교육 / 컨설팅
• 중앙대학교 소프트웨어 대학 겸임 교수(2018~2022)
- 기초 컴퓨터 프로그래밍 - C/C++, JavaScript, Python
• 삼성전자(2003~2016)
강의
전체 3로드맵
전체 1수강평
- 쿠버네티스 101 - 클라우드/서버 개발 첫걸음
- 쿠버네티스 101 - 클라우드/서버 개발 첫걸음
- JavaScript 비동기 프로그래밍 완벽 가이드 - Promise, await, async
- JavaScript 비동기 프로그래밍 완벽 가이드 - Promise, await, async
- JavaScript 비동기 프로그래밍 완벽 가이드 - Promise, await, async
게시글
질문&답변
2024.03.30
섹션2 Yaml로 Deployment 실습 시 Pod 이미지가 없다는 오류
docker 환경이 minikube로 설정되지 않은 것 같습니다.minikube는 내부적으로 container 환경을 가지고 있어서 다음 명령을 참고해서docker 환경을 minikube로 설정해야 합니다.minikube docker-env 윈도우 명령창을 사용하신다면,@FOR /f "tokens=*" %i IN ('minikube -p docker-env --shell cmd') DO @%i이 명령으로 docker 환경을 minikube로 변경할 수 있습니다. 그런 다음에 docker image를 빌드해야 minikube kubernetes에서 image를 사용할 수 있습니다.
- 0
- 1
- 137
질문&답변
2024.03.13
minikube service명령어를 입력시 해당 에러가 뜹니다
imagePullPolicy는 컨테이너 이미지를 docker hub로 부터 가져오는 정책에 관한 것입니다.Never는 docker hub로부터 가져오지 않는 옵션입니다.요청한 hello-kube:v1 이미지가 로컬 저장소에 있으면 로컬에 있는 이미지를 사용해서 컨테이너를 생성하지만,로컬 저장소에 없어서 이런 오류가 발생하는 것입니다. hello-kube:v1 이미지를 빌드해서 로컬 저장소에 생성해야 합니다.dockerfile이 있는 폴더에서docker build -t hello-kube:v1 .명령으로 빌드합니다. minikube에서 docker 환경을 설정하려면,minikube docker-env 명령을 참고하세요.명령창에서는 다음 명령을 실행하면 됩니다.@FOR /f "tokens=*" %i IN ('minikube -p minikube docker-env --shell cmd') DO @%i 빌드가 되고 나면,docker images 명령으로 로컬 저장소에 생성된 이미지를 확인할 수 있습니다.
- 0
- 2
- 187
질문&답변
2024.01.04
Promise 객체 강의 7분 27초 부분 질문입니다.
then, catch, finally 함수는 callback 함수입니다.즉, p.then() 함수는 fulfilled 또는 rejected 상태가 되면 callback을 호출하고결과 Promise를 반환합니다.callback 함수의 반환 값이 없으면, Promise(undefined)를 반환하게 됩니다. 그러므로, p.then().catch()는 Promise(undefined).catch()가 되고,fulfilled 상태이므로 error 상황이 아니어서 그대로 Promise(undefined)가 반환됩니다.p.then().catch().finally()에서도 Promise(undefined).finally()가 실행되고,여기서 undefined 가 출력됩니다. 이해하신 내용이 맞는 것 같습니다.^^
- 1
- 2
- 352
질문&답변
2024.01.04
안녕하세요. await async 강의 7분31초 부분에서 질문입니다. 7분 31초 부분에서 질문있습니다.
async 함수는 Promise 객체를 반환해서 동시적으로 실행되도록 합니다.그러니까, const p = add(1, 2)가 호출되는 순간, 이미 p에는 Promise 객체가 반환된 것입니다.그리고, add() 함수에서 setTimeout() 함수를 await 하면서,context switching 일어나고,console.log(p) 가 pending 상태의 Promise 객체임을 출력합니다. 이것이 자바스크립트의 동시 실행 방식입니다. 쓰레드와 같이 OS 수준에서 병렬적으로 실행되는 것과 다릅니다.쓰레드가 생성되면, OS 수준에서 core를 나눠서 병렬적으로 실행됩니다.하지만, 자바스크립트의 동시 실행은코드 실행이 멈추고 event loop에 대기 상태가 되면context switching이 되고 task queue에서 다음 작업을 이어서 실행합니다. 그러니까,async 함수 add()가 호출되면서 Promise 객체가 반환되고 task queue에 넣어집니다.add() 함수에서 async setTimeout() 함수가 호출되면서Promise 객체가 반환되고 task queue에 넣어집니다.setTimeout() 함수에서 시스템에게 1초 timeout을 등록하고 종료합니다.event loop에서는 다음 task를 실행합니다.따라서, console.log(p)가 출력됩니다.console.log(p)가 출력되고 나면, event loop에서 다음 task를 실행합니다.다음 task는 await로 Promise가 완료될 때까지 기다립니다.1초 timeout이 지나면,시스템은 timeout event가 발생하고,timeout event에 의해서 Promise 객체가 완료됩니다.그러면, event loop에서 다음 task가 실행되고,이때, console.log(result) 등이 출력됩니다. JavaScript engine이 어떻게 event loop와 task queue를 사용해서프로그램을 동시적으로 실행하는 지를 상상해 보시면 좋을 듯 합니다.
- 0
- 2
- 257
질문&답변
2023.10.13
skaffold init 부분
vs code에 google cloud code 확장을 설치해야 합니다.google cloud code 확장이 cloud sdk를 설치하는데, 여기에 skaffold가 있습니다.설치되는 경로가 %localappdata%\cloud-code\installer\google-cloud-sdk\bin 입니다. 설치되어 있는지 확인해 보세요.
- 0
- 2
- 362