전체 글
-
HTTPS 통신 과정네트워크 2026. 4. 13. 01:12
HTTPS란OSI 7계층에서 동작하는 프로토콜 중 하나로 SSL/TLS를 이용한 암호화를 토대로 웹 브라우저와 서버 간 데이터를 안전하게 전송하는 HTTP의 보안버전이다. 평균적으로 TCP 443 포트를 사용한다. 통신 과정리얼월드 예시로 통신 과정을 설명하자면 아래와 같다. 예 : 사용자가 브라우저에서 https://www.google[.]com 입력하여 검색 1. 도메인 해석 및 DNS 조회입력 받은 주소를 토대로 브라우저는 접속 대상 도메인, HTTPS 사용 여부, 포트 번호 등을 확인한다.이후 도메인에 접속을 시도하는데 사실 우리가 입력한 도메인 주소로는 접속 불가능하다.정확히 말하자면 입력 받은 도메인 주소를 IP로 변환하는 과정을 거쳐야 하고 이걸 해주는게 바로 DNS(Domain Name ..
-
문자열개인공부/백준 2026. 1. 18. 14:36
# 1. 문자와 문자열def main(): S = input() # 문자열 타입으로 표준 입력 받기 i = int(input()) #int()를 지정해 정수형으로 표준 입력 받기 print(S[i-1]) # 슬라이싱을 이용해 특정문자만 출력if __name__ == '__main__': main()# 2. 단어 길이 재기def main(): S = input() print(len(S))if __name__ == '__main__': main()# 3. 문자열def main(): T = int(input()) # 테스트 케이스 입력 a_list = list() for i in range(T): a_list.append(input()) # ..
-
1차원 배열개인공부/백준 2026. 1. 18. 14:35
# 1. 개수 세기import sysdef main(): T = int(input()) # 테스트 케이스 a_list = list(map(int, sys.stdin.readline().split())) # 리스트로 입력값 저장 v = int(input()) # 갯수를 찾을 특정 값 cnt = 0 for i in a_list: # 리스트 안 값들 if(i == v): # 리스트 안 값과 v와 같을 시 cnt += 1 # 갯수 카운트 플러스 해주기 print(cnt)if __name__ == '__main__': main()# 2. X보다 작은 수import sysdef main(): T, X = map(int, sys.stdin.r..
-
조건문개인공부/백준 2026. 1. 18. 14:33
#조건문#1. 두 수 비고하기def main(): num_a, num_b = map(int, input().split()) if(num_a > num_b): print(">") elif(num_a=90): print("A") elif(test_score>=80): print("B") elif(test_score>=70): print("C") elif(test_score>=60): print("D") else: print("F")if __name__ == '__main__': main()#3. 윤년def main(): year = int(input()) if(year=40..
-
반복문개인공부/백준 2026. 1. 18. 14:32
#반복문#1. 구구단def main(): num = int(input()) for i in range(1,10): result = num * i print(f"{num} * {i} = {result}") #f string 이용해서 print문 내 일반 문자열 + 변수 함께 사용if __name__ == '__main__': main()#2 A+B - 3def main(): #메인 함수 case_num = int(input()) result = list() for i in range(case_num): a, b = map(int, input().split()) #같은 줄에 사용자 입력값 받기 result.append(a + ..
-
입출력과 사칙연산개인공부/백준 2026. 1. 18. 14:29
#입출력과 사칙연산#1. Hello Worlddef main(): print('Hello World!)if __name__ == '__main__': main()#2. A+Bdef main(): a, b = map(int, input().split()) print(a+b)if __name__ == '__main__': main()#3. A-Bdef main(): a, b = map(int, input().split()) print(a-b)if __name__ == '__main__': main()#4. A×Bdef main(): a, b = map(int, input().split()) print(a*b)if __name__ == '__main__':..
-
Promise, resolve(), thenable(), reject()개인공부 2025. 12. 18. 19:13
Promise지금은 결과가 없더라도, 나중에 성공하거나 실패할 값에 대한 약속 객체네트워크 요청은 시간이 걸리지만 JS는 그 결과를 기다리지 않음그렇기에 Promise 객체를 이용하여 추후 데이터를 받아 사용 가능하도록 설정//Promise 미사용 시doA(() => { doB(() => { doC(() => { console.log("끝"); }); });});//Promise 사용 시doA() .then(doB) .then(doC) .then(() => console.log("끝")) .catch(console.error);3가지 상태를 가짐pending아직 결과 없음fulfilled -> value(성공 = 값) rejected -> reason(실패 = 에러) The..
-
[디지털포렌식] 이론 정리보안/침해사고 2025. 4. 17. 19:28
디지털포렌식 증거 능력 요건1. 진정성- 분석하는 증거가 사건과 직접적인 연관이 있는가2. 원본성- 수집된 증거의 원보늘 제출해야함3. 무결성- 수집•제출•이관 중 원본 데이터에 대해 변형을 주면 안됨- ideal : 훼손될 경우 증거로서의 가치 X- reality : 컴퓨터는 켜져있는 매순간 데이터가 새로 씌어지며 변형됨. 하지만 서버와 같은 시스템에 대해 포렌식을 진행할 경우 시스템을 OFF 한 상태로 수집을 못하기에 현실적으로 무조건적으로 지키기는 힘듬- 무결성을 왜 지킬 수 없었는지에 대해 체계적으로 문서화 할 경우 인정 받을 수 있는 경우가 존재4. 신뢰성 - 기관, 사람, 도구- 여기서 도구는 특정 브랜드를 의미하지 않음(예: EnCase, DFAS 등등 상관 X)* 재현의 법칙 : 반복적으로..