CS 공부, 기타(29)
-
ORM (Object-Relational Mapping)
🧠 ORM 이란?객체(Object) 와 관계형 데이터베이스(Relational Database) 를 자동으로 매핑해주어 RDB 테이블을 객체 지향적으로 사용하게 해주는 기술이다. 🎯 왜 ORM이 필요할까?프로그래밍 언어는 대부분 객체(Object) 기반이지만,데이터베이스는 테이블 기반이기 때문에 형식이 다르다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.객체 모델과 관계형 모델 간에는 불일치가 존재하는데, ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 간단히 말해:📦 클래스 테이블🧩 객체(Object) 레코드(Row) 예를 들어 Python에서는 이렇게 쓴다:user.nameuser.age그런데 SQL에서는 이렇게..
2025.05.14 -
JWT (Json Web Token)
🔐 Json 객체에 인증에 필요한 정보들을 담은 후 비밀키로 서명한 토큰으로, 인터넷 표준 인증 방식이다.✅ 사용자의 로그인 상태를 저장하거나✅ API에 요청할 때 권한을 확인하기 위해 사용됩니다.✅ 요즘 웹 백엔드에서 인증(Authentication)과 인가(Authorization)를 처리할 때 널리 사용되는 기술✅ JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web 토큰 🧱 JWT 구조JWT는 세 부분으로 나뉘고, .으로 구분됩니다.xxxxx.yyyyy.zzzzz(Header.Payload.Signature) 1. 📄 Header{ "alg": "HS256", // 서명 알고리즘 "typ": "JWT"}alg : 서명(Signature) 및 토큰 검증에서 사용..
2025.05.13 -
인스턴스(instance) 용어 사용 사례 정리
✅ 1. 객체지향 프로그래밍에서의 인스턴스특정 클래스에서 생성된 개별 객체를 의미합니다.자바, 파이썬, C++, JavaScript 등 모든 OOP 언어에서 사용됩니다.user1 = User("홍길동") # User 클래스의 인스턴스 ✅ 2. isinstance() 함수 (Python)특정 객체가 특정 클래스의 인스턴스인지 확인하는 데 사용됩니다.isinstance(user1, User) # True ✅ 3. 싱글턴 인스턴스 (Singleton Instance)시스템 전체에서 오직 하나만 존재하는 인스턴스데이터베이스 연결, 설정 클래스 등에서 자주 사용됩니다.db = DatabaseConnection.get_instance() # 항상 같은 인스턴스 반환 ✅ 4. 클라우드 컴퓨팅에서의 인스턴스AWS..
2025.05.08 -
클래스, 객체, 인스턴스
✅ 클래스 (Class)정의: 객체를 만들기 위한 설계도 또는 틀예시: “자동차”라는 클래스는 바퀴, 핸들, 엔진 등의 속성과, 달리기(run), 멈추기(stop) 같은 기능을 정의합니다.특징: 실제 메모리에 할당되지 않고, 구조와 행동만 정의합니다.class Car: def __init__(self, color): self.color = color def drive(self): print(f"{self.color} 차가 달립니다.") ✅ 객체 (Object)정의: 클래스에 정의된 구조에 따라 실제로 메모리에 생성된 실체객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버라고 한다.속성(Property) : 멤버변수(member variable), 특성(attri..
2025.05.08 -
스레드 세이프(thread safe)
스레드 세이프(thread safe)멀티스레딩 환경에서 여러 스레드가 동시에 같은 코드 영역에 접근하거나 데이터를 공유할 때, 올바른 실행 결과를 보장하는 코드의 속성을 의미한다.즉, 코드가 여러 스레드로부터 동시에 호출되더라도 각 스레드의 실행 경로가 서로를 방해하지 않도록 안전하게 설계되어 있다는 것이다.이는 데이터 무결성과 일관성을 유지하는 데 필수적인 조건이다. 스레드 세이프를 보장하기 위한 전략 1. 상호 배제 (Mutual Exclusion)한 시점에 하나의 스레드만이 특정한 코드 영역에 접근할 수 있도록 보장하는 방법으로, 일반적으로 많이 사용한다.방법: synchronized 블록(자바), Mutex (Go, C++), 또는 다른 잠금 메커니즘을 사용하여 공유 데이터에 대한 접근을 제어 2..
2025.03.13 -
Lighthouse
LighthouseGoogle Chrome에서 제공하는, 웹 페이지의 성능을 측정하고 품질을 개선할 수 있는 오픈 소스 형태의 자동화 도구이다. 모바일, 데스크탑에서 모두 측정할 수 있으며, 성능, 접근성, SEO 등 사이트에 대한 전반적인 진단을 할 수 있다. Lighthouse 검사 항목1. Performance (웹 성능)화면에 콘텐츠가 표시되는데 시간이 얼마나 걸리는지, 표시된 후 사용자와 상호작용이 가능하기까진 얼마나 걸리는지, 화면에 불안정한 요소는 없는지 등 2. Accessibility (웹 접근성)대체텍스트를 잘 작성했는지, 배경색과 콘텐츠 색상의 대비가 충분한지, 적절한 WAI-ARIA 속성을 사용했는지 등 3. Best Practices (웹 표준 모범 사례)웹 페이지가 웹에 대한 표..
2024.12.13