좋은 API 문서 작성 방법
·
101
API 문서는 개발자와 사용자가 원활하게 API를 파악하고 사용할 수 있도록 돕는 문서입니다. API 문서는 API의 기능을 분명하게 명시하고, 사용 방법과 관련 오류를 살펴볼 수 있게 해야 합니다. 일부 개발자들은 API 문서의 중요성을 간과하기도 합니다. 그러나 문서가 없다면 다른 사람들이 코드를 이해하는 데 많은 시간이 걸릴 것입니다. 개발자의 업무가 많은 경우에는 기술 문서를 작성하는 테크니컬 라이터가 이를 전문적으로 담당하기도 합니다. 오늘날 API 문서는 상품과 서비스의 일부로 간주되며 사용자 경험에도 중요한 영향을 미칩니다. 이번 글은 를 참고하였으며, API 문서를 작성하는 데 필요한 6가지 고려 사항을 담고 있습니다. 1. 개발을 시작하기 전에 문서를 작성하기 개발을 시작하기 전에 문서를..
깃 에러 해결: Permission denied (publickey) - TIL 12
·
TIL
깃에서 새롭게 리포지토리를 생성하고 푸시를 하려는데 권한 없음(Permission denied) 오류가 발생했습니다. 깃허브 블로그에서 관련 문제 해결 방법을 참조하여 에러를 해결할 수 있었습니다. 정확한 서버로 연결을 시도 중인지 확인하기 정확한 도메인으로 접속하고 있는지 확인하고자 한다면 터미널에 아래 명령어를 입력합니다. $ ssh -vT git@github.com > OpenSSH_8.1p1, LibreSSL 2.7.3 > debug1: Reading configuration data /Users/you/.ssh/config > debug1: Reading configuration data /etc/ssh/ssh_config > debug1: /etc/ssh/ssh_config line 47: A..
HTML 새 탭에서 열기 방법과 탭내빙 공격
·
HTML | CSS
HTML 링크를 클릭하면 대부분 새 탭에서 링크가 열립니다. 이를 통해 사용자는 기존의 페이지를 유지하며, 새로운 탭에서 브라우징을 계속할 수 있는 장점이 있습니다. 이번 포스팅에서는 HTML 요소에 링크를 지정하는 방법, 새 탭에서 여는 방법, 이와 관련된 탭내빙 공격에 대해 알아보도록 하겠습니다. 요소에 링크 적용하기 텍스트 또는 이미지 요소에 웹페이지 링크를 적용하기 위해서는 앵커 요소와 href 속성을 사용합니다. Please check my website. 링크를 클릭하면 브라우저는 현재 탭에서 해당 URL로 이동하게 됩니다. 링크를 새 탭에서 열기 위의 코드에 target="_blank" 속성을 추가하면 링크를 새 탭에서 열도록 할 수 있습니다. Please check my website. 링..
CSS 요소 크기 설정: 절대적, 상대적 지정 방법
·
HTML | CSS
CSS에서는 절대적 또는 상대적 크기 설정 방법으로 요소의 길이와 크기를 지정할 수 있습니다. 절대적 설정 속성으로는 px, cm, in 등이 있으며, 상대적 설정 속성으로는 em, rem 등이 있습니다. CSS 요소 크기 절대적 설정 방법 절대적 설정은 요소의 실제 크기를 기준으로 하며, 모든 디바이스에서 동일하게 표현되는 것을 목표로 합니다. 물론, 디바이스에 따라 실제 표현에는 약간의 차이가 발생할 수 있습니다. px px 또는 픽셀은 CSS에서 요소 크기를 설정하는 가장 일반적인 방법입니다. 1 픽셀은 1/96 인치를 의미하며, 다른 모든 절대적 길이 요소들은 1 픽셀을 기준으로 삼습니다. 그러나 픽셀이 처음 도입되었을 때는 모니터의 크기가 1024 x 768이었으며, 96 DPI(dots per..
쿠버네티스 기초 (1): 쿠버네티스의 개념과 사용 이유
·
Kubernetest
쿠버네티스의 개념 쿠버네티스는 애플리케이션을 컨테이너화하여 관리 및 배포할 수 있도록 하는 확장 가능한 오픈 소스 플랫폼입니다. 컨테이너화는 각 애플리케이션이 동일한 OS를 공유하되, 별도의 독립된 공간에서 실행되도록 하는 것입니다. 이를 통해 서버의 유휴 자원을 효율적으로 관리할 수 있으며, 애플리케이션의 빠른 배포 및 관리가 가능합니다. 쿠버네티스를 사용하는 이유 쿠버네티스를 사용하는 이유는 무엇일까요? 이를 이해하기 위해서는 컨테이너식 배포 방법 중 하나인 쿠버네티스 이전의 물리적 서버 및 가상 머신 배포 방식을 살펴볼 필요가 있습니다. 아래 그림은 세 가지 배포 방식의 차이점을 시각적으로 정리한 것입니다. 이어지는 글은 그림에 대한 부가 설명입니다. 물리적 서버 배포 초창기 애플리케이션은 물리적 ..
커맨드 라인 터미널 기본 개념 설명
·
Terminal | Vim
커맨드 라인 또는 CLI(Command Line Interface)는 컴퓨터에게 실행할 명령(커맨드)을 입력하는 공간입니다. 우리가 흔히 알고 있는 터미널(Terminal)과 동일한 개념으로 두 가지 용어는 호환해서 사용할 수 있습니다. 이 글은 Command Line for Beginners, FreeCodeCamp의 일부를 번역 및 정리한 글입니다. 대부분의 컴퓨터 운영 체제는 CLI와 GUI(Graphic User Interface)를 제공하며 다음과 같은 차이점이 존재합니다. CLI: 컴퓨터가 작업을 수행할 수 있는 커맨드를 텍스트로 입력하는 인터페이스입니다. GUI: 그래픽 사용자 인터페이스를 의미하며, 사용자가 화면을 보고 클릭하면 해당하는 작업이 실행됩니다. 터미널을 사용하는 이유 앞서 살펴..
JWT 토큰 발급과 로그인 처리 방법
·
Auth | Security
JWT는 JSON Web Token의 약자로 JSON 형식의 웹 토큰을 의미합니다. 이를 통해 사용자 로그인 인증을 진행하거나 당사자 간에 정보를 교환할 수 있습니다. 이번 포스팅에서는 JWT란 무엇이며, 사용 이유, 토큰 발급과 사용 방법에 대해 알아보도록 하겠습니다. HTTP의 특성 JWT에 대해 알아보기 전에 HTTP의 중요한 특성을 이해하고 있어야 합니다. HTTP는 서버와 클라이언트가 데이터를 주고 받는 대표적인 통신 프로토콜 중 하나입니다. 이러한 HTTP 프로토콜은 각 연결과 상태가 독립적이라는 특성을 갖고 있습니다! 즉, HTTP는 connectionless(연결을 유지 하지 않음)하며, stateless(상태를 유지하지 않음)합니다(쉽게 말해 전에 무슨 일이 있었는지 전혀 모르고, 또 알..
웹소켓 WebSocket 사용 방법 정리
·
Web | Internet
웹소켓 API는 사용자의 브라우저와 서버 간의 양방향 통신을 가능하게 하는 기술입니다. 웹소켓 API를 사용하면 업데이트를 위해 클라이언트에 정기적으로 요청을 전송하는 서버 폴(poll) 없이도 서버와 메시지를 주고 받을 수 있습니다. 웹소켓 사용 방법 webSocket 객체를 통해 서버와 웹소켓 연결을 위한 API 생성과 관리를 진행할 수 있습니다. 웹소켓을 구성하려면 다음과 같이 WebSocket() 생성자(constructor)를 사용할 수 있습니다. // 웹소켓 연결 const socket = new WebSocket('ws://localhost:8080') // 연결 확인 socket.addEventListener('open', function(event)) { socket.send('Hello..
장고 SECRET_KEY 관리 방법: 환경 변수와 로컬 파일 설정
·
Django
장고에서는 프로젝트 생성 시 settings.py에 자동으로 SECRET_KEY를 생성해줍니다. 이는 세션, 메시지, 토큰, 암호화된 서명 등에 사용되므로 외부로 유출되지 않게 잘 관리해야 합니다. 특히나 프로젝트 협업을 진행할 때 사용하는 깃을 통해 직접 SECRET_KEY나 데이터베이스의 암호, AWS 정보, 각종 소셜 로그인 API 키 등을 업로드해 공유할 경우 유출되어 큰 문제가 발생할 수 있습니다. SECRET_KEY를 프로젝트 파일과 구분하여 관리하는 방법으로는 1. 환경 변수 설정 2. 로컬 파일 생성이 있습니다. 환경 변수 설정 환경 변수란 운영 체제(OS)에서 프로세스를 실행하기 위해 참조하는 변수를 의미합니다. 즉, 프로세스가 컴퓨터에서 작동하는 데 영향을 미치는 글로벌 환경의 동적인 ..
장고 개발 환경에 따라 settings.py 분리하는 방법
·
Django
장고에서는 개발 환경에 따라 settings.py를 구분하여 목적에 맞게 서버 환경을 설정할 수 있습니다. 환경을 분리하는 이유는 원활한 협업, 코드의 유지 보수, 공개/비공개 처리, 라이브러리 및 데이터베이스 관리 등을 위해서입니다. 개발 환경에는 기본적으로 서버에 연결하지 않으나 공통 사항들을 공유하는 local과 base가 있으며, AWS S3, RDS 등에 연동한 development, 이를 실제로 배포하는 production이 있습니다. 장고 settings.py 분리하는 방법 settings.py가 있는 로컬 환경에서 settings 디렉토리를 생성합니다. mkdir settings 이를 패키지화 해서 사용할 것이므로 __init__.py를 생성해줍니다. cd settings touch __i..