전체 글

끄적끄적
박치기 공룡

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: ..

DevOps

GitHub Actions 머리 박치기

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

DevOps

블루-그린(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) 서버가 담당하며, 네트워크 ..

Python

Section 1_Context Manager(2)

Python Advanced(1) - Context Manager(2) Keyword - Contextlib, enter, exit Contextlib - Measure execution(타이머) 제작 Ex1 - 함수 실행시간을 출력하는 Context manager # Use Class import time class ExcuteTimerCls(object): def __init__(self, msg): self._msg = msg def __enter__(self): self._start = time.monotonic() return self._start def __exit__(self, exc_type, exc_value, exc_traceback): if exc_type: print("Logging..

Python

Section 1_Context Manager(1)

Python Advanced(1) - Context Manager(1) Keyword - Contextlib, enter, exit, exception 가장 대표적인 with 구문 이해 원하는 시점에 리소스 할당 및 회수 정확한 이해 후 사용 프로그래밍 개발 중요(문제 발생 요소) Ex1 # No use with. file = open('./testfile1.txt', 'w') try: file.write('Context Manager Test1.\nContextlib Test1.') finally: file.close() 예전에는 이런 식으로 많이 사용 Ex2 # Use with.` with open('testfile2.txt', 'w&#..

예찬예찬
예찬예찬