본문 바로가기

CSあるある

今勉 2025/4/3(木)■ localhost == 127.0.0.1 Q. 타입 스크립트는 조건문 안에 값이 있으면 참/거짓을 반환하도록 설정되 있는 거야? 좀 더 기본적인 문법 표현은 없어? A. 네, TypeScript(혹은 JavaScript)에서는 **조건문(if)**에서 값을 사용할 때, 그 값이 **참(true) 또는 거짓(false)**로 평가됩니다. 이 동작은 Truthy와 Falsy 개념에 기반합니다. 다만, 기본적인 문법 표현을 원하신다면, 조건문에 사용할 수 있는 명시적인 비교를 사용할 수도 있습니다. 1. Truthy와 Falsy JavaScript와 TypeScript에서는 Falsy 값을 제외한 나머지 값들은 모두 Truthy로 간주됩니다. 그래서 조건문 내에서 변수나 값을 직접 사용.. 더보기
JOIN 테이블이 만들어 지는 순서 이 SQL 문에서 조인과 WHERE 절의 필터링 순서는 데이터베이스의 쿼리 최적화 엔진에 의해 결정되지만, 일반적인 SQL 실행 순서를 기준으로 예제 SQL문을 가지고 설명할게.select e.id,e.name,e.position from company.employee as e,company.project as pwhere p.id=2002 and p.leader_id=e.id; 🔍 SQL 실행 순서SQL의 논리적 실행 순서는 다음과 같아:FROM 절: 테이블을 결정 (company.employee, company.project)WHERE 절: 필터링 수행SELECT 절: 필요한 컬럼 선택✨ 이 쿼리에서 실행 순서 분석1. FROM 절 (명시적 조인이 아닌 암시적 조인)FROM company.emplo.. 더보기
JOIN 테이블에 대한 UPDATE문 동작 원리 1. 예제 테이블 준비employees (직원 정보) 테이블id name salary1홍길동500만원2김철수550만원3이영희600만원projects (프로젝트 정보) 테이블project_id employee_id status1011진행 중1021진행 중1032진행 중1043완료됨위 테이블에서 employees와 projects를 JOIN해서 진행 중(status = '진행 중')인 직원들의 급여를 100만 원 올리는 UPDATE 쿼리를 실행한다고 해보자.2. 문제의 쿼리UPDATE employees eJOIN projects p ON e.id = p.employee_idSET e.salary = e.salary + 100000WHERE p.status = '진행 중';이 UPDATE 문이 실행되면 JOI.. 더보기
SQL은 tuple의 중복을 허락한다! 엥??? relational data model에서의 implicit constraints에서 분명히 "tuple"은 중복을 허락하지 않는다고 하였는디??일단 SQL이 어떻게 tuple의 중복을 허락하는 지 예시로 살펴보자. 📌 예제아래 예제는 동일한 데이터를 여러 번 삽입하고, 중복이 허용되는지를 확인하는 것입니다.1️⃣ 테이블 생성CREATE TABLE employees ( id INT, // 이 column을 Pk로 명시적 설정하지 않음을 기억하자 name VARCHAR(50), department VARCHAR(50));2️⃣ 중복 데이터 삽입INSERT INTO employees (id, name, department) VALUES (1, 'Alice', 'HR');INSER.. 더보기
constraints(Feat. implicit constraints,explicit constraints) constraints : relational database의 relation들이 항상/무조건 지켜줘야 하는 제약사항. constraints는 크게 implicit constraints(내포된/묵시적 제약사항)와 explicit constraints(명시적 제약사항)로 나뉜다. implicit constraintsrelational data model 자체가 가지는 constraints로써 아래 2가지 예시가 있다. 1] relation은 중복되는 tuple을 가질 수 없다. 2] relation 내에 같은 이름의 attribute를 가질 수 없다.  explicit constraints( schema-based constraints )주로 DDL을 통해 Schema에 직접 명시할 수 있는 constra.. 더보기
DB에서 NULL은 되도록 사용하지 말자 결론부터 말하면"NULL은 여러 의미로 해석될 수 있기 때문에 사용을 되도록 하지 말아야 한다"(개인적인 생각이지만 만약 NULL을 사용한다면 프로젝트 개발자들과 NULL의 용도를 1개로 통일해서 사용해야 함)-> 아래에서 위 내용을 자세히 알아보자. DB에서 NULL의 의미1. 값이 존재하지 않는다. 2. 값이 존재하지만 아직 그 값이 무엇인지 알지 못한다(업데이트가 안 된 상항)3. 해당 사항과 관련 없다. -> 아래의 예시를 통해 NULL의 문제점을 알아 보자.  toeic_score=NULL의 의미는 과연 무엇일까?1. 토익을 안 쳐서 점수가 없는 경우2. 토익을 쳤지만 아직 점수 발표가 안 난 경우3. 해당 학생은 토익과는 전혀 관련이 없는 경우-> 위와 같이 여러 해석이 존재하기에 어떤 용도로.. 더보기
도메인(Domain)의 정의 -종결편- 도메인이라는 개념은 기본적으로 어떤 특정한 범위나 영역을 의미.1️⃣ 웹 개발에서의 도메인웹 개발에서 "도메인(domain)"은 인터넷에서 특정 웹사이트를 식별하는 주소를 의미해.예를 들면:google.comnaver.comgithub.io이런 것들이 도메인이야.📌 예시네이버에 접속하려면 네이버의 서버 IP 주소(예: 223.130.195.200)를 알아야 하지만, 사람이 숫자를 외우는 건 어렵잖아? 그래서 IP 주소 대신 사람이 이해하기 쉬운 단어(도메인) 를 쓰는 거야.👉 즉, 도메인은 웹사이트를 찾기 쉽게 만들어주는 이름(주소) 역할을 해!2️⃣ DB(데이터베이스)에서의 도메인DB에서 "도메인(domain)"은 어떤 값이 가질 수 있는 허용된 범위(제한된 값의 집합) 를 뜻해.📌 예시예를 들어.. 더보기
추상화에 대한 정리(Feat. 객체 지향,oop) 추상화 : 여러 곳에서의 "공통된/중복된 [역할]"을 따로 뺌(SRP) -> 기대 효과 : 1] 개발/운영 중 요구 사항/코드 [변경]에 따른 클라이언트 코드 [변경]'의' 최소화(OCP)                  : 2] 단일 책임 원칙으로 인한 [코드 중복]'의' 최소화                     -> 개발/운영 중 요구 사항/코드 [변경]에 따른 개발자의 개발량/실수 감소.  EX) AppConfig 클래스   EX) Front Controller(Dispatcher Servlet) : 클라이언트에서 필요한 컨트롤러를 찾아 주는 [역할] ->Front Contrller를 만들기 전에는 개발자가 일일이 서블릿을 등록하였다.  그 역할이 개발자로부터 분리되었다.  객체지향 = 다형성 + .. 더보기