HTTP요청과 멱등성 이해하기: GET부터 DELETE까지
·
유용한 개발지식/WEB, DB, GIT
HTTP 요청(GET, POST, PUT, FETCH, DELETE)과 멱등성을 이해해 보자 📌 서론 최근 조금 준비할 것이 생겨 글을 적지 못했다. 그래서 부랴부랴 글을 적으려고 고민을 하던 도중 이전에 세미나를 들으며 정리해 두었던 내용이 있는데 바로 이번 포스트에서 소개할 "HTTP요청에 대한 이해"다. 개인적으로 처음 들었을 때 "멱등성" 파트에서 멘붕을 당했다. 어? 이게 뭐야? 멱등성..? 이렇게 벙찔정도로 약간 충격이었다. 왜냐하면 "나는 API 개발만큼은 잘 알고 있어!"라고 생각하면서 개발해 왔고 주변의 질문에도 아는 것처럼 대답했었는데 막상 내부를 살짝이나마 조금 뜯어보니 제대로 알지 못했던 것이다. 그래서 이번 기회에 정리해 뒀던 내용을 종합해서 모아봤다. GET~DELETE까지의 요..
주니어 개발자의 API 이해하기
·
유용한 개발지식/WEB, DB, GIT
주니어 개발자의 API 이해하기 📌 서론 개발자끼리의 소통에서는 API라는 단어를 자주 얘기한다. 오늘도 개발을 진행하며 API에 대한 얘기를 했다. 이렇게 자주 사용하는 단어인데 막상 누군가 "그래서 API가 뭔가요?" 라고 나에게 질문한다면 제대로 대답할 수 없을 것 같았다. 그래서 나는 API의 개념을 쉽고 간단히 이해하기 위해 알아봤다. 1. API란 무엇인가? 1-1. API란 무엇인가? API, 즉 Application Programming Interface는 다양한 소프트웨어 컴포넌트들 사이의 연결 고리 역할을 한다. 이는 각각의 프로그램이 서로 상호작용하고 데이터를 주고받을 수 있게 해준다. 간단히 말해, API는 한 프로그램이 다른 프로그램의 기능을 사용할 수 있게 해주는 규칙이나 명령..
[SQL] 쿼리 인젝션이란?
·
유용한 개발지식/WEB, DB, GIT
이번 시간에는 쿼리 인젝션에 대해서 알아보자 웹 어플리케이션의 보안은 개발 과정에서 가장 중요한 고려사항 중 하나다. 특히, 데이터베이스와 상호작용하는 웹 사이트에서는 SQL 인젝션과 같은 공격이 심각한 위협이 될 수 있다. 이번 글에서는 SQL 인젝션의 개념부터 시작하여, 이러한 공격이 어떻게 이루어지는지, 그리고 이를 효과적으로 방지하기 위한 방법들에 대해 알아보도록 하자. 특히, 나는 Spring Boot를 주로 사용하기에 SpringBoot 환경에서 쿼리 인젝션을 방지하기 위한 실질적인 전략도 약간 다뤄보고자 한다. 1. 쿼리 인젝션의 위험성과 중요성 1-1. 쿼리 인젝션 이란? 쿼리 인젝션은 웹 어플리케이션 데이터베이스의 쿼리에 임의의 SQL 코드를 삽입하여 공격자가 데이터베이스를 조작할 수 있..
Jenkins 깃허브 훅 설정 - GitHub hook trigger for GITScm Polling 설정하기
·
유용한 개발지식/WEB, DB, GIT
Jenkins에서 CI/CD를 구축하다 보니 "빌드 유발"에서 GitHub hook trigger for GITScm Polling가 존재했고 이에 이것을 어떻게 설정하는지 설명하고자 한다. 1. Github에서 세팅하기 1-1. Settings 들어가기 Jenkins의 CI/CD에 연결할 repository 상단의 Settings를 클릭해 들어간다. 1-2. Webhooks 들어가기 Settings 좌측의 meun bar에서 Webhooks를 클릭한다. 아래와 같이 페이지가 나올것이다 1-3. Webhooks 설정하기 우측의 "Add webhook" 버튼을 클릭한다. 여기서 Payload URL의 url 수정을 해줘야 한다. 아래와 같은 식으로 적어주자 http://{내 jenkins서버 접속 url}..
Github Access Token발급받는 방법
·
유용한 개발지식/WEB, DB, GIT
1. GitHub Access Token을 사용하는 주된 이유 GitHub Access Token을 사용하는 주된 이유는 보안과 유연성 때문이다. 액세스 토큰을 사용하면, 사용자 패스워드를 직접 공유하지 않아도 권한을 부여할 수 있으므로 보안성이 향상된다. 또한 토큰은 특정 권한(scope)과 연결되어 있어, 필요한 작업만을 수행할 수 있도록 제한할 수 있다. 1-1. 언제부터 token이 적용되었는가? 2020년부터 GitHub는 점차적으로 패스워드 기반의 인증을 제한하기 시작했고, 2021년부터는 Git 작업에 대한 패스워드 인증을 완전히 폐지하였다. 이런 변경은 API 사용 뿐만 아니라, Git 클라이언트나 CI/CD 툴 등과의 통신에서도 적용되었다. 1-2. 표준 방식 현재는 GitHub API를..
IndexedDB: CSR 데이터베이스
·
유용한 개발지식/WEB, DB, GIT
회사에서 내가 개발하고 있는 파트였던 콘텐츠 찜하기 기능을 구현하기 위해 localStorage를 찾다가 IndexedDB라는것을 발견했다. 이에 내용을 정리한다. 1. IndexedDB란? IndexedDB는 웹 브라우저에서 동작하는 객체 지향 데이터베이스이다. 이 데이터베이스는 key-value 쌍의 형태로 데이터를 저장하며, 웹 애플리케이션과 관련된 다양한 데이터를 안전하게 보관한다. 세션 정보, 사용자 설정, 복잡한 사용자 데이터 등을 클라이언트 측에서 효율적으로 관리할 수 있다. 1-1. 주요 사용 사례 대용량 데이터 처리 온라인과 오프라인 데이터 동기화 복잡한 데이터 쿼리 예시로, 웹 메일 클라이언트, 클라이언트-사이드 데이터베이스, 웹 기반 게임 등이 있다. 1-2. 장점 비동기 데이터 액세..
GitHub에 다른일자 잔디심기 (macOS)
·
유용한 개발지식/WEB, DB, GIT
급한 상황이 생겨(예비군 같은,,,) 내가 열심히 쌓아오던 잔디를 매꿀수 없다면 어떻게 해야할까..? 너무 마음 아프지만 걱정하지 말자 이 방법대로 하면 잔디를 살릴 수 있다. 1. 깃 로그 열기 먼저 iterm(터미널)으로 커밋할 git 프로젝트 경로로 이동한다. 그리고 아래의 명령어를 친다. git log 위의 명령어를 친다면 다음과 같이 커밋 기록이 나올것이다. 아래 사진을 보면 commit 0608a712ecc4bbe77 → 이런식으로 옆에 긴 문자열이 커밋 해쉬이다. 2. git rebase -i {커밋 해쉬} 입력하기 이제 위의 사진에 있는 수정하고 싶은 날짜 이전의 커밋을 골라 해당 커밋 해쉬값을 복사한다.(커밋 내용을 작 확인하고 진행하자 가끔 맨 위에 커밋해쉬를 잘못 가져오면 제대로 동작..
Web개발 기초 - HTTP 구조
·
유용한 개발지식/WEB, DB, GIT
이번에는 HTTP의 구조에 대해서 궁금증이 생겨서 알아보았다. 1. HTTP 구조를 알아보자 1-1. 헤더 (Header) HTTP 헤더는 요청과 응답의 메타데이터를 담고 있으며, 키-값(key-value) 쌍으로 구성된다. 헤더는 다음과 같은 정보를 포함할 수 있다. 일반 헤더 (General Headers) Cache-Control: 캐싱 동작을 제어한다. Connection: 컨트롤 옵션을 지정한다. (예: keep-alive, close) 요청 헤더 (Request Headers) Accept: 클라이언트가 이해할 수 있는 미디어 타입을 지정한다. Host: 요청 대상 서버의 도메인 이름을 지정한다. User-Agent: 클라이언트의 애플리케이션 타입을 지정한다. 응답 헤더 (Response He..