인터넷 네트워크의 구조
Computer Science/네트워크2025. 2. 19. 09:45인터넷 네트워크의 구조

1. 인터넷을 사용하려면 어떤 과정이 필요할까?우리는 KT, SK Broadband, LG U+와 같은 인터넷 서비스 제공업체(ISP)를 통해 인터넷을 사용한다.하지만 단순히 ISP가 있다고 해서 인터넷을 바로 사용할 수 있는 것은 아니다. ISP가 제공하는 인터넷을 가정이나 사무실에서 사용하려면 모뎀(Modem)이라는 장치가 필요하다.모뎀은 ISP에서 보내는 신호를 우리가 사용하는 기기들이 이해할 수 있도록 변환하는 역할을 한다. 이후 공유기가 여러 기기에서 인터넷을 사용할 수 있도록 연결하고, 내부 네트워크(LAN)를 구성하여 기기 간 데이터 교환이 이루어진다.이번 글에서는 인터넷 네트워크가 어떻게 구성되는지, 그리고 각 장치들이 어떤 역할을 하는지 전체적인 흐름을 알아보겠다.2. 모뎀(Modem)모..

window 함수 활용법(feat. group by와 다른점)
Computer Science/데이터베이스2024. 12. 17. 18:26window 함수 활용법(feat. group by와 다른점)

프로그래머스 - 연도별 대장균 크기의 편차 구하기 문제를 풀다가 window 함수의 유용함을 알게 되어서 정리해보려고 한다.내가 푼 원래 풀이SELECT ym.YEAR, (ym.max - ed.SIZE_OF_COLONY) AS YEAR_DEV, ed.IDFROM ECOLI_DATA ed JOIN ( SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS max FROM ECOLI_DATA GROUP BY YEAR(DIFFERENTIATION_DATE) ) ym ON YEAR..

MySQL ONLY_FULL_GROUP_BY 이해하기
Computer Science/데이터베이스2024. 12. 11. 14:39MySQL ONLY_FULL_GROUP_BY 이해하기

MySQL에서 GROUP BY를 사용할 때 다음과 같은 오류가 발생할 때가 있다.Error Code:1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'practice.employees.hire_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by쉽게 말해서 SELECT절에서 사용하는 칼럼이 GROUP BY에 포함되지 않거나, 함수적 종속성을 만족하지 않아 only_full_group_by모드와 호환되지 않는다는 의..

COUNT 함수와 SUM 함수의 차이점
Computer Science/데이터베이스2024. 12. 1. 22:33COUNT 함수와 SUM 함수의 차이점

COUNT 함수와 SUM 함수 모두 데이터를 집계할 때 사용한다.그런데 사용하다보면 사용 방법이 헤갈릴 때가 있어서 정리해두려고 한다.COUNT와 SUM의 사용 목적COUNT 함수 : 특정 조건을 만족하는 데이터 행의 개수를 구하는 데 사용한다.SUM 함수 : 특정 칼럼의 값들을 모두 더할 때 사용합니다.실제 사용 예시예제 테이블 생성먼저 학생 정보를 저장할 테이블을 만들자.CREATE TABLE students( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), score INT); 모든 데이터를 조회하는 쿼리SELECT * FROM students;결과COUNT 함수 사용*(아스트릭)으로 COUNTSELECT COUNT(*) FROM stu..

MySQL에서 날짜 차이 계산하는 방법
Computer Science/데이터베이스2024. 11. 30. 22:12MySQL에서 날짜 차이 계산하는 방법

1. 처음 시도: 뺄셈 연산으로 날짜 차이 계산두 날짜 간의 차이를 계산하려고 아래와 같이 SQL문을 실행하였다.SELECT DATE("2024-11-07") - DATE("2024-11-03");결과는 4로 나왔고, 기대값과 일치했다.하지만 뺄셈 연산은 올바른 결과를 보장하지 않는다.2. 뺄셈 연산으로 기간을 구하는 문제점다음 SQL문을 실행했을 때는 문제가 발생했다.SELECT DATE("2024-11-07") - DATE("2023-11-07");기대값은 366일 (윤년 포함)이지만, 결과는 10000이 나왔다.이유는 MySQL이 DATE 타입의 값을 YYYYMMDD 형식의 숫자로 변환한 뒤 계산하기 때문이다.즉, 20241107-20231107이로 변환되어 10000이 나오는 것이다.3. 날짜 차..

SQL IN절에서 NULL이 예상대로 동작하지 않는 이유
Computer Science/데이터베이스2024. 11. 29. 20:55SQL IN절에서 NULL이 예상대로 동작하지 않는 이유

SQL쿼리를 사용할 때 IN절에 NULL 값이 들어가면 안된다.IN절은 WHERE 절의 조건에 맞는 각 행의 칼럼 값이 IN절 안의 값 중 하나와 일치할 때 행을 반환하는 연산자이다.IN절에 NULL이 포함되었을 때다음과 같은 students 테이블을 생성해 데이터를 확인해 보자CREATE TABLE students( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), score INT); 모든 데이터를 조회하는 쿼리SELECT * FROM students;결과  이제 score가 100 또는 NULL인 데이터를 조회하기 위해 다음과 같은 쿼리를 작성했다.SELECT * FROM students WHERE score IN (100, null); ..

MySQL에서 SELECT 별칭은 GROUP BY, ORDER BY, HAVING 절에서 사용 가능하다
Computer Science/데이터베이스2024. 11. 28. 14:56MySQL에서 SELECT 별칭은 GROUP BY, ORDER BY, HAVING 절에서 사용 가능하다

상황프로그래머스에서 카테고리 별 상품 개수 구하기 문제를 풀다가 의문이 들었다.다음과 같이 쿼리를 작성했는데 통과가 되었다.SELECT LEFT(PRODUCT_CODE, 2) CATEGORY, COUNT(*)FROM PRODUCT GROUP BY CATEGORY ORDER BY 1 ASC; GROUP BY 절에서 CATEGORY라는 별칭을 사용했음에도 문제가 없었다. 왜 그럴까?SQL 실행 순서내가 알는 SQL 실행순서는 아래와 같았다.FROM : 가장 먼저 테이블을 선택하고 JOIN이 있다면 함께 진행WHERE : FROM에서 가져온 데이터 필터링GROUP BY : 데이터를 그룹화하여 집계 가능하게 만듦DISTINCT : DISTINCT가 걸린 칼럼의 중복 행들을 제거SELECT : 조회할 행들이 결정..

XML(eXtensible Markup Language)이란
Computer Science/공통2024. 11. 27. 23:37XML(eXtensible Markup Language)이란

XML(eXtensible Markup Language)은 데이터를 저장하고 전송하기 위한 마크업 언어이다.마크업은 이름에서처럼 어떠한 표시를 통해서 텍스트를 구분하다는 것을 의미한다.XML은 마크업으로 태그를 사용한다.구조 XML Guide John Doe 2024 Learning Java Jane Smith 2023 구조는 위와 같이 하나의 루트 태그를 가지고 하위 태그들을 계층적으로 표현한다.생김새는 HTML과 많이 닮아있다.HTML과 XML 비교HTML의 목적은 데이터를 표현하는 데 있고, XML은 데이터를 저장하거나 전송하는 데 있다.HTML은 미리 정해진 태그를 사용해야해서 마크업의 확장성이 ..

MySQL은 문자열 대소문자 구분을 하지 않는다.
Computer Science/데이터베이스2024. 11. 25. 17:19MySQL은 문자열 대소문자 구분을 하지 않는다.

비이진 문자열(CHAR, VARCHAR, TEXT)의 경우 문자열 비교를 할 때 대소문자 비교를 하지 않는다.문자 집합과 정렬은 각각 기본값으로 utf8mb4와 utf8mb4_0900_ai_ci를 기반으로 하기 때문이다.utf8mb4mysql에서 아래 쿼리문을 실행하면 어떤 인코딩 방식으로 실행하는 지 확인할 수 있다.SHOW VARIABLES LIKE 'character_set_server'; 실행 결과 원래 기본적으로 utf-8은 1~4바이트까지 전세계 모든 문자를 표현할 수 있다.하지만 MySQL에서는 utf-8을 사용해도 3바이트까지만 표현이 가능하다.이모지는 4바이트로 저장되어 있기 때문에 MySQL에서 utf-8을 사용할 경우 이모지를 저장할 수 없다.그래서 이모지를 표현하기 위해서는 인코딩 ..

JSON(JavaScript Object Notation)
Computer Science/공통2024. 11. 23. 00:28JSON(JavaScript Object Notation)

JSON(JavaScript Object Notation)은 자바스크립트 객체 형식으로 데이터를 교환하는 문자열이다.java, javascript, python 등의 언어에서 데이터를 교환할 때 쓰인다.형식이름에서와 같이 자바스크립트의 객체 문법을 가져와서 적용했다.하지만 객체 형식만 가능한 것은 아니고, 배열도 가능하고 문자열도 가능하다.객체 형식{ "name" : "gildong", "hobby" : { "운동" : ["헬스", "런닝"], "음악" : ["기타", "노래"] }}위와 같이 키:값 형식의 객체로 표현할 수 있다.일반적으로 위와 같은 형태로 데이터를 전송한다.배열 형식["apple", "banana", "cherry"]위와 같이 배열 형태로도 표..

image