반응형

프로그래밍/IT 이것저것 40

쿠키, 세션, 캐시 구별하기

https://www.youtube.com/watch?v=OpoVuwxGRDI 세션은 사이트 이용자들의 중요 정보를 총괄하는 곳이다. 세션을 사용하는 사이트에 접속을 하면 서버에서는 사용자를 구분하기 위한 기한이 짧은 임시키 하나를 브라우저에 보내서 쿠키로 저장한다. A라는 사용자가 사이트를 돌아다닐 때 사용자의 중요한 정보들은 이 사이트의 서버의 메모리나 데이터베이스에 저장된다. 브라우저가 이 사이트의 페이지에 접속할 때마다 http 요청에 이 키를 실어서 전송하고, 서버는 그 키를 보고 얘가 A 사용자구나 하고 인식해서 A의 정보들을 가공해서 응답으로 보내준다. 네이버에 한번 로그인하면 다른 네이버 페이지를 돌아다닐 때마다 로그인할 필요가 없는 것은 쿠키와 세션의 조합으로 내 컴퓨터에서 네이버에 로그..

라이브러리와 프레임워크의 차이점

https://www.youtube.com/watch?v=t9ccIykXTCM 라이브러리와 프레임워크의 차이점에 대해서 좀 더 정확히 알고 싶어서 공부했다. 기존에는 라이브러리와 프레임워크의 차이는 그냥 라이브러리가 여러개 모인게 프레임워크다 정도로 모호하게만 알고 있었다. 이 영상에서는 더 명확한 기준을 제시한다. 어떠한 기능을 구현할 때 호출하는 주체가 누구냐에 따라서 달라진다는 것이다. 내가 어떠한 기능을 구현할 때 필요한 라이브러리를 호출한다. 프레임워크는 어떠한 기능을 구현하고 싶으면 사용자에게 어디에 코드를 넣어야 하는지 등 규칙을 알려준다. 라이브러리는 나도 써봐서 알지만 GUI를 제작하고 싶으면 사용자가 알아서 tkinter나 PyQt를 호출해서 사용하고, YOLOv8을 파인튜닝하고 싶으면..

2TB 이상 외장하드 포맷 방법

업체에서 외장하드를 제공 받았는데 맥에서는 호환이 되지 않아 사용이 불가하여 윈도우 운영체제를 사용하는 데스크탑에 외장하드를 백업한 후 맥에서 외장하드를 포맷했다. 1. 맥에 외장하드 연결 후 디스크 유틸리티 실행 2. 디스크 유틸리티에서 외장하드 클릭 후 지우기 클릭 3. 제목은 영어로, 포맷은 exFAT, 파티션 방식은 외장 하드가 2TB 이상이면 GUID로 설정하고 그 미만이면 MBR(마스터 부트 레코드)로 설정 후 지우기 실행. 4. 지우기가 끝나면 이제 맥에서 정상적으로 인식이 되며 데이터 읽고 쓰기가 가능해진다.

docker container에서 명령어 실행

내가 선택한 컨테이너에서 터미널을 열어 터미널에 대해 명령어를 실행시킬 수 있다. 데스크톱 앱에서가 아니라 터미널에서도 exec 명령어로 실행중인 컨테이너에 명령어를 입력할 수 있다. docker exec ws3(컨테이너명) pwd(명령어, 현재 경로 출력) 위 명령어가 ws3 컨테이너에 들어가서 출력이 제대로 되는 모습을 확인할 수 있다. 쉘 파일을 실행시키는 두 명령어가 실행 되자마자 종료된다. 이런 경우에는 -it 옵션을 줘서 실행이 지속되도록 한다. -it 명령어를 추가하여 입력하자 쉘이 정상적으로 열리고 지속된다. 쉘 환경에서 명령어도 입력 가능하다. 쉘 파일을 불러올 때는 /bin/sh 나 sh를 작성하면 된다. 쉘 환경에서 나가고 싶을 땐 exit 혹은 control + d 를 입력하면 된다.

[오류] docker: Error response from daemon: pull access denied

오류의 전문은 아래와 같다. user@Userui-MacBookPro ~ % docker run ws3 -p 8081:80 httpd Unable to find image 'ws3:latest' locally docker: Error response from daemon: pull access denied for ws3, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'. 원래 docker run [image] 양식의 명령어는 이미지에서 새 컨테이너를 생성하는 명령어이다. 하지만 존재하지 않는 이미지인 ws3를 입력하여..

[오류] docker: Error response from daemon: Conflict.

오류의 전문은 다음과 같다. user@Userui-MacBookPro ~ % docker run --name ws3 -p 8081:80 httpd docker: Error response from daemon: Conflict. The container name "/ws3" is already in use by container "83914bd033ac6457e9614e55d8b823afcffec417e8856c63eee3404e9a0875e8". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help'. 원인은 중복된 이름으로 run(이미지에서 컨테이너를 생성하는 명령어) 명령어를..

docker network

docker의 컨테이너는 웹서버의 역할도 가능하다. docker에 컨테이너를 생성 후 이에 접속하려면 다음과 같은 과정을 거쳐야 한다. 1. 호스트 컴퓨터의 포트인 80번에 신호를 전송한다. 현재 사용중인 아파치 웹서버의 기본 포트 값이 80이다. 2. 호스트의 80번 포트에 신호를 전송 후 이 80번과 연결된 컨테이너의 포트 8080번에 신호를 전송한다. 3. docker container 에 접속이 완료된다. 이를 위해선 다음과 같은 docker image 생성 과정을 거쳐야한다. 데스크톱 앱에서 이미지를 만들 때는 컨테이너 이름, 포트번호를 지정해주면 된다. 현재 웹서버의 포트번호는 80번이라 이에 연결될 컨테이너의 포트를 설정하면 된다. 나는 8080번으로 설정한다. 이렇게 하면 호스트의 80번으..

docker container, image run

docker는 한 이미지로 여러 컨테이너를 생성 가능하다. 구조도를 표현하자면 image. ----- run ----> container 로 표현 가능하겠다. image로 여러개의 컨테이너를 생성 가능하다. docker context ls 명령어를 통해 현재 실행중인 context가 데스크톱 앱임을 확인했다. docker run httpd 명령어로 httpd 이미지의 컨테이너를 생성했다. docker ps 명령어로 현재 실행중인 컨테이너를 조회했다. httpd 이미지의 컨테이너가 실행중이고 이름은 지정하지 않아 임의로 'friendly tesla'라는 이름이 붙었다. 다른 터미널에서 ws2 라는 이름을 지정하여 httpd 이미지의 컨테이너를 생성한다. docker ps 로 조회했다. ws2, friend..

docker context에 대해 (colima와 desktop-lunux)

docker를 처음 접할 땐 docker로 맥OS 상에서 오라클을 실행시키기 위한 방법을 찾을 때였다. docker를 무겁게 데스크톱 앱으로 돌리지 않을 수 있는 colima를 사용해 실행했는데 이후 고민이 생겼다. 1. docker를 colima로 사용하면 다른 image를 pull할 때 도커 데스크톱 앱이랑 공유가 안되는데 데스크톱 앱은 어떻게 다루지? 2. docker를 사용할 때 마다 colima를 실행해야 하는가? 이 두가지에 대한 답을 생활코딩 docker 강의를 수강하며 해결했다. 1번째 질문은 docker의 context를 변환하면 된다. 과정을 살펴보자. docker image 명령어로 image들을 확인했다. docker context ls로 확인한 결과 현재의 context는 coli..

Google Colab 사용법 정리 - 2.Jupyter Notebook

Jupyter Notebook help() 파이썬 객체에 대한 요약 정보와 사용법 보기 기본적으로 제공되는 내장 함수 함수의 사용법을 얻고 싶을 때 사용 입력 help(min) #min 함수의 사용법 조회 출력 Help on built-in function min in module builtins: min(...) min(iterable, *[, default=obj, key=func]) -> value min(arg1, arg2, *args, *[, key=func]) -> value With a single iterable argument, return its smallest item. The default keyword-only argument specifies an object to return ..

반응형