분류 전체보기 71

[MySQL] DATETIME vs TIMESTAMP (MySQL 8.4 기준, 근거 포함)

데이터베이스 설계 중, 로그 남기는 부분에 DATETIME과 TIMESTAMP 둘 중에 뭘 선택할지 고민하다가 검색 & 조사하여 정리한 글이다. 1. 저장 가능 범위DATETIME→ '1000-01-01 00:00:00.000000' ~ '9999-12-31 23:59:59.999999'TIMESTAMP→ '1970-01-01 00:00:01.000000' UTC ~ '2038-01-19 03:14:07.999999' UTC`📖 8.4.11 Date and Time Data Types, “The DATETIME type”, “The TIMESTAMP type” (MySQL 8.4 Docs)2. 저장 크기 (Storage Requirements)DATETIME: 5 bytes + fractional se..

SQL 2025.09.26

JavaScript IIFE(즉시 실행 함수) vs OOP(객체지향프로그래밍)

📌 IIFE의 본질함수 정의와 동시에 즉시 실행되는 함수(function() { console.log("바로 실행됨!");})();주 목적: 스코프를 한정해서 전역 오염(global pollution)을 막는 것.ES6 이전에는 let, const, class 같은 블록 스코프 문법이 없었기 때문에, IIFE로 캡슐화 비슷한 효과를 만들었음.📌 OOP와의 관계OOP의 핵심: 캡슐화, 상속, 다형성IIFE는 그중에서 캡슐화(encapsulation)와 비슷한 역할을 합니다.외부에서 접근하지 못하는 private 변수/메서드를 흉내낼 수 있었음.const Counter = (function() { let count = 0; // private 변수 return { increment() { co..

javascript 2025.09.22

플라톤의 이데아 vs OOP(객체지향프로그래밍) or FP(함수형프로그래밍)

Object-Oriented Programming 객체지향이 뭐야?1. 이데아(본질적 개념) = 클래스(Class)플라톤의 이데아는 완벽하고 변하지 않는 본질이에요.예를 들어, "의자"라는 이데아는 구체적인 모양, 재질과 상관없이 ‘앉을 수 있는 것’이라는 본질을 담고 있죠.→ OOP에서 클래스(Class)가 바로 이 역할을 합니다.class Chair {} 같은 정의는 "의자"라는 추상적 개념(본질)을 코드로 표현한 거예요.2. 현실 세계의 의자 = 객체(Object)우리가 실제로 쓰는 나무 의자, 플라스틱 의자, 회전 의자들은 모두 "의자 이데아"의 불완전한 모사예요.이건 이데아의 구체적인 "현현(現現)"이라고 할 수 있죠.→ OOP에서는 객체(Object)가 이 역할을 합니다.new Chair("w..

javascript 2025.09.18

스프링 AOP

1. AOP란 무엇인가?AOP (Aspect Oriented Programming) 는 공통 관심사를 분리하여 핵심 로직에 침투하지 않도록 도와주는 프로그래밍 기법입니다.쉽게 말해, 비즈니스 로직과 상관없는 중복 코드(예: 로깅, 보안, 트랜잭션)를 따로 관리하는 방식입니다.2. 왜 AOP가 필요한가?예를 들어 모든 서비스 메서드에서 실행 시간을 측정하는 로직이 필요하다고 해봅시다.public void doSomething() { long start = System.currentTimeMillis(); // 핵심 로직 long end = System.currentTimeMillis(); System.out.println("수행 시간: " + (end - start));}이 코드를 매..

spring 2025.08.06

3 way handshake, TCP, UDP

📦 TCP란?TCP (Transmission Control Protocol): 신뢰성 있는 통신을 보장하는 연결 지향형 프로토콜✅ TCP의 핵심 특징🔗 연결 지향 (Connection-oriented)데이터를 보내기 전 3-way handshake로 연결을 맺음🧾 순서 보장패킷이 순서대로 도착하도록 정렬함🔁 재전송패킷이 유실되면 자동으로 재전송📩 수신 확인 (ACK)받은 쪽이 "잘 받았어요!"(ACK) 라고 알려줌🧯 흐름/혼잡 제어네트워크 상태에 따라 속도 조절🛑 연결 종료 시 4-way handshake안전하게 연결 종료하며 TIME_WAIT 상태 유지 📌 어떤 상황에 쓰일까?웹 브라우징 (HTTP/HTTPS)모든 데이터가 정확히 도착해야 하니까파일 전송 (FTP)데이터 하나라도 빠지면..

java 2025.08.06

JDBC, PreparedStatement, SQL Injection, 커넥션풀

✅ JDBC란?JDBC(Java Database Connectivity)는 자바 애플리케이션이 DB와 통신할 수 있도록 해주는 자바 표준 API입니다.쉽게 말하면, Java ↔ Database 간의 다리 역할을 해주는 도구입니다.JDBC는 자바에서 SQL을 실행하고, 결과를 받아오고, DB와 연결을 맺고 끊는 등의 작업을 처리합니다. JDBC API를 사용하는 애플리케이션의 개락적인 구조는 다음과 같습니다.Application ↓ JDBC API ↓ JDBC Driver (DBMS별) : 자바 프로그램의 요청을 DBMS가 이해할 수 있는 프로토콜로 변환해 주는 클라이언트 사이드 어댑터 ↓ Database ✅ JDBC 실행과정✍️ JDBC 기본 코드 ✅ try-with-resources 문법..

java 2025.08.05

OSI 7계층의 네트워킹 장비 및 주요 프로토콜

다음은 OSI 7계층과 각 계층에 대응되는 네트워킹 장비 및 주요 프로토콜에 대한 간략한 설명입니다. OSI 모델은 네트워크 통신을 계층별로 분리하여 설명하며, 각 계층은 특정 기능을 수행하고 그에 맞는 장비와 프로토콜이 사용됩니다.1. 물리 계층 (Physical Layer)역할: 비트(0과 1)로 데이터를 전송하며, 전기적 신호, 광 신호, 무선 신호 등을 통한 물리적 매체로 데이터가 전달됩니다.네트워킹 장비:허브 (Hub): 들어온 신호를 단순히 여러 포트로 재전송하는 장치.리피터 (Repeater): 약해진 신호를 재생성하여 전송 거리 연장.케이블 (동축 케이블, 광섬유 등): 데이터를 전송하는 물리적 매체.프로토콜:Ethernet (IEEE 802.3): 물리 계층과 데이터 링크 계층에서 사용되..

정보처리기사 2024.09.26

보안 공격 기법

보안 공격 방법은 다양한 방식으로 이루어질 수 있으며, 이를 카테고리별로 나누면 더 이해하기 쉽습니다. 주요 공격 방법을 크게 네트워크 기반, 소프트웨어 기반, 사회 공학, 암호화 공격 등으로 분류할 수 있습니다.1. 네트워크 기반 공격네트워크를 통해 이루어지는 공격입니다.DoS/DDoS (서비스 거부 공격): 대량의 트래픽을 보내 서버나 네트워크를 과부하시키는 공격입니다. DDoS는 여러 시스템이 동시에 공격을 수행합니다.목적: 서비스를 마비시키거나 느리게 만듭니다.MITM (중간자 공격, Man-in-the-Middle Attack): 두 통신 주체 사이에 공격자가 중간에 끼어들어 데이터를 훔치거나 변조하는 공격입니다.목적: 통신 내용 가로채기, 데이터 변조.스니핑 (Sniffing): 네트워크를 통..

정보처리기사 2024.09.24

병행 수행 및 병행 제어

병행 수행 (Concurrency Control) 병행 수행은 데이터베이스 관리 시스템(DBMS)에서 여러 사용자가 동시에 데이터에 접근하고 작업을 처리할 수 있도록 하는 기술입니다. 데이터베이스는 여러 사용자가 동시에 데이터를 삽입, 수정, 삭제 등의 작업을 할 때 그 결과가 정확하고 일관성을 유지하도록 보장해야 합니다. 병행 수행은 이러한 동시에 발생하는 작업을 효율적으로 관리하여 데이터 무결성 및 일관성을 유지하는 것을 목표로 합니다.병행 수행의 필요성성능 향상: 여러 트랜잭션을 동시에 처리하면 시스템 자원을 효율적으로 사용하고 응답 시간을 줄일 수 있습니다.공유 자원의 활용: 다수의 사용자가 동일한 데이터에 접근할 수 있도록 하여 자원을 최대한 활용합니다.데이터 일관성 유지: 동시에 여러 트랜잭션..

정보처리기사 2024.09.24

해시충돌 해결법과 예제

충돌 해결 방법은 해시 테이블의 중요한 부분이며, 성능과 저장 공간 효율성에 영향을 미칩니다.아래에서 자주 사용되는 충돌 해결 방법과 그 차이를 설명하겠습니다.1. 선형 조사법 (Linear Probing)방법: 충돌이 발생하면 해시 테이블의 다음 빈 슬롯을 순차적으로 탐색하여 데이터를 저장.예시: 만약 h(k)=kmod  11h(k) = k \mod 11h(k)=kmod11에서 충돌이 발생하면, 그 다음 슬롯을 확인하는 방식으로 충돌을 해결합니다.장점:간단한 구현.데이터가 해시 테이블 내에 하나의 연속된 메모리 공간에 저장되므로 메모리 캐시 효율이 좋음.단점:클러스터링(한 곳에 연속적인 데이터가 몰리는 현상)이 발생할 수 있어, 테이블의 로딩이 높아질수록 성능이 급격히 저하됨.데이터가 연속된 공간에 저..

정보처리기사 2024.09.24