일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 문자열
- BFS
- partition
- 딕셔너리
- sql injection
- 데이터분석
- 자료형
- Elasticsearch
- 프로그래머스
- 조건문
- Apache Kafka
- Lv3
- Python
- elk스택
- Message
- XSS
- rabbitmq
- CSRF
- CORS
- Kibana
- queue
- programmers
- Kafka
- topic
- segment
- 불리언
- 튜플
- 숫자게임
- Logstash
- 로그관리
- Today
- Total
목록분류 전체보기 (26)
dev-minchur 님의 블로그

프로그래머스의 "숫자게임" 문제는 A,B 두팀에서 B의 팀이 최대 승점을 구하는 문제입니다. 각각 두팀은 무작위로 자연수를 하나씩 부여 받고, A팀의 출전 순서는 B팀에게 공개를 합니다.문제 분석모든 사원이 무작위로 자연수를 하나씩 부여받습니다.각 사원은 딱 한 번씩 경기를 합니다.각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다.만약 숫자가 같다면 누구도 승점을 얻지 못합니다.해결 방법A,B 두 리스트를 정렬을 하여 B의 값이 큰 경우에만 승점을 포함시키고 인덱스 번호를 증가 시켜 승점을 계산합니다.1차 문제 풀이 (틀림)def solution(A, B): sort_a, sort..

프로그래머스의 "단어 변환" 문제는 주어진 시작 단어(begin)를 목표 단어(target)로 변환하는 데 필요한 최소 단계를 찾는 문제입니다. 변환 규칙은 한 번에 하나의 알파벳만 변경할 수 있으며, 변경된 단어는 반드시 주어진 단어 목록(words)에 포함되어야 합니다.문제 분석:단어의 구성 및 길이:모든 단어는 알파벳 소문자로 이루어져 있으며, 길이는 3자 이상 10자 이하로 동일합니다.변환 규칙:한 번에 하나의 알파벳만 변경 가능하며, 변경된 단어는 반드시 words에 존재해야 합니다.목표:begin에서 target으로의 변환에 필요한 최소 단계 수를 찾는 것입니다. 변환이 불가능한 경우 0을 반환합니다.해결 방법:이 문제는 그래프 탐색 알고리즘인 BFS(너비 우선 탐색)를 활용하여 해결할 수 있..

SQL 인젝션이란?SQL 인젝션은 사용자 입력을 제대로 검증하지 않은 웹 애플리케이션의 취약점을 악용하는 공격 기법이다. 공격자는 악의적인 SQL 코드를 삽입하여 데이터베이스를 조작하거나 민감한 정보를 탈취할 수 있다.SQL 인젝션의 위험성데이터 탈취: 공격자가 데이터베이스에서 중요한 정보를 빼낸다.데이터 변조: 데이터베이스의 데이터를 변경하거나 삭제할 수 있다.권한 상승: 공격자가 데이터베이스 관리자 권한을 획득할 수 있다.전체 시스템 장악: 심각한 경우 서버 전체를 제어할 수 있다.SQL 인젝션 공격 예시String username = "admin'; --";String password = "password";String query = "SELECT * FROM users WHERE username ..

XSS란?XSS는 웹 애플리케이션의 취약점을 이용해 악성 스크립트를 다른 사용자의 브라우저에서 실행시키는 공격이다. 이를 통해 공격자는 사용자의 세션을 가로채거나, 악성 코드 실행, 웹사이트 변조 등의 공격을 수행할 수 있다.XSS 공격의 유형반사형 XSS (Reflected XSS)사용자가 입력한 데이터가 즉시 웹 페이지에 반영되어 발생하는 공격이다.주로 URL에 포함된 악성 스크립트를 통해 이루어진다.예시: 사용자가 http://example.com/search?q=와 같은 URL을 입력하면, 웹 애플리케이션이 검색어를 그대로 출력하여 스크립트가 실행된다.저장형 XSS (Stored XSS)악성 스크립트가 서버에 저장되어 여러 사용자가 해당 스크립트를 실행하게 되는 경우이다.예시: 사용자가 게시판에 ..

CSRF란??CSRF(Cross-Site Request Forgery)란 웹 애플리케이션의 취약점을 이용해 사용자가 의도하지 않은 요청을 보내도록 하는 공격 기법이다. 공격자는 사용자가 인증된 상태를 악용하여 사용자가 원하지 않는 행동을 수행하게 만든다. 예를 들어, 사용자가 로그인된 상태에서 악의적인 웹사이트를 방문하면, 그 웹사이트가 사용자의 권한을 이용해 은행 계좌에서 돈을 송금하도록 할 수 있다.CSRF 공격 시나리오사용자가 로그인: 사용자가 웹 애플리케이션에 로그인한다.세션 유지: 로그인 후 세션 쿠키가 브라우저에 저장된다.악성 웹사이트 방문: 사용자가 다른 웹사이트를 방문한다. 이 웹사이트는 CSRF 공격 코드를 포함하고 있다.악의적인 요청 전송: 악성 웹사이트는 사용자의 세션 쿠키를 이용해 ..

🤷🏻♂️ 하.. 왜 이러지..???애플리케이션을 개발한 분들이라면 한번쯤 경험이 있을것 같다. 애플리케이션을 개발한 후 방화벽에서 GET,POST,PATCH,PUT,DELETE 메서드를 허용했고, SPA로 개발된 프론트페이지에 접속하여 요청을 했는데 403,405에러가 났다. 이유가 무엇일까?? CORS때문에 에러가 났을것이다..그럼 CORS가 뭐길래 이런 에러를 발생시킬까?? 한번 알아보자CORS란?CORS(Cross-Origin Resource Sharing)는 한 출처(도메인, 프로토콜, 포트)에서 실행 중인 웹 애플리케이션이 다른 출처의 리소스에 접근할 수 있도록 브라우저에서 제공하는 보안 기능이다. 웹 애플리케이션은 기본적으로 동일 출처 정책(Same-Origin Policy)에 따라 동작..

클래스 생성클래스 : 설계도속성: 클래스 내부 변수 = 클래스 내부 변수의 값메소드 : 클래스 내부 함수 / self가 의미하는 바 grandmother 첫번째인자값에 self를 반드시 class GrandMother: # 클래스 : 설계도family = "grandparents" # 속성: 클래스 내부 변수 = 클래스 내부 변수의 값def print_self(self): # 메소드 : 클래스 내부 함수 / self가 의미하는 바 grandmother 첫번째 인자값에 self를 반드시 넣어줘야한다. print(self) # 거의 공식이다.LEE = GrandMother() # 인스턴스화(객체 생성)GrandMother.family # 속성 호출 'grandparents'```python# 나의 예..

함수함수(Function) 정의함수는 입력값에 따라 출력값을 만들어 내는 '블랙박스'와 같다.함수란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합으로 정의할 수 있다.입력 변수(함수에 입력하는 변수) :다른 이름으로 파라미터라고도 함출력 변수(함수 결과):다른 이름으로 리턴 값이라고도 함함수를 사용하는 이유함수를 사용하는 가장 큰이유는 반복적인 프로그래밍을 피할 수 있기 때문이다.함수 구조def 함수명(입력변수) :수행할 프로그램1수행할 프로그램2return 출력변수# 함수 기본 모습def a_def(input_data): out_data = input_data * 4 return out_data변수의 사용범위(Scope)전역변수(global) : 함수 밖에서 만들..

try/excepttry :로직, 기능except :try문에서 오류가 발생할때, 실행try: a_err = int('안녕') print(a_err)except ValueError as e: print(f'오류 메세지: {e}')오류 메세지: invalid literal for int() with base 10: '안녕'try/except/else/finallytry :try :로직, 기능except :try문에서 오류가 발생할때, 실행else :try문이 성공할 때 발생finally :try문의 결과와 상관없이 실행assert조건이 False일 때, 발생하는 에러디버깅 모드에서만 작동하지만, 파이썬은 기본 디버깅 모드임a_int = 8# 참이므로 assert는 실행 Xassert a_int %..

반복문forlist, tuple, str과 같이 인덱싱을 할 수 있는 자료형을 이용해서 반복문을 실행a_lst = [1,2,3,4,5]for i in a_lst : print(i)12345a_lst = [1,2,3,4,5][i for i in a_lst ][1, 2, 3, 4, 5]for - continue,break,passpass :실행할 코드가 없는 것으로 다음 행동을 계속해서 진행합니다.break :반복문(loop)을 멈추고 loop밖을 나가도록 합니다.continue :바로 다음 순번의 loop를 수행합니다.a_lst[1, 2, 3, 4, 5]passfor i in a_lst : if i % 2 == 0 : print(f'i : {i}\n{i}는 짝수입니다.') ..