IT 20

[크롬 인스펙터] 모바일 웹 디버깅 하는 방법

PC 웹에서는 반응이 있는데 Android WebView 에서는 반응이 없어서 확인을 하고 싶은데 이전에는 alert 나 Debug 를 찍어서 확인했었다. 근데 크롬 인스펙터라는걸 이용하면 쉽게 디버깅 할 수 있다고 했는데 나는 지금까지 이 존재를 몰랐다. 어떤 사수를 만나도 이 존재를 알려주지 않았었는데 오늘 처음으로 들었는데 아주 편하게 이용했다. 크롬에 들어가서 chrome://inspect/ 를 주소창에 치면 이런식으로 페이지가 뜬다. 기다리다 보면 USB 로 연결해놓은 디바이스 이름이 뜨게된다. 여기서 inspect 를 누르면 이제 모바일 화면이 PC 크롬에서 확인할 수 있다. 모바일 화면이 움직이는대로 PC 크롬에서도 같이 움직이는데 개발자 도구를 열어서 오류뜨는걸 확인하면 아주 편하게 디버깅..

IT 2024.04.03

HTTP 403 Forbidden

403 Forbidden 서버가 요청을 이해했으나, 클라이언트가 요청한 작업을 수행할 권한이 없을 때 에러 발생한다. 사용자가 리소스에 대한 적절한 인증을 제공했음에도 불구하고, 특정 작업을 수행할 권한이 없을 때 발생한다. 401 Unauthorized 에러랑 403 Forbidden 는 유사해서 헷갈릴 수 있지만 HTTP 401 Unauthorized 401 Unauthorized HTTP 401 에러는 클라이언트가 요청한 리소스에 접근하기 위한 유효한 인증 자격 증명을 제공하지 않았을 때 서버가 이 에러를 반환한다고 한다. 잘못된 인증 토큰 사용 사용자가 로 8735.tistory.com 401 에러는 인증자격이 없을 때 발생하고 403 에러는 인증은 됐는데 특정 작업에 대해서 권한이 없을 때 발생..

IT 2024.04.01

HTTP 401 Unauthorized

401 Unauthorized HTTP 401 에러는 클라이언트가 요청한 리소스에 접근하기 위한 유효한 인증 자격 증명을 제공하지 않았을 때 서버가 이 에러를 반환한다고 한다. 401 Unauthorized 에러랑 403 Forbidden 는 유사해서 헷갈릴 수 있지만 HTTP 403 Forbidden 403 Forbidden 서버가 요청을 이해했으나, 클라이언트가 요청한 작업을 수행할 권한이 없을 때 에러 발생한다. 사용자가 리소스에 대한 적절한 인증을 제공했음에도 불구하고, 특정 작업을 수행할 8735.tistory.com 401 에러는 인증자격이 없을 때 발생하고 403 에러는 인증은 됐는데 특정 작업에 대해서 권한이 없을 때 발생한다. 잘못된 인증 토큰 사용 사용자가 로그인을 하고 인증 토큰(JW..

IT 2024.04.01

[Python] .toml 종속성 설치

[Python] - [Python] requirements.txt [Python] requirements.txt 📱테스트 환경 "python": "3.9.0" "PyCharm": "2023.2" "flask": "2.3.3" 😢 주의사항 나는 파이썬 초보다. 대학교에서 쥬피터 이용해서 네이버에 손흥민 검색했을 때 나오는 뉴스결과 긁어본게 전부다. requirem 8735.tistory.com 예전에 requirements.txt 이용해서 필요한 종속성을 설치한 적이 있었는데 이번에 RealBy 블로그 오픈소스를 이용하려고 보니까 requirements.txt 파일이 없어서 당황했는데 알고보니까 .toml 파일도 똑같은 역할을 한다고 한다. pip install . // or pip install -e ...

IT 2024.03.29

Putty, Liunx 명령어

Docker 명령어 - Container 실행, 띄우기 Docker 명령어 - Container 실행, 띄우기 이번에 도커를 사용해서 뭘 해본다고 하길래 .. 중요한게 아니라면 먼저 이것저것 해봐도 돼냐 .. 라고 여쭤보니까 이번주 안으로 해줬으면 좋겠다는 농담 반 진담 반과 함께 진행하였다. 진짜 8735.tistory.com 해당 작업을 진행할 때 문제는 로컬에서만 작동된다. 하지만 내가 원하는건 ( 대부분의 사람들이 원하는건 ) 내가 컴퓨터를 종료해도 영원히 살아있는 걸 원할거다. 로컬에다가 띄워놓으면 내가 컴퓨터를 종료하면 컨테이너도 같이 죽는다. 그래서 대부분 리눅스 서버에다가 띄워놓을텐데 그때 리눅스 서버에 들어가서 작업할 때 사용할 수 있는 게 Putty ( 퍼티 ) 다. 이외에도 다른 툴들..

IT 2024.03.29

Docker 명령어 - Container 실행, 띄우기

이번에 도커를 사용해서 뭘 해본다고 하길래 .. 중요한게 아니라면 먼저 이것저것 해봐도 돼냐 .. 라고 여쭤보니까 이번주 안으로 해줬으면 좋겠다는 농담 반 진담 반과 함께 진행하였다. 진짜 아무런 기초지식도 없이 시작해서 4일동안 개고생을 했는데 .. 누군가에게는 도움이 됐으면 하는마음과 간단한 히스토리를 남기려고 한다. Window 에서 진행했고 Docker Desktop 을 설치해서 GUI 로 확인하긴 했지만 큰 도움이 됐는지는 미지수 PowerShell 에서 진행하였다. docker run hello-world 기본적으로 run 이란 명령어는 Docker 이미지로부터 새로운 컨테이너를 생성하고 실행하라는 명령이다. 해당 명령어를 실행시키면 임의의 포트로 개방돼서 로컬환경에서 확인해볼 수 있다. do..

IT 2024.03.29

웹스톰, 인텔리제이 - 실행 취소, 복구 단축키

내가 입력한 코드를 이전 상태 되돌리고 싶다면 Ctrl + Z 를 누르면 실행취소 시킬 수 있다. 반대로 실행 취소 막 누르다가 다시 앞으로 가야한다면 Ctrl + Shift + Z 를 누르면 복구 시킬 수 있다. 웹스톰이나(WebStorm), 인텔리제이(IntelliJ) 에서 밖에 안해보긴 했지만 흔히 사용하는 VSCode 에서도 문제없이 쓸 수 있지 않을까 생각해본다.

IT 2024.03.28

깊은 복사(deep copy) vs 얕은 복사(shallow copy)

최근에 깊은 복사와 얕은 복사에 대해 질문을 받았는데 생각보다 잘 알고있지 못해서 어버버 거렸던게 신경쓰여서 찾아보게 되었다 ㅎ 원래 알고있던 내용이라 "아 ~ 맞아맞아" 하는 내용도 있었고 "오 ~" 하는 새로운 내용도 있었다. 얕은 복사 (Shallow Copy) 얕은 복사는 원본 데이터의 최상위 레벨만을 복사한다. 중첩된 객체나 배열이 있다면, 해당 객체나 배열은 원본과 동일한 참조를 유지한다. Ex : 스프레드 연산자(...), 배열의 slice() 등 얕은 복사 (Shallow Copy): 최상위 레벨의 객체나 배열은 새로운 객체나 배열로 복사되지만, 됩니다. 깊은 복사 (Deep Copy): 깊은 복사는 원본 데이터의 모든 중첩된 객체와 배열을 재귀적으로 복사한다. 새로운 객체나 배열이 생성되..

IT 2024.02.21

[IT] Web 페이지 로딩 하는 과정

Web 개발을 하는데, Web 이 어떻게 로딩되는지 정도는 알고 개발해야 Web 개발한다고 어디가서 말할 수 있지 않을까 하는 취지에서 작성하게 되었다. 물론 모르는건 아닌데 체계적으로 설명하기 위해서 & 기록하기 위해서 .. 제일많이 사용되는 Google 을 가지고 간단하게 작성해보자면 DNS 조회 (Domain Name System) 사용자가 브라우저에 www.google.com을 입력하면, 해당 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청 DNS 서버는 www.google.com에 대한 IP 주소를 반환 TCP 연결 (Three-Way Handshake) 브라우저는 얻은 IP 주소를 사용하여 Google 서버에 TCP 연결을 시도 HTTP 요청 TCP 연결이 설정되면, 브라우저는 H..

IT 2023.12.19

[IT] 객체지향 개발의 5원칙 (SOLID 원칙)

SOLID 는 객제치향 프로그래밍(OOP) 에서 디자인 원칙을 나타내는 다섯가지 원칙의 약자이다. 단일 책임 원칙 (Single Responsibility Principle - SRP): 클래스는 하나의 책임만 가져야 한다. → 클래스가 변경되어야 하는 이유는 단 하나여야 한다. 개방/폐쇄 원칙 (Open/Closed Principle - OCP): 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 새로운 기능이 추가되거나 변경이 필요할 때 코드를 수정하지 말고, 기존 코드를 확장하여 새로운 기능을 추가할 수 있어야 한다. 리스코프 치환 원칙 (Liskov Substitution Principle - LSP): 하위 타입은 상위 타입으로 치..

IT 2023.12.19