끄적끄적

박치기 공룡

OAuth 2.0 카카오 로그인 구현하기 (Express)

1. 앱키 발급 및 받을 사용자 정보 설정https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.comKakao Developers 가입 후 어플리케이션 생성 하여 앱키를 발급받는다. 제품 설정 - 카카오 로그인 항목의 활성화 설정, OpenID Connect 활성화 설정을 ON으로 바꿔준다.  그 아래 Redirect URI에 본인 백엔드 서버의 파둘 엔드포인트 하나를 추가한다.보통 callback 키워드로 엔드포인트를 생성하더라 근데 난 그냥 kakako로 했다. 제품설정 - 카카오 로그인 - 동의항목 에서..

박치기 공룡

k8s에서 데이터 영속성을 보장하는 방법

볼륨(Volume)이 뭐냐영어로는 부피나 소리의 크기를 의미하지만 Kubernetes와 Docker에서의 볼륨은 데이터를 저장하고 관리하는 방식과 관련된 중요한 개념이다. → 영속성을 보장하기위한 개념각각의 볼륨이 어떤 의미를 가지는지 알아보자.Docker Volume도커에서 볼륨은 컨테이너 내부와 호스트 사이에서 데이터를 공유하기 위한 방법으로 사용된다.Docker 컨테이너는 기본적으로 격리된 가상화 환경에서 동작하기 때문에, 컨테이너 내부에서 생성된 데이터는 기본적으로 컨테이너의 라이프사이클에 종속된다.문제점:컨테이너가 삭제되면 내부 데이터도 모두 삭제되므로 영속적으로 데이터를 저장하거나 공유하려면 별도의 방법이 필요함.해결책:Docker 볼륨을 사용하면, 컨테이너 삭제와 관계없이 데이터를 유지하거나..

박치기 공룡

SSL/TLS/HTTPS

간단 정리SSL은 과거에 사용된 프로토콜로, TLS가 이를 대체.TLS는 현대 인터넷 보안 통신의 핵심.HTTPS는 TLS를 사용하여 HTTP 트래픽을 암호화하며, 웹사이트 보안을 위한 필수 요소.OSI 7계층 & TCP/IP 4계층OSI 모델이 너무 복잡해서 TCP/IP가 표준이랍니다~네트워크 접근 계층 (Network Access Layer)역할: 데이터를 물리적으로 전송하는 계층.인터넷 계층 (Internet Layer)역할: 데이터의 논리적 전송 경로를 결정.전송 계층 (Transport Layer)역할: 프로세스 간 신뢰할 수 있는 데이터 전송 제공.애플리케이션 계층 (Application Layer)역할: 사용자와 가장 가까운 계층으로 데이터 표현 및 통신 서비스를 제공Encapsulate, ..

코테준비/백준

[백준] 3568번: iSharp - Python

링크: https://www.acmicpc.net/problem/3568 아이디어입력받은 문자열을 " "(공백) 단위로 잘라 리스트로첫 요소는 무조건 맨 앞에 고정으로 사용하기 때문에 따로 저장.2번때 요소부터 for 문을 돌리며 판별 진행요소의 뒤에서 부터 확인하는데 맨 뒤는 , 아니면 ; 이기 때문에 그 다음 부터 확인 *이거나 &이면 따로 저장한 첫번째 요소의 뒤에 붙인다.]이 나오면 []를 붙이고 for문을 한번 건너 뛰어 다음으로 간다.알파벳 소문자가 나올 때까지 반복한다.알파벳 소문자가 나오면 그 지점을 가지고 변수명을 추출한다. -> 요소[:그지점 +1] = 변수명! 구현li = input().split()fix = li.pop(0)for i in li: result = fix f..

코테준비/백준

[백준] 1929번: 소수 구하기 - Python

링크: https://www.acmicpc.net/problem/1929 생각M, N을 입력받음M부터 N까지 반복문을 돌며 소수 판별소수는 무엇인가 -> 약수를 1과 자기 자신만을 가지는 수하나의 수를 num이라 할 때 2부터 num -1 까지의 수를 눴을 때 나머지가 0이 되는 경우가 있으면 소수가 아님2중 for문을 써야겠다구현 1 - 시간초과M, N = map(int, input().split(" "))result = []for num in range(M, N+1): if num > 2: for i in range(2, num): if num % i == 0: break if i == num-1: ..

박치기 공룡

GitHub Actions 머리 박치기

CI/CD란?CI는 Continuous Integration(지속적 통합), CD는 Continuous Delivery(지속적 전달)의 줄임말.CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정을 통상적으로 CI/CD라고 부른다.GitHub Actions개요GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼입니다. 리포지토리에 대한 모든 끌어오기 요청을 빌드 및 테스트하거나 병합된 끌어오기 요청을 프..

박치기 공룡

블루-그린(Blue/Green) 배포 머리 박치기

블루-그린 배포란 무엇인가?블루-그린 배포: 애플리케이션이나 서비스를 배포할 때 다운타임을 최소화하고, 배포 과정에서 발생할 수 있는 문제를 빠르게 복구할 수 있도록 설계된 배포 전략.기존 시스템(블루 환경)과 새로운 시스템(그린 환경)을 동시에 운영하며, 안정적이고 빠른 배포를 가능하게 한다.블루-그린 배포의 원리두 개의 환경(Blue와 Green) 운영Blue 환경: 현재 운영 중인 환경Green 환경: 새로운 버전의 애플리케이션을 배포하고 테스트하는 환경그린 환경으로 트래픽 전환새 버전이 Green 환경에 배포되면, 트래픽을 기존 Blue 환경에서 Green 환경으로 전환합니다. 이 과정은 주로 로드밸런서나 DNS 변경을 통해 수행됩니다.롤백 가능성 보장만약 Green 환경에서 문제가 발생하면, 트..

박치기 공룡

언제 JWT이 아닌 쿠키/세션으로 인증/인가를 해야하는지

HTTP는 Stateless (상태 비저장) 프로토콜HTTP는 상태를 저장하지 않는(stateless) 프로토콜이다. 즉, 클라이언트가 서버에 요청을 보낼 때마다 서버는 이전 요청에 대한 정보를 기억하지 않는다. 각 요청은 독립적으로 처리되며, 서버는 요청이 끝나면 클라이언트가 누구였는지에 대해 기억하지 않는다. 이를 stateless라 하며, 이는 웹 애플리케이션을 설계할 때 중요한 고려사항이 된다.이러한 특성을 보완하기 위해 HTTP에서는 쿠키와 세션이 사용된다. 클라이언트의 상태를 유지하고, 클라이언트가 누구인지 확인하기 위해 두 가지 방법을 활용할 수 있습니다.쿠키와 세션의 개념쿠키 (Cookie)정의: 클라이언트(브라우저)에 작은 데이터를 저장하는 방법. 서버는 클라이언트에게 쿠키를 보내고, 클..

박치기 공룡

네트워크 개념 한줄정리

네트워크와 관련된 주요 개념 정리1. 통신과 네트워크통신: 데이터를 주고받는 행위를 의미네트워크: 통신을 가능하게 하는 연결의 구조를 뜻함.네트워크는 작은 LAN(Local Area Network)에서부터 큰 범위의 WAN(Wide Area Network)까지 다양한 규모로 구성될 수 있음.LAN은 주로 집이나 회사처럼 한정된 지역에서 사용되고, WAN은 지리적으로 멀리 떨어진 네트워크를 연결함.2. IP 주소IP(Internet Protocol) 주소: 네트워크에서 기기를 식별하는 고유 주소.정적 IP는 고정된 주소로 변하지 않고, 동적 IP는 네트워크에 접속할 때마다 새로 할당됨.동적 IP의 할당은 DHCP(Dynamic Host Configuration Protocol) 서버가 담당하며, 네트워크 ..

예찬예찬
'분류 전체보기' 카테고리의 글 목록