전체 글
-
Docker - 호스트와 컨테이너의 파일 시스템 연결Infra/컨테이너 2022. 4. 29. 14:55
이전 시간에는 docker안에 있는 파일을 직접 수정했다. 하지만 그런 방식은 불편하고 위험한 상황을 유발 시킬 수 있다. 예를 들어 docker에 File System 안에 있는 indexhtml 파일을 직접 수정했다고, 가정 해보자 그런데, Container가 사라졌다면, 작업한 내용이 물거품이 된다. 물론 Container를 사라지지 않게 하면 되겠지만, Container를 사용하는 이유는 필요할 때는 언제든지 생성했다가 필요없으면 언제든지 지울수 있다는 이점 때문이다. 이렇게 하면 어떨까? Container - /usr/local/apache2/htdocs/ Host - /Desktop/htdocs 두 개를 연결하고, Host쪽에 수정이 이루워졌을 때 그것이 Container의 File Syste..
-
Docker - 명령어 실행카테고리 없음 2022. 4. 29. 12:56
localhost:8083/index.html 로 접속했을 때 그 Container안에 있는 Web Server가 그 안에 저장되어 있는 index.html 파일을 읽어서 우리에게 보여주고 있는 화면이다. 이 index.html 파일을 편집해서 원하는 WebApp을 만드는 것이 중요하다. 그러기 위해서는 Container 안으로 들어가서 Container를 수정할 수 있어야 한다. Docker desktop에서 하는 방법 CLI 버튼을 누르면 터미널이 실행된다. 이 터미널에서 pwd명령어를 실행하면, 그 Container안으로 들어가서 pwd 명령어를 실행한 것이다. Command Line에서 실행하는 방법 1 docker exec [OPTIONS] CONTAINER COMMAND [ARG....] 명령..
-
Docker - 네트워크Infra/컨테이너 2022. 4. 29. 10:40
Port의 LocalHost같은 경우는 Host 컴퓨터의 몇번 port로 들어왔을 때, Container의 80port로 보낼지 지정하는 것이다. Container Port와 같은 경우는 image를 만드는 사람이 image에 설치된 프로세스에 접속할 때는 80port로 접속해야 한다고 설정을 해둔 것이기 때문에 80port로 되어있는 것이다. Commad 환경에서 Container를 run할 때 docker run [OPTIONS] IMAGE [COMMAND] [ARG......] docker run --name [CONTAINER_NAME] -p [HOST_PORT]_[CONTAINER_PORT] [IMAGE_NAME] Options --publish, -p : Publish a container's..
-
JavaScript Closure개발언어/JavaScript 2022. 4. 3. 13:43
JavaScript자체는 함수를 정의하지 않고, 함수를 객체로 만들어서 함수가 정의된 것으로 여긴다. 또 함수를 객체로 만들기 때문에 그 함수 객체가 반환 될 수도 있고, 함수가 함수 안에서 만들어 질 수도 있고, 그러다 보니까 함수가 가진 지역변수에 대한 문제가 클로저라 것의 필요성을 발생시켰다. 변수 생명주기와 클로저(Closure) 함수가 하나 정의되어 있고 var라는 키워드를 사용해서 a를 선언했기 때문에 a는 함수 안에서만 사용할 수 있는 지역변수 이다. 누군가 f1()을 호출하게 되고, 그 값을 반환 받게 되면, 당연히 1이 반환되게 된다. 함수안에서 선언되었던 a라는 변수는 함수안에서 생명주기를 살아있게된다. 그리고 f1()함수가 가지고 있던 자원들은 모두 해지된다. JavaScript는 함..
-
함수의 가변인자 aruments 콜렉션카테고리 없음 2022. 4. 3. 11:59
그림1 과 같이 지정된 파라미터 갯수를 넘어서 파라미터를 넣어서 함수를 호출해도 오류가 발생하지 않는다. 왜냐하면 JavaScript는 특이하게도 함수의 파라미터는 의미가 없다. 파라미터 즉 매개변수가 값을 받는 그릇 으로 역할을 하지 않는다. JavaScript는 데이터가 모두 객체이기 때문에, 매개변수 x와 y는 넘어올 값을 참조하는 이름일 뿐이다. 담는 그릇이 아니다. 그래서 참조하는 것으로 x,y가 있고, 넘겨지는 매개변수는 다 가변으로 받을 수 있는 collection을 가지고 있다. functrion이라고 하는 객체 안쪽에 사용 할 수 있는 arguments라고 하는 collection이 있다. arguments는 넘겨진 매개변수를 다 차곡차곡 쌓아 놓는다. arguments는 가변적으로 수집..
-
JavaScript 연산자 ===, ! ==카테고리 없음 2022. 4. 3. 11:02
상수 box1 3이라는 숫자를 변수x에 대입할 때 JavaScript에서는 사실상 대입되는 것이 아니라 숫자3이 Boxing되어 참조되는 것이다. 여기서 부터 문제가 발생하는데, box가 참조되는 형식이다 보니까 변수x는 box에 대한 이름이 된다. 여기서 또다른 변수y에 3을 담을 경우 또 다른 box안에 3이 담겨지게 되고, 그 box에 이름으로 변수 y가 존재하게 된다. 이럴 경우 비교해야 하는 것이 2가지 존재하게 된다. 하지만 사실상 그림 1과 같이 x변수와 y변수를 설정하고 ===(같은 box를 참조하고 있는가?)를 비교하는 결과에서도 true 값을 얻게된다. 상수 box2 x == y // true x === y // true 왜냐하면, 상수라는 것을 변수에다가 참조 시킬 때는 상수는 똑같은..
-
JSON parser로 JSON 파싱하기카테고리 없음 2022. 4. 3. 10:25
Object 객체에 key에 해당하는 부분을 지금까지는 문자열로 표현하였다. 그런데 그 부분을 굳이 문자열로 표현하지 않아도 JavaScript에서는 묵시적으로 문자열로 인식하게 되기 때문에 이것을 사용할 때 전혀 문제가 되지 않는다. JSON 파서를 이용해서 파싱을 하려고 할 때, 파싱 대상이 JSON 문법 구조에 알맞다고 하면, JSON 파서는 정상적으로 변수 data에 그 결과물로 파싱 대상이 JavaScript의 객체로 만들어진다. 하지만 경우1 처럼 key값을 문자형태로 표현하지 않고 console.log(data.title); 로 결과를 출력하려고 하면, error가 발생한다. JSON.parse의 경우 JSON형식의 문법 규칙을 아주 까탈스럽게 확인하기 때문이다. 그래서 parser를 쓸 때..
-
Eval함수로 JSON파싱 하기개발언어/JavaScript 2022. 4. 3. 09:47
Eval함수 이용 그림1은 JavaScript 코드로 사용될 수 있는 형태로 되어 있지만 사실 보편적으로 이런 형식으로 데이터를 받지는 않는다. ( +추후에 script에서 원격에 있는 문서를 읽어 오는 방법을 배우될 것이다.) script로 원격에 있는 문서를 읽어 오면 data 변수안에 Object객체 배열은 String 형태로 가져오게 된다. (JavaScript에서는 문자열 내려쓰기가 인정되지 않기 때문에 문장을 내려 쓸때는 " \" (역슬래시)를 내리기 전 문장 끝에 표가해 주어야 한다.) 그림3과 같은 console.log에 값을 뽑아 낼 수 없다. data안에 fomat은 완벽하게 JSON형식을 따르고 있지만, 변수 데이터는 거대한 하나의 문자열일 뿐이다. data[0] 이라고 하면 문자열 ..