인기글

무한 루프(Infinite Loop)의 위험성

🌀 무한 반복문, 진짜 괜찮은 걸까?"while(true) 뭐 어때요, 그냥 계속 돌리면 되는 거 아닌가요?"단순히 계속 반복한다는 건 쉽지만,컴퓨터 입장에서는 어마어마한 자원 소모가 될 수 있어요!지금부터 무한 루프의 위험성과 똑똑한 사용법을 함께 정리해볼게요 😊⚠️ 무한 루프가 시스템에 미치는 영향항목설명CPU 폭주조건 없이 계속 반복되면 CPU가 100%를 향해 달립니다. 다른 작업은 버벅이고, 팬이 미친 듯이 돌아가요.메모리 누수반복문 안에서 객체를 계속 만들거나 리스트에 값을 추가하면, GC가 처리할 틈도 없이 메모리가 가득 찹니다. 결국 OutOfMemoryError가 터질 수도!앱/시스템 멈춤UI가 무한 루프에 묶이면? 사용자는 아무것도 못합니다. 입력도 클릭도 안 먹혀요. (응답 없음!..

파일 복구의 진실

🧲 자성 잔류와 파일 복구의 진실*"삭제해도 데이터가 남아있다고?*💡 파일을 삭제해도 복구가 된다고?우리가 파일을 "삭제"할 때, 운영체제는 실제 데이터를 지우지 않습니다.🤔 정확히는 이런 일이 일어납니다파일 시스템의 "이 공간은 비어있음" 표시만 바꿀 뿐, 실제 데이터는 그대로 남아있습니다.새로운 데이터가 덮어쓰기 전까지는 복구 소프트웨어로 살릴 수 있는 이유가 바로 이 때문이에요.HDD의 경우 여기서 한 단계 더 나아갑니다.데이터를 덮어쓴 이후에도 자기적인 흔적이 희미하게 남을 수 있는데, 이것이 자성 잔류(Magnetic Remanence) 입니다.🧠 자성 잔류란?HDD는 데이터를 자기장(자성) 으로 저장합니다.플래터 위의 자성 방향으로 0과 1을 표현하는 방식이에요.파일을 삭제하거나 덮어써..

보수(1의보수, 2의보수) - 컴활 필기용

🧮 보수란?컴퓨터에서의 보수는 ‘음수’를 표현하기 위해 만들어낸 방법들 입니다. 보수란 개념이 어려우신 분들은 아래 링크로 이동해 자세히 알아보세요🔗 보수 설명 보기단순히 컴활을 위한 암기법으로는 아래 내용만으로 충분해요!💻 컴퓨터에서 음수를 표현하는 방법 3가지컴퓨터는 0과 1만 이해할 수 있기 때문에, 음수를 표현하기 위한 여러 방식이 시도되었어요.그 중 대표적인 3가지 방식은 아래와 같습니다!표현 방식+5 표현-5 표현특징부호-크기 방식0000010110000101맨 앞 비트가 부호 (0: 양수, 1: 음수)1의 보수0000010111111010비트를 반전하여 음수 표현2의 보수0000010111111011✅ 현재 컴퓨터에서 사용하는 표준 방식🔹 부호-크기 방식 (Sign-Magnitud..

컴활 1급 2025.07.11 0

최신글

more

부동소수점 오차 해결하기

🔢 부동소수점 오차 — 0.1 + 0.2가 0.3이 아니라고?코드를 짜다가 0.1 + 0.2 == 0.3이 false가 나와서 당황한 적 있으신가요? 😅언어 버그가 아닙니다. 컴퓨터가 소수를 저장하는 방식 때문에 생기는 문제예요.🧠 부동소수점 오차란?컴퓨터는 숫자를 이진수(0과 1)로 저장합니다.그런데 0.1 같은 소수를 이진수로 변환하면 0.0001100110011... 처럼 끝없이 반복되는 무한소수가 됩니다.10진수에서 1/3 = 0.333...이 무한히 반복되는 것처럼요.컴퓨터는 무한히 저장할 수 없으니 일정 자리에서 잘라서 저장합니다.이때 잘린 만큼 아주 작은 오차가 생기고, 그게 바로 0.1 + 0.2 = 0.30000000000000004가 되는 이유예요 😅자세한 원리는 🔗 부동소수점..

부동소수점과 IEEE 754

🔢 부동소수점과 IEEE 754 — 0.1은 왜 정확히 저장되지 않을까?0.1 + 0.2가 0.3이 아니라는 걸 알았는데, 왜 그런 건지 궁금하지 않으셨나요? 😊이 글에서는 컴퓨터가 소수를 저장하는 방식을 직접 파헤쳐봅니다.🧠 부동소수점이란?부동(浮動)은 "떠서 움직인다" 는 뜻입니다.소수점이 고정되어 있지 않고 자유롭게 이동할 수 있다는 의미예요.예를 들어 0.00123을 이렇게 표현할 수 있죠.0.00123 = 1.23 × 10⁻³소수점이 지수에 따라 이동하는 방식입니다.📐 IEEE 754란?1985년 전기전자공학자협회(IEEE)가 제정한 부동소수점 연산 표준입니다.컴퓨터가 소수점이 있는 숫자를 어떻게 저장하고 계산할지 규칙을 정해둔 것으로,C, Python, Java를 포함한 대부분의 언어와..

컴퓨터 구조 2026.06.08 0

SQL 기초 - INSERT INTO SELECT

📥 INSERT INTO SELECTINSERT INTO SELECT는 다른 테이블의 조회 결과를 기존 테이블에 삽입하는 구문입니다.SELECT INTO와 달리 대상 테이블이 존재해야 해요!📋 예시 테이블 — studentsidnamegradescoreteacher_id1김철수18512이영희2NULL13박민준19024최지원372NULL5정수현2NULL26한지민17817윤서준39528강다은28819임현우3NULL210오지아165NULLCREATE DATABASE IF NOT EXISTS practice;USE practice;DROP TABLE IF EXISTS students;DROP TABLE IF EXISTS students_backup;CREATE TABLE students ( id ..

SQL 기초 2026.04.17 0

SQL 기초 - SELECT INTO (테이블 복사)

📋 SELECT INTO - 테이블 복사하기테이블 데이터를 백업하거나 특정 조건으로 새 테이블을 만들고 싶을 때가 있습니다.SELECT INTO를 쓰면 조회 결과를 바로 새 테이블로 복사할 수 있습니다 😊📋 예시 테이블 — studentsidnamegradescoreteacher_id1김철수18512이영희2NULL13박민준19024최지원372NULL5정수현2NULL26한지민17817윤서준39528강다은28819임현우3NULL210오지아165NULLCREATE DATABASE IF NOT EXISTS practice;USE practice;DROP TABLE IF EXISTS students;CREATE TABLE students ( id INT, name VARC..

SQL 기초 2026.04.16 0

SQL 기초 - IN, EXISTS, ANY, ALL

🔎 서브쿼리와 함께 쓰는 연산자 — IN, EXISTS, ANY, ALLOR로 조건을 하나씩 나열하다 보면 쿼리가 끝없이 길어질 때가 있습니다.예를 들어 특정 학생들만 조회하려면... 👇👇SELECT name FROM studentsWHERE name = '김철수' OR name = '박민준' OR name = '윤서준' OR name = '강다은';반복되는 name = 과 OR... 뭔가 좀 간단하게 쓸 수 있는 방법 없나... 생각해 보신적 없나요? 😂바로 이럴 때 IN 같은 연산자를 쓰면 됩니다. 서브쿼리와 함께 자주 쓰이는 IN, EXISTS, ANY, ALL을 한번에 정리해봤습니다!📋 예시 테이블students 테이블idnamegradescoreteacher_id1김철수18512이영희..

SQL 기초 2026.03.31 0

SQL 기초 - 서브쿼리(Subquery)

🔍 서브쿼리 (Subquery)WHERE score > AVG(score) — 딱 될 것 같은데 실제로 실행하면 오류가 납니다 😱WHERE 절에서는 집계 함수를 직접 쓸 수 없거든요... 이럴 때 서브쿼리로 먼저 평균을 구하고, 그 결과를 조건으로 넘겨주면 됩니다!📋 예시 테이블 — studentsidnamegradescoreteacher_id1김철수18512이영희2NULL13박민준19024최지원372NULL5정수현2NULL26한지민17817윤서준39528강다은28819임현우3NULL210오지아165NULLCREATE DATABASE IF NOT EXISTS practice;USE practice;DROP TABLE IF EXISTS students;CREATE TABLE students ( ..

SQL 기초 2026.03.31 0

SQL 기초 - JOIN

🔗 SQL JOIN — 테이블을 연결하는 방법JOIN을 처음 봤을 때 왜 이렇게 종류가 많나 싶었습니다.막상 쓰다 보면 결국 INNER랑 LEFT 두 개만 주로 쓰게 되더라고요 😅📋 예시 테이블students 테이블idnamegradescoreteacher_id1김철수18512이영희2NULL13박민준19024최지원372NULL5정수현2NULL26한지민17817윤서준39528강다은28819임현우3NULL210오지아165NULLteachers 테이블idnamesubject1김선생수학2이선생영어3박선생과학CREATE DATABASE IF NOT EXISTS practice;USE practice;DROP TABLE IF EXISTS students;DROP TABLE IF EXISTS teachers;C..

SQL 기초 2026.03.27 0

SQL 기초 - CASE

🔀 조건에 따라 값을 바꾸는 방법?CASE를 쓰면 SQL 안에서 if-else처럼 처리할 수 있습니다 😊CASE는 조건을 평가해 해당하는 값을 반환하는 표현식입니다.SELECT, ORDER BY, GROUP BY 등 다양한 곳에서 사용할 수 있어요!📋 예시 테이블 — studentsidnamegradescoreteacher_id1김철수18512이영희2NULL13박민준19024최지원372NULL5정수현2NULL26한지민17817윤서준39528강다은28819임현우3NULL210오지아165NULLCREATE DATABASE IF NOT EXISTS practice;USE practice;DROP TABLE IF EXISTS students;CREATE TABLE students ( id ..

SQL 기초 2026.03.23 0

Mac에서 MySQL 설치하기 (feat. Homebrew)

🐬 Mac에서 MySQL 설치하는 법 (feat. Homebrew)저는 MySQL 설치할 때 공식 사이트 DMG 파일보다 Homebrew로 하는 게 더 관리하기 편하더라구요.그래서 Homebrew로 설치하는 방법을 정리해봤습니다! 😀🍺 Homebrew 설치 확인Homebrew는 macOS에서 패키지를 쉽게 설치하고 관리할 수 있는 패키지 매니저입니다.MySQL 설치 전에 먼저 Homebrew가 설치되어 있는지 확인하세요.버전 확인(설치 확인)brew --version아래처럼 버전이 출력되면 이미 설치된 것입니다출력 예시Homebrew x.x.x설치가 안 되어 있다면 아래 명령어로 먼저 설치하세요!Homebrew 설치/bin/bash -c "$(curl -fsSL https://raw.githubus..

MySQL 2026.03.21 0