쿠버네티스에서의 이미지 관리 강의 잘 보고 있습니다. 감사합니다! 쿠버네티스에서의 node내 이미지 관리 관련 문의 드립니다. 쿠버네티스를 운영하면 분명 여러번 app 이미지를 수정 배포하는 경우가 많을 것입니다. 쿠버네티스 설치 강의에서 docker를 각 node 마다 설치하는 것으로 보아, 결국 이미지를 컨테이너로 구동하는 역할은 각 node의 docker 엔진일텐데, 각 node마다 다운로드된 이미지들은 어떻게 관리할 수 있나요? 아래와 같은 환경을 가정해보겠습니다. -node 2개(node1, node2) 1. 초기 이미지 배포 -deployment(ver1)에서 A1이미지 참조 -node1에 pod 스케쥴링되어, node1에서 A1 이미지 다운로드 받아 pod1생성 2. app에 수정이 발생하여, A2이미지 빌드 -deployment(ver1)수정하여 deployment(ver2)에서 A2이미지 참조히도록 변경 -node2에 pod 스케쥴링, node2에서 A2 이미지 다운로드 받아 pod2생성 (이전과 같은 node1에 pod가 스케쥴링되도 동일한 경우라 생각합니다) 이 경우 node에 배포된 이전 이미지, A1은 수동으로 삭제처리를 해줘야 하는지요? A1이미지는 실행중인 pod의 이미지가 아닌, 이전 버전의 이미지데도 node상에 공간을 차지하여 낭비가 될 것 같습니다. 여러번 deployment를 수정하여 이미지가 계속 수정될 경우, 이전 이미지로 인한 node의 저장공간 사용이 크리라 봅니다. k8s에서 위와 관련하여 지원하는 기능이 있는지 궁금합니다. 가장 단순하게, node마다 접속하여 docker images/docker rmi 명령으로 일일이 삭제해야 할까요?
최종 실습까지 진행한 상태에서, myweb의 가상환경을 폐쇄망으로 이동해서 게시판 내용을 원하는 필드들로 바꾸어서 사용해 보려고 하는데, 다른 PC 에서 동일한 소스를 가져와 동일한 폴더이름을 사용해서 vscode 에서 가상환경에서 python run.py 실행하면 w정상 실행이 되고 running on http://0.0.0.0:9000/ (press ctrl+c to quit) 까지 나옵니다. 그런데 정작 브라우저에서 http://127.0.0.1:9000/login 하면 화면에는 "웹페이지를 찾을수 없습니다." 에러뜨고 vscode 상에는 127.0.0.1 - - [21/May/2020 15;59:12] "?[33mGET /login HTTP/1.1?[0m" 4040 - 에러가 발생한게 보입니다. 이럴경우 어떻게 조치를 해야 할까요?
Q. 이 예제의 상황만 본다면, doSomething.h에서 #include "add.h"를 써놔서, Main소스파일에서도 add함수가 정상적으로 동작하는 것을 확인했어요. #include "add.h"중복을 피하는 것도 방법이 될 수 있는 것 같은데요, 제가 이해한 것이 맞나요? #include <iostream> using namespace std; //#include "add.h" doSomething.h 에서 참조하고 있으므로. 여기서 사용안하면, 중복을 피할 수 있음. #include "doSomething.h" int main() { doSomething(); cout << add(5, 10) << endl; return 0; }
문제 1. 최초의 login 요청에 setInterceptors에서 token값이 셋팅이 안되어있고, logout뒤 login 할때, 값이 셋팅되어있는건, 최초의 login요청에서 뒤늦게 셋팅되어진 token값을 불러 오는 건가요 ? 문제 2.createInstance 이 함수는 앱을 실행시켰을때, 최초로 한번만 호출이 되고 그 뒤에는 무슨 요청을 해도 반응이 없는데, 로그아웃뒤 로그인할때, 헤더에 토큰값이 셋팅되는건 역시 Vue의 뛰어난 반응성이 한 몫 한건가요? 아니면 Interceptors가 정말 가로채서 Header만 쏙 넣어준건가요? const instance = createInstance(); 로 저렇게 박아두어서 instance값이 앱이 실행될 때 말고 바뀌지 않을꺼 같다는 생각이 들어서 질문드립니다.
sequelize의 include 속성에 대한 질문입니다. 가령, models폴더안의 post.js를 보면, post와 user, comment, image, hashtag등등이 Post.associate()라는 함수에서 관계가 정의되어있는데.. 질문1) 이렇게 관계가 서로 정해진것들끼리'만' include가 가능한거 맞나요? 좀더 구체적으로 질문을 드리자면, 관계를 정의할때 '1대1' 또는 '1대다' 또는 '다대다' 등등 어떤 관계로 정의를해도 관계만 맺어져있다면 include가 사용가능한것인지 궁금합니다! 질문2) models/hashtag.js의 Hashtag.associate에서 Hashtag와 Post의 관계가 다대다로 설정되어있는것을 확인할수있는데, (routes/hashtag.js) const posts = await db . Post . findAll ( { include : [ { model : db . Hashtag , // 게시글 가져올때 해시태그도 함께 가져오도록. where : { name : decodeURIComponent ( req . params . name ) }, // decodeURIComponent(): tag에 한글이 들어오면 URIComponent로 감싸지게 되므로, 그것을 decodeURI } ] , } ) ; 여기서 include의 의미가 제대로 이해가 되지않아서 질문드립니다. 조금더 구체적으로 질문을 드리자면... (models/hashtag.js) // 관계 설정 Hashtag . associate = ( db ) => { db . Hashtag . belongsToMany ( db . Post , { through : ' PostHashtag ' } ) ; }; return Hashtag ; 위 관계설정 부분에서 '다대다'로 설정을 했고, through를 통해, 'PostHashtag' 라는 테이블이 새로 생겼는데, mySQL 워크벤치에서 바로 이 'posthashtag'테이블의 필드들을 살펴보면, 'HashtagId'와 'PostId'가 있는것을 확인할 수 있는데요! 그렇다면, 위 첫번째 사진의 include부분에서 req.params로 넘어온 tag name을포함하는 hashtag가 있고, (이부분은 mySQL hashtags테이블의 name필드와 일치하는것 같습니다) 이 hashtag가 posthashtag테이블의 PostId필드에 들어간 후, 그 PostId를 포함하는 post를 최종적으로 뽑아낸게 바로, 첫번째 사진의 const posts = {} 객체 라는건가요 ??? 너무너무너무 헷갈립니다 ㅠㅠㅠ 저 include라는 의미가 어떤 순서로 작동을 해서 포함관계가 되는것인지 정말 모르겠어서 질문드려요 ...ㅠㅠ
안녕하세요. 6:50에서 설명하시는 부분의 쿼리 SELECT * FROM crimes WHERE date IN (SELECT date FROM crimes ORDER BY date DESC LIMIT 5) 에 대해 궁금한 것이 있어 질문합니다. 최근 5일동안 발생한 레코드를 뽑아내려면 서브쿼리의 date 앞에 DISTINCT가 붙어야 하지 않나요? 저는 위의 코드가 제일 최근에 입력된 5개의 레코드만 뽑아낼거라고 생각돼서요.(같은 날짜 데이터 여러개일 수 있으므로) 답변 부탁드리겠습니다. 덧붙여, 좀 뜬금없지만 실습위주의 좋은 강의 감사합니다.
안녕하세요 좋은 강좌 감사드립니다 열심히 보며 따라 하고 있는데요. 궁금한 점이 생겨서 문의 드립니다. 이렇게 게임서버를 만들게 되고 실제 서비스를 위해 배포를 하여야 할텐데요 예를 들어 AWS 를 이용한다던지 자체 적인 물리서버를 두어 서비스를 한다던지요 혹시 이런 과정을 설명해 주실수 있으실까요? 아니면 도움이 될만한 사이트나 정보 가 있을지 궁금합니다 감사합니다
세션(session)이란 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미합니다. 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 합니다. 라고 검색해서 찾아보앗는데 정확히 어떤건지 잘모르겟습니다. 세션관련 추가 설명 부탁드립니다.
아래 방법은 별로일까요? 버블 정렬은 O(N^2)이고 아래 방법은 비록 공간 복잡도는 효율적이지 못했지만 O(N)으로 처리하여 더 효율적인거 아닌가? 라는 생각을 하였습니다. #include<stdio.h> #include<vector> using namespace std; int main() { int n, i, p = 0; scanf("%d", &n); vector<int> a(n); vector<int> b(n); for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i = 0; i < n; i++) { if(a[i] < 0) b[p++] = a[i]; } for(i = 0; i < n; i++) { if(a[i] > 0) b[p++] = a[i]; } for(i = 0; i < n; i++) printf("%d ", b[i]); return 0; }