ㅇ볼륨 설정 시 명령어 실행을 하면 컨테이터 생성은 되는데 자동 실행은 안됩니다 pwd 에서 에러가 나서 아래와 같이 명령어를 설정하고 실행을 해보았는데요 docker run -d -p 5000:8080 -v /usr/srs/app/node_modules -v "/$(pwd):/usr/src/app" eddydocdoc/nodejs 로그를 아래 명령어로 출력 해보았는데 아래와 같 명령 : docker logs 컨테이너 출력 : internal/modules/cjs/loader.js:638 throw err; ^ Error: Cannot find module 'express' 어느 부분을 봐야 할까요?
좋은강의 감사합니다 여기서 막혀서 진도를못나가네요 ㅠ 파이참에서 Dockerfile 만들고 upload해도 이미지를 빌드할 수 없다고 나오고 web editor 로 해도 똑같이나오네요... 어떻게 해야 하나요? 이거말곤 방법이 아예없나요? 2일간 구글링해도 답이 안나오네요 ㄷ
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
iterator에 대해 보던 중 궁금한 점이 생겼습니다 iterator는 포인터 역할을 하는 객체(혹은 클래스)이지 않습니까? List<int>::iterator eraseit; 왜 이런식으로 iterator 클래스에서 eraseit 객체를 찍어내는지 궁금합니다 범위지정 연산자 이용해서 이 iterator의 객체 eraseit은 List<int>에 속한다는 표현 같은데 iterator 자체가 독립적인 클래스이므로 iterator<int> eraseit; 약간 이런식으로 표현해도 성립해야 되는것이 아닌지 궁금합니다.
웹게임 강좌에서 배운 내용과 이번 강의를 들으면서 배운 내용을 토대로 반응속도를 체크하는 웹사이트를 개인 프로젝트겸 제작해보고 있었습니다. 그런데 아래와 같은 오류가 계속해서 발생합니다. 구글링을 해보니 보통 pages/_app.js에서 오타가 나면 발생한다는데... 잘 모르겠습니다. 아래는 제 _app.js입니다. import React from 'react' ; import PropTypes from 'prop-types' ; import 'antd/dist/antd.css' ; import Head from 'next/head' ; import Helmet from 'react-helmet' ; import wrapper from '../store/configureStore' ; const App = ({ Component }) => { return ( <> < Helmet > < link rel = "preconnect" href = "https://fonts.googleapis.com" /> < link rel = "preconnect" href = "https://fonts.gstatic.com" crossOrigin /> < link href = "https://fonts.googleapis.com/css2?family=Jua & display=swap" rel = "stylesheet" /> </ Helmet > < Head > < meta charSet = "utf-8" /> < title > 반응속도체크 </ title > </ Head > < Component /> </> ); }; App . propTypes = { Component : PropTypes . elementType . isRequired , } export default wrapper . withRedux ( App ); 만약 위 코드에서 wrapper.withRedux(App)이 아니라 export default App; 으로 써줄 경우에는 위 사진과 같은 에러가 발생합니다 store/configureStore.js는 ReactBird 코드를 그대로 갖다써서 오타는 없는 것 같습니다.
안녕하세요! php 실습 관련해 질문드립니다. 정답의 코드는 아래와 같습니다. docker run --rm \ -v $(pwd)/hello.php:/app/hello.php \ php:7 \ php /app/hello.php 정답을 확인하기 전, 제가 작성했던 코드는 아래와 같습니다. docker run -it --rm -v $(pwd)/hello.php:/app/hello.php php:7 터미널 상에서 아래와 같이 입력했더니, 작동하지 않았습니다. php /app/hello.php 질문 드리고 싶은 점은,, 1. --rm 옵션을 넣지 않으니, 작동하지 않더라구요..! --rm 옵션이 왜 이 컨테이너 작동에 필수적(?)인지 궁금합니다. 2. terminal 상에서는 해당 프로그램이 작동하지 않는 이유는 무엇인지 궁금합니다...! -> 해당 질문은 해결했습니다. docker run -it -rm -v $(pwd)/hello.php:/app/hello.php php:7 bash 위와 같이, bash 로 들어간 후, 아래와 같이 입력하니, 정상 작동했습니다. 제가 -it 옵션과 bash를 함께 적용해주지 않아 생긴 문제로 파악했습니다. php /app/hello.php 강의 잘 듣고 있습니다. 감사합니다!
안녕하세요! nginx 실습에 이어 php 실습 관련해서도 질문드리게 되었습니다. 제가 port라는 개념에 익숙하지 않아, 질문 드리게 된 것 같기도 합니다. 해당 실습에서 -p 옵션으로 port가 지정되지 않는 데, 이는 "브라우저가 아닌 CLI test" 라고 말씀해주신 것과 관련이 있는 것인지 궁금합니다. 그렇다면, -p 옵션은 웹 브라우저와 관련된 경우일 때, 적용되어야 하는 것일까요? 저는 지금까지 포트 라는 것은, 로컬과 컨테이너 간 연결 통로를 지정해주는 것으로 필수적으로(?) 지정해줘야 하는 것으로 생각하고 있었던 것 같습니다.. 항상 강의 잘 듣고 있습니다. 감사합니다 !
안녕하세요! 좋은 강의 감사드립니다. nginx 실습 중, -d, --rm 옵션에 대해 여쭤보고자 글 남깁니다. 수업을 통해, 각각 백그라운드 모드 / 컨테이너 자동 제거 역할을 한다는 것은 숙지를 했습니다. 실습을 위해, 제가 생각대로 스스로 작성했던 라인은 docker run -p 50000:80 -v $(pwd)/index.html:/usr/share/nginx/html/index.html nginx 로, -d --rm 옵션이 빠진 상태였습니다. 그러니, 컨테이너 생성 및 실행이 안되더라구요...! (-d --rm 옵션을 넣으니 생성 되었습니다.) 생각하기에는 단순히 백그라운드 모드와 자동 제거 옵션만 빠졌을 뿐인데, 이로 인해 컨테이너 생성에 문제가 생기는 점이.. 왜 그런 지 이해가 잘 가지 않았습니다! 너무 기초적인 질문일 수도 있지만, 여쭤보게 되었습니다. 항상 좋은 강의 감사히 잘 듣고 있습니다...! + 더불어, -v 로컬코드및데이터주소:컨테이너코드및데이터주소 이렇게 옵션을 주게 되는 데, 뒷부분 ":컨테이너코드및데이터주소" 에는 실제로 해당 경로로 디렉토리 및 파일이 없더라도 상관 없는 건가요~!? -v $(pwd)/index.html:/usr/share/nginx/html/index.html 위와 같이 옵션을 주었는 데, 컨테이너 주소에 해당하는 "/usr/share/nginx/html/index.html" 경로의 디렉토리와 파일은 제가 실제로 만들어주진 않았었습니다. 너무나 기초적인 질문 민망하지만,, 부탁드리겠습니다. 감사합니다!
안녕하세요. asp.net core 3.1 로 개발 중에 이전 웹페이지가 로그인 후 볼 수 있는 페이지임에도 불구하고 로그아웃 후 브라우저의 뒤로가기 버튼 클릭시 이전 페이지 접속이 됩니다.. Cookie로 로그인/로그아웃 기능을 구현하였고, _Layout.cshtml 상단에 캐쉬관련 코드는 추가되어 있습니다. < meta http-equiv = "cache-control" content = "no-cache" /> < meta http-equiv = "expires" content = "-1" /> <로그인처리 코드> var identity = new ClaimsIdentity(claims: new [] { new Claim(type:ClaimTypes.Name, value:userInfo.ID), new Claim(type:ClaimTypes.Role, value:userTopRole.RoleName), new Claim( "User_ID" , userInfo.User_ID.ToString()), new Claim( "User_Name" , userInfo.Name), new Claim( "User_Name_Eng" , userInfo.Name_Eng), new Claim( "Role_Code" , userTopRole.RoleCode), new Claim( "Role_Priority" , userTopRole.RolePriority.ToString()), new Claim( "Signature_ID" , userInfo.Signature_ID.ToString()) }, authenticationType: CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync(scheme: CookieAuthenticationDefaults.AuthenticationScheme, principal: new ClaimsPrincipal(identity), properties: new AuthenticationProperties() { ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(60), IssuedUtc = DateTimeOffset.UtcNow, IsPersistent = true }); <로그아웃 처리 코드> public async Task<IActionResult> LogOut () { await HttpContext.SignOutAsync(scheme: CookieAuthenticationDefaults.AuthenticationScheme); return RedirectToAction( "Login" , "Account" ); } 브라우저 뒤로가기 버튼 클릭 시 로그인 Cookie 정보가 없는 경우, 로그인 페이지로 이동 시키고 싶은데 방법이 있을까요?
1. 함수 선언문, 함수 호출(), 함수 선언문 ```javascript function book () { function getBook () { return "one" ; }; console . log ( getBook ()) ; function getBook () { return "two" ; }; }; book () ; // two ``` - 함수 선언문 해석 - function 키워드를 만나서 Function 오브젝트를 생성합니다. - 엔진이 자신이 속한 스코프를 생성한 Function 오브젝트의 [ \[Scope ]]에 설정합니다. - book() 함수를 호출하게 되면, 실행 콘텍스트가 생성되고 실행 콘텍스트에서 호출된 함수의 [ \[Scope ]]에 바인딩된 것을 호출된 함수의 1레벨 밖의 스코프로 사용합니다. - 이때 내부를 읽으면서 단계를 거쳐, 함수와 변수를 {name: value} 형식으로 실행 콘텍스트에 저장합니다. - book() 함수를 호출할 때, 엔진 컨트롤이 함수 내부로 들어갑니다. - 첫 번째 함수 선언문을 getBook에 function 오브젝트를 할당합니다. - console.log(getBook())은 패스합니다. - 두 번째 함수 선언문을 getBook에 function 오브젝트를 할당합니다. - 결과적으로 getBook에는 두 번째 function 오브젝트가 할당되어 있는 상태입니다. - 변수 초기화 - 내부를 읽어 변수들을 초기화합니다. - 변수 선언이 없어서 패스합니다. - 코드 실행 - console.log(getBook())을 실행합니다. - 이때, getBook() 함수를 호출합니다. - 해당하는 function 오브젝트는 두 번째로 two를 반환합니다. - 따라서, 콘솔에 two가 출력됩니다. - 최종적으로, getBook에는 two를 반환하는 function 오브젝트 할당되어있습니다. 2. 함수 표현식, 함수 호출(), 함수 표현식 ```javascript function book () { var getBook = function () { return "one" ; }; console . log ( getBook ()) ; var getBook = function () { return "two" ; }; }; book () ; // one ``` - 함수 선언문 해석 - function 키워드를 만나서 Function 오브젝트를 생성합니다. - 엔진이 자신이 속한 스코프를 생성한 Function 오브젝트의 [ \[Scope ]]에 설정합니다. - book() 함수를 호출하게 되면, 실행 콘텍스트가 생성되고 실행 콘텍스트에서 호출된 함수의 [ \[Scope ]]에 바인딩된 것을 호출된 함수의 1레벨 밖의 스코프로 사용합니다. - 이때 내부를 읽으면서 단계를 거쳐, 함수와 변수를 {name: value} 형식으로 실행 콘텍스트에 저장합니다. - book() 함수를 호출할 때, 엔진 컨트롤이 함수 내부로 들어갑니다. - 내부에 함수 선언문이 없어서 패스합니다. - 변수 초기화 - 내부에 있는 변수를 초기화합니다. - 처음에 getBook에 undefined를 설정합니다. - console.log(getBook())은 패스합니다. - 두 번째로 getBook에 undefined를 설정합니다. - 코드 실행 - getBook에 function 오브젝트를 할당합니다. - console.log(getBook())를 실행하고, getBook() 함수를 호출합니다. - 이때, getBook() 함수는 one을 반환합니다. - 콘솔에 one이 출력됩니다. - 그 후, getBook에 새로운 function 오브젝트가 할당됩니다. - 최종적으로, getBook에는 two를 반환하는 function 오브젝트 할당되어있습니다. 3. 함수 선언문, 함수 호출(), 함수 표현식 ```javascript function book () { function getBook () { return "one" ; }; console . log ( getBook ()) ; var getBook = function () { return "two" ; }; }; book () ; // one ``` - 함수 선언문 해석 - function 키워드를 만나서 Function 오브젝트를 생성합니다. - 엔진이 자신이 속한 스코프를 생성한 Function 오브젝트의 [ \[Scope ]]에 설정합니다. - book() 함수를 호출하게 되면, 실행 콘텍스트가 생성되고 실행 콘텍스트에서 호출된 함수의 [ \[Scope ]]에 바인딩된 것을 호출된 함수의 1레벨 밖의 스코프로 사용합니다. - 이때 내부를 읽으면서 단계를 거쳐, 함수와 변수를 {name: value} 형식으로 실행 콘텍스트에 저장합니다. - book() 함수를 호출할 때, 엔진 컨트롤이 함수 내부로 들어갑니다. - 첫 번째 함수 선언문을 만나 getBook에 function 오브젝트를 할당합니다. - 나머지는 패스합니다. - 변수 초기화 - getBook 변수를 초기화하려했는데 이미 값이 있어서 초기화하지 않습니다. - 현재 getBook에는 function 오브젝트가 할당되어 있습니다. - 코드 실행 - console.log(getBook())을 만나서, getBook() 함수를 호출합니다. - one이 반환됩니다. - 따라서, 콘솔에 one이 출력됩니다. - 그 후, getBook에 새로운 function 오브젝트가 할당됩니다. - 최종적으로, getBook에는 two를 반환하는 function 오브젝트 할당되어있습니다. 4. 함수 표현식, 함수 호출(), 함수 표현식 ```javascript function book () { var getBook = function () { return "one" ; }; console . log ( getBook ()) ; function getBook () { return "two" ; }; }; book () ; // one ``` - 함수 선언문 해석 - function 키워드를 만나서 Function 오브젝트를 생성합니다. - 엔진이 자신이 속한 스코프를 생성한 Function 오브젝트의 [ \[Scope ]]에 설정합니다. - book() 함수를 호출하게 되면, 실행 콘텍스트가 생성되고 실행 콘텍스트에서 호출된 함수의 [ \[Scope ]]에 바인딩된 것을 호출된 함수의 1레벨 밖의 스코프로 사용합니다. - 이때 내부를 읽으면서 단계를 거쳐, 함수와 변수를 {name: value} 형식으로 실행 콘텍스트에 저장합니다. - book() 함수를 호출할 때, 엔진 컨트롤이 함수 내부로 들어갑니다. - 함수 선언문을 만나 getBook에 function 오브젝트를 할당합니다. - 변수 초기화 - getBook을 초기화하려 하지만 이미 function 오브젝트가 설정되어 있어서 초기화하지 않습니다. - 현재 getBook에는 function 오브젝트가 할당되어 있습니다. - 코드 실행 - getBook에 새로운 function 오브젝트를 할당합니다. - console.log(getBook())를 만나, getBook() 함수를 호출합니다. - getBook() 함수는 one을 반환합니다. - 따라서, 콘솔에 one이 출력됩니다. - 이 단계에서 다시 함수 선언문을 실행하지는 않습니다. - 최종적으로, getBook에는 one을 반환하는 function 오브젝트 할당되어있습니다. 좋은 강의 항상 감사합니다.