전체 글 156

[개인정보유출] 끊이지 않는 개인정보 유출 사고

출처 [What’s in Security] 끊이지 않는 개인정보 유출 사고 - 데이터넷[데이터넷] 5월 한달간 보안사고는 끊이지 않았다. 매일이 사고의 연속으로, ‘역대급’, ‘최대규모’라는 수식어가 붙는 사고가 연이어 일어났다. 5월 한달간 일어난 보안사고를 정리한다.망www.datanet.co.kr 분야IT, 보안 본문 요약망분리된 공공기관서 잇달아 개인정보 유출 사고 발생탈취한 크리덴셜 이용 시 공격 시간·비용 80% 줄어1. 망분리도 무용지물 ··· 공공기관 개인정보 비상법원이 2021년부터 2023년까지 2년간 해킹으로 1TB 이상 개인정보 유출 된것을 확인했다.망분리의 맹점을 이용한 해킹 방법으로 1초에 17KB씩 2년동안 정보가 유출되며, 소량의 정보가 장기간 유출되는것은 막지 못했다.5월 ..

[Server] 웹 서버: 아파치(Apache) HTTP 서버

아파치(Apache) HTTP 서버는 전 세계에서 가장 널리 사용되는 웹 서버 소프트웨어 중 하나이다.아파치 소프트웨어 재단(Apache Software Foundation)에 의해 개발되었으며, 오픈 소스 라이선스 하에 배포된다. 그 덕분에 무료로 사용할 수 있으며, 소스 코드를 수정하여 자신의 필요에 맞게 커스터마이징할 수 있다.아파치의 주요 특징다중 플랫폼 지원: 아파치는 Linux, Windows, MacOS 등 다양한 운영 체제에서 실행될 수 있다.모듈식 구조: 아파치의 가장 큰 특징 중 하나는 모듈식 구조입니다. 사용자는 필요에 따라 모듈을 추가하거나 제거하여 웹 서버의 기능을 확장하거나 조정할 수 있다.확장성과 유연성: 다양한 모듈과 지원을 통해 아파치는 매우 유연하고 확장 가능합니다. 이는..

[Linux] 배치 파일(Batch File)

배치 파일(Batch File)은 Windows 운영 체제에서 사용할 수 있는 스크립트 파일의 일종이다.이 파일은 여러 명령어들을 순차적으로 기록하여 두었다가 한 번에 실행할 수 있게 해주는 텍스트 파일이다다.확장자는 .bat이며, 간단한 자동화 작업부터 복잡한 스크립트까지 다양한 용도로 활용됩니다.배치 파일의 기본 구성배치 파일은 일반적으로 일련의 명령어들과 제어문으로 구성된다. 이 명령어들은 Windows의 Command Prompt에서 실행할 수 있는 명령어와 동일하다다. 예를 들어, 파일을 복사하거나 디렉터리를 변경하는 등의 작업을 자동화할 수 있다.배치 파일 작성하기배치 파일을 작성하기 위해서는 단순히 텍스트 에디터(예: 메모장)를 사용하여 명령어들을 순서대로 입력하고, 파일을 .bat 확장자로..

[MySQL] 쿼리와 코드의 용어 차이

"쿼리(query)"와 "코드(code)"는 프로그래밍 및 컴퓨터 과학 분야에서 자주 사용되는 용어이지만, 각각의 의미와 사용 상황에서 차이가 있습니다.쿼리 (Query)정의: 쿼리는 데이터베이스에 정보를 요청하는 명령어나 집합을 의미합니다. 일반적으로 데이터를 검색, 추가, 수정, 삭제하기 위해 사용됩니다.사용법: 쿼리는 특정 데이터베이스 관리 시스템(DBMS)에 대해 작성되며, SQL(Structured Query Language)과 같은 쿼리 언어를 사용하여 데이터베이스에 접근하고 조작합니다.예시: SELECT * FROM users WHERE age > 18;은 18세 이상의 모든 사용자를 검색하는 SQL 쿼리입니다.코드 (Code)정의: 코드는 컴퓨터 프로그램을 구성하는 명령어의 집합을 의미합니..

공부/MySQL 2024.05.19

[MySQL] where과 having은 언제 사용해야 적절할까?

SQL에서 WHERE와 HAVING 절은 데이터를 필터링하는 데 사용되지만, 사용되는 시점과 조건에 따라 다릅니다.WHERE 절WHERE 절은 기본적으로 SELECT 문에서 데이터를 가져오기 전에 조건을 적용하여 필터링합니다.그룹화하기 전의 개별 레코드에 대해 조건을 적용합니다.집계 함수(AVG, COUNT, SUM 등)를 사용할 수 없습니다.예를 들어, 특정 날짜 이전에 생성된 모든 주문을 검색하려면 WHERE 절을 사용합니다.SELECT OrderID, OrderDateFROM OrdersWHERE OrderDate HAVING 절HAVING 절은 주로 GROUP BY 절과 함께 사용되어 그룹화된 결과에 대한 조건을 적용합니다.HAVING은 GROUP BY로 생성된 그룹에 대해 집계 함수를 사용하여 ..

공부/MySQL 2024.05.19

[Python] 컴프리헨션(comprehension)

파이썬의 컴프리헨션(comprehension)은 주로 리스트, 세트, 딕셔너리와 같은 컬렉션 데이터 타입을 생성하기 위해 간결하게 작성할 수 있는 구문입니다. 이를 사용하면 반복문과 조건문을 사용해 여러 줄로 작성되는 코드를 한 줄로 간단하게 표현할 수 있어 코드의 가독성을 높일 수 있습니다.1. 리스트 컴프리헨션 (List Comprehension)리스트 컴프리헨션은 대괄호 [ ] 안에 표현식과 for문을 사용하여 리스트를 생성합니다. 필요에 따라 if문을 추가하여 특정 조건을 만족하는 요소만 리스트에 포함시킬 수 있습니다.기본 형태:[표현식 for 항목 in 반복가능객체 if 조건]예시:numbers = [1, 2, 3, 4, 5]squares = [x**2 for x in numbers]# [1, ..

공부/Python 2024.05.10

[Python] all() 함수

Python의 all() 함수는 반복 가능한(iterable) 모든 요소가 참(True)이면 True를 반환하고, 하나라도 거짓(False)이면 False를 반환합니다. 여기서 "반복 가능한"이란 리스트, 튜플, 딕셔너리, 세트, 문자열 등 Python에서 for 루프를 통해 순회할 수 있는 모든 데이터 타입을 의미합니다. all() 함수는 주로 모든 조건이 충족되는지를 검사할 때 사용됩니다.all() 함수의 기본 구조all(iterable)iterable: 반복 가능한 객체로, 모든 요소가 평가됩니다.all() 함수의 작동 방식iterable의 모든 요소를 순회합니다.모든 요소가 True로 평가되면(또는 iterable이 비어있으면) True를 반환합니다.하나라도 False로 평가되는 요소가 있으면 즉..

공부/Python 2024.05.10

[MySQL] WITH

MySQL에서 WITH 구문은 Common Table Expressions(CTEs)를 정의하는데 사용됩니다. CTE란 복잡한 쿼리를 단순화하기 위해 사용되는 일시적인 결과 집합으로, 쿼리 내에서 한 번 정의되면 쿼리의 다른 부분에서 재사용될 수 있습니다. WITH 구문을 사용하면 코드의 가독성과 유지 보수성이 향상되며, 복잡한 조인과 서브쿼리를 더 명확하게 표현할 수 있습니다. 기본 구조 WITH CTE이름 AS ( SELECT 쿼리 ) SELECT * FROM CTE이름; 예제 예를 들어, 직원 테이블에서 각 부서별로 최고 급여를 받는 직원의 정보를 찾는 쿼리를 작성한다고 가정해 봅시다. 이때 WITH 구문을 사용하여 CTE를 정의할 수 있습니다. WITH HighestSalaries AS ( SEL..

공부/MySQL 2024.04.23

[Python] swap

Python에서 변수의 값을 교환하는 것, 즉 'swap'에 대해 알아보았습니다. Python에서는 다른 프로그래밍 언어와는 다르게 매우 간단하고 직관적인 방법으로 두 변수의 값을 교환할 수 있습니다. 이는 Python의 튜플 할당 기능을 이용합니다. 기본적인 Swap 방법 두 변수 a와 b가 있다고 가정해 보겠습니다. a에는 값 10이, b에는 값 20이 저장되어 있다고 합시다. 이 두 변수의 값을 교환하고 싶을 때, Python에서는 다음과 같이 간단하게 할 수 있습니다. a = 10 b = 20 # a와 b의 값을 교환 a, b = b, a print("a:", a) # a: 20 print("b:", b) # b: 10 여기서 a, b = b, a는 사실상 튜플을 사용한 것입니다. Python은 ..

공부/Python 2024.04.17

[Python] for-else while-else

Python의 while-else와 for-else 구문에 대해 알아보겠습니다. 이 구문들은 다른 프로그래밍 언어에서 흔히 볼 수 없는, Python 특유의 기능입니다. 각각의 구문이 어떻게 작동하고, 어떤 상황에서 유용하게 사용될 수 있는지 설명하겠습니다. while-else 구문 Python에서 `while` 루프는 조건이 True인 동안 반복적으로 코드 블럭을 실행합니다. 그리고 `else`는 `while` 루프가 더 이상 실행할 조건이 없을 때, 즉 조건이 False가 되어 루프가 정상적으로 종료될 때 실행됩니다. 만약 루프 내에서 `break`를 사용해 루프를 강제로 종료한다면, `else` 블럭은 실행되지 않습니다. count = 0 while count < 3: print(f"Count: {..

공부/Python 2024.04.16