전체 글 9

[Web] 메신저는 메신저가 아니다

최근 참여한 팀 프로젝트(SNS 서비스 개발)에서 채팅 API 개발을 담당하게 되었다. 일상생활에서 사용하는 메신저의 특징과 구조에 대해서 생각해보았고, 실시간성을 구현하는 것이 핵심이라고 결론 지었다. 리서치 해본 결과, 현재 서비스 중인 채팅 대부분은 WebSocket 을 사용한다는 것을 알게되었다. 따라서 자연스럽게 WebSocket을 프로젝트에 적용하기 위해 이에 대해 공부해보게 되었다. 이번 포스팅에서는 WebSocket에 대한 기본 개념에 대해 알아보고, 프로젝트 과정에서 내가 깨달은 점에 대해 적어보겠다. WebSocket WebSocket은 클라이언트와 서버 간에 실시간 양방향 통신을 가능하게 해주는 프로토콜이다. HTTP는 클라이언트가 서버에 요청을 보내면 서버가 응답을 반환하는 단..

코딩 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