전체 글 9

[Web 기술] WebSocket이란?

참여한 프로젝트에서 채팅 API 개발을 담당하게 되었습니다. 요구사항을 분석해 가며 웹 채팅의 핵심은 실시간으로 이루어지는 양방향 통신이라고 생각했고, 이를 구현하기 위해 WebSocket 기술을 프로젝트에 도입하게 되었습니다. 이번 포스팅에서는 먼저 WebSocket의 기본 개념에 대해 간단히 알아보고, 채팅 API 개발 과정에서 제가 경험한 문제와 이를 해결한 방법에 대해 적어보겠습니다. WebSocket WebSocket은 클라이언트와 서버 간에 실시간 양방향 통신을 가능하게 해주는 프로토콜입니다. HTTP는 클라이언트가 서버에 요청을 보내면 서버가 응답을 반환하는 단방향 방식이지만, WebSocket은 한 번 연결이 수립되면 양방향으로 데이터를 주고받을 수 있게 됩니다. WebSocket의 원리 ..

코딩 2024.10.11

[HTTP] RESTful API 란?

잘 알고 있다고 생각해도  API가 무엇이냐? 라는 질문을 받게 되면 뭔가 추상적이고 애매한 대답을 하게 되는 경우가 있습니다. 이번 포스팅에서는 직전의 포스팅에서 알아보았던 HTTP 메서드에서 더욱 확장하여 API가 무엇인지, REST 란 무엇인지, 그리고 RESTful API란 무엇인지 가볍게 개념을 잡아보도록 하겠습니다. API 란? API(Application Programming Interface)는 소프트웨어 간의 상호작용을 가능하게 하는  중간 매개체입니다. 쉽게 말해 레스토랑에서 손님이 음식을 주문할 때 메뉴판을 이용하는 것과 같습니다. 레스토랑 측은 미리 레시피를 개발하고 식재료들을 준비해 놓고 이를 메뉴판에 작성해 놓습니다. 손님은 레스토랑에 와서 메뉴판에 있는 음식을 주문하기만 하면 ..

코딩 2024.09.27

[HTTP] PATCH 그리고 OPTIONS

https://lwz7.tistory.com/6 [HTTP] PUT, DELETE 그리고 멱등성https://lwz7.tistory.com/5  [HTTP] GET 방식과 POST 방식GET 방식과 POST 방식 GET 방식과 POST 방식은 웹에서 가장 많이 사용되는 HTTP 요청 메서드입니다. 이 두 메서드는 각각의 용도에 따라 클라이언트와lwz7.tistory.com 최근 DRF를 공부하며 HTTP 메서드들을 자주 마주치고 있습니다. HTTP 관련 포스트를 작성하면서 저도 많은 공부가 되는 것 같습니다. 이번 포스팅에서는 지난 포스팅에 이어 REST API를 다룰 때 유용한 HTTP 메서드인 PATCH, OPTIONS에 대해 알아보겠습니다. PATCHPATCH는 데이터의 일부만 업데이트할 때 사용됩..

코딩 2024.09.13

[HTTP] PUT, DELETE 그리고 멱등성

https://lwz7.tistory.com/5  [HTTP] GET 방식과 POST 방식GET 방식과 POST 방식 GET 방식과 POST 방식은 웹에서 가장 많이 사용되는 HTTP 요청 메서드입니다. 이 두 메서드는 각각의 용도에 따라 클라이언트와 서버 간의 데이터 교환 방식을 정의합니다. 이번lwz7.tistory.com 지난 포스팅에서 GET과 POST 방식에 대해 알아보았습니다. 이번 포스팅에선 조금 더 범위를 확장해서 멱등성 (idempotent)에 대해 알아보고 지난 포스팅에서 다루지 않았던 또 다른 HTTP 메서드인 PUT과 DELETE에 대해 알아보겠습니다. 멱등성이란? 멱등성은 동일한 작업을 여러 번 수행해도 결과가 동일하게 유지되는 성질입니다.  멱등성을 가진 HTTP 메서드GET: ..

코딩 2024.09.05

[HTTP] GET 그리고 POST

GET 방식과 POST 방식은 웹에서 가장 많이 사용되는 HTTP 요청 메서드입니다. 이 두 메서드는 각각의 용도에 따라 클라이언트와 서버 간의 데이터 교환 방식을 정의합니다. 이번 포스팅에서는 GET 방식과 POST 방식의 정의와 특징을 살펴보고, CRUD와의 연관성을 통해 웹에서 이 메서드들이 어떻게 사용되는지 알아보겠습니다. GET GET 방식은 클라이언트가 서버로부터 데이터를 조회할 때 사용하는 HTTP 메서드입니다. 요청하는 데이터는 URL의 쿼리스트링을 통해 전달됩니다. http://example.com/search?query=django&category=python위 예시에서 query=django와 category=python은 GET 요청을 통해 서버로 전달되는 데이터입니다. GET 방식..

코딩 2024.08.22

[GitHub] 초보 개발자를 위한 .gitignore 작성 요령과 팁

.gitignore란? .gitignore는 프로젝트 내에서 Git의 추적을 피하고 싶은 파일들의 명단을 적어 놓는 파일입니다. 일반적으로 개발 중 생성되는 불필요한 파일이나 민감한 정보를 포함하는 파일들을 Git이 추적하지 않도록 하는 데 사용됩니다. 예를 들어 DB, 로그 파일, 환경 설정 파일 등이 이에 해당합니다. https://www.toptal.com/developers/gitignore gitignore.ioCreate useful .gitignore files for your projectwww.toptal.com위의 링크에 접속한 다음, 검색창에 진행 중인 프로젝트에 대한 정보를 입력하면 .gitignore에 작성해야 할 파일들에 대한 템플릿을 제공하므로 편리하게 사용할 수 있습니다.  ..

코딩 2024.08.20

[GitHub] Git과 GitHub

Git과 GitHub, 그리고 Commit 하는 방법 Git이란?Git은 소스 코드의 변경 이력을 관리하는 분산 버전 관리 시스템입니다. 쉽게 말해 Git을 사용하면 파일에 일종의 '추적기'를 달아 모든 변경 사항을 기록할 수 있습니다. 특정 시점에서 파일이 어떻게 변했는지, 누가 어떤 작업을 했는지를 추적할 수 있는 추적기를 붙이는 것과 같습니다. 이를 통해 변경 이전의 상태로 돌아가거나 협업할 때 발생하는 문제를 해결할 수 있습니다.  GitHub란?GitHub는 Git 저장소를 온라인에서 호스팅 할 수 있는 플랫폼입니다. GitHub를 통해 프로젝트를 공유하고 협업할 수 있습니다. Git이 파일에 '추적기'를 달아 변경 이력을 관리하는 도구라면, GitHub는 이 추적기들을 온라인에 모아둔 플랫폼이..

코딩 2024.08.17

[Python] ModuleNotFoundError

ModuleNotFoundError Solution코딩을 하다 보면 ModuleNotFoundError를 종종 마주하게 됩니다. 이 에러는 Python이 특정 모듈을 찾지 못했을 때 발생합니다. 아래는 이 에러를 해결하는 몇 가지 간단한 방법입니다.패키지 설치 여부 확인가장 일반적인 원인은 해당 모듈이 설치되어 있지 않기 때문입니다. 모듈을 설치하려면 터미널에 아래 명령어를 입력하세요.pip install 모듈이름 예를 들어 'django' 모듈이 없어서 에러가 발생했다면 아래와 같이 명령어를 입력합니다.pip install django가상 환경 활성화 확인프로젝트에서 가상 환경을 사용 중이라면 가상 환경이 활성화되어 있는지 확인하세요. 가상 환경이 활성화되지 않은 상태에서 모듈을 설치하면 그 모듈은 전..

코딩 2024.08.15

[Python] 가상 환경

가상 환경가상환경을 설정하는 이유는 프로젝트별로 독립된 패키지 환경을 유지하여 의존성 충돌을 방지하고, 일관된 개발 환경을 제공하기 위함입니다.프로젝트를 시작할 때 대부분의 경우 가장 먼저 하는 작업이 가상 환경을 생성하고 실행하는 것이기 때문에 반드시 알아둬야 할 필요가 있습니다. 가상 환경 생성 방법먼저 새 터미널을 만들어 줍니다. (vscode 기준 단축기 : ctrl + shift + `)각 운영 체제에 해당하는 코드를 터미널에 입력하면 가상 환경이 생성됩니다.# windowpython -m venv (내 가상 환경 이름)# macOS/Linuxpython3 -m venv (내 가상 환경 이름) 가상 환경 실행 방법가상 환경을 생성했다면 가상 환경을 실행하고 작업을 진행합니다.아래의 코드를 터미널..

코딩 2024.08.14