[개발 일기] 2025.04.23 - 왜 두 번씩?
·
개발 일기
💡 개요 React를 사용하다 보면 모든 요청이 두 번씩 요청되는 것을 볼 수 있다. 그 이유가 뭘까? 🛠️ React가 두 번씩 요청을 보내는 이유 이유는 아래 URL에 접속하면 알 수 있다. How to Upgrade to React 18 – ReactThe library for web and native user interfacesreact.dev 결론부터 말하자면 별 상관 없다. React 18에서는 Strict Mode가 활성화되어 컴포넌트의 리렌더링을 강제로 두 번 수행하기 때문인데, 이는 애플리케이션의 안정성을 위한 메커니즘으로, 실제 배포 환경에서는 한 번만 요청이 발생한다. 따라서 개발 환경에서만 요청이 두 번 발생한다고 걱정할 필요는 없다. 그리고 현재 환경이 개발 환경인..
[개발 일기] 2025.04.22 - 프로세스 생명 주기
·
개발 일기
💡 개요 오늘은 프로세스 생명 주기에 대해 정리해보자. 🛠️ 프로세스 생명 주기 프로세스 생명 주기란 컴퓨터에서 프로그램이 할당되어 실행 가능한 상태인 프로세스가 되고, 이 프로세스가 실행된 후 종료되는 과정을 나타낸 것이다. 주요 과정은 다음과 같다. 1. New 프로세스가 생성중인 상태를 의미한다. 여기서 프로세스란 프로그램이 실행을 통해 OS로 부터 리소스를 할당받고, PCB(Process Control Block)이 만들어지고 준비중인 단계이다. PCB란 프로세스를 관리하기 위한 OS의 핵심 자료구조이다. 말 그대로 프로세스에 대한 정보를 담고있는 객체를 의미한다. PCB가 담고있는 정보는 다음과 같다. 항목설명프로세스 ID (PID)각 프로세스를 식별하기 위한 고유한 번호프로세..
[개발 일기] 2025.04.21 - Docker 익명 볼륨
·
개발 일기
💡 개요 저번 달엔 Docker에서 사용되는 볼륨에 대해 정리했었다. 오늘은 그 볼륨 중에서 익명 볼륨에 대해 정리해보자. 🛠️ 익명 볼륨 Docker 컨테이너에서 사용되는 익명 볼륨이란, 개발자가 볼륨 이름이나 경로를 명시적으로 지정하지 않았을 때 Docker가 자동으로 생성하는 볼륨을 말한다. 위 이미지에서 볼 수 있는 이름이 복잡하고 랜덤한 형태의 볼륨들이 모두 익명 볼륨이다. Docker를 사용해 본 사람이라면 알겠지만, 컨테이너를 반복해서 내렸다 올리는 작업을 하다 보면 이러한 익명 볼륨들이 점점 쌓이게 된다. 나도 처음엔 컨테이너를 삭제하면 자동으로 익명 볼륨도 함께 삭제되는 줄 알았지만, 실제로는 삭제되지 않고 그대로 남아 있는 경우가 많다. 그렇기 때문에 컨테이너 삭제함과 ..
[개발 일기] 2025.04.20 - Docker 포트 번호가 2개?
·
개발 일기
💡 개요 오늘은 Docker 컨테이너에서 사용하는 포트가 2개인 경우에 대해 정리해보자. 🛠️ Docker 포트 아래 코드는 내가 사용 중인 Kafka 컨테이너 배포에 사용되는 코드이다. version: '3'services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka1: image: wurstmeister/kafka container_name: kafka1 ports: - "9092:9092" - "29092:29092" environment: KAFKA_BROKER_ID: 1 KAFKA..
[개발 일기] 2025.04.19 - 테이블의 기본키로 VARCHAR?
·
개발 일기
💡 개요 오늘은 데이터베이스의 테이블에서 사용되는 기본 키 중, String 즉, VARCHAR 형태의 기본 키에 대해 정리해 보자. 🛠️ VARCHAR 형태의 기본 키 VARCHAR 형태의 기본 키는 주로 UUID를 사용할 때 선택된다. 예를 들어, ORDER-20250419-001처럼 비즈니스적으로 의미 있는 ID를 키로 사용하거나, 전역적으로 유일해야 하는 ID를 관리할 때 유용하다. UUID는 확률적으로 충돌 가능성이 거의 없어, 기본 키로 사용할 경우 고유성을 보장할 수 있다는 장점이 있다. 또한 사람이 읽기 쉬운 형태나 특정 규칙을 따르는 키를 생성할 수도 있어 활용도가 높다. 하지만 대부분의 테이블에서는 기본 키로 BIGINT(즉, Long) 타입의 숫자형 ID를 사용한다. ..
[개발 일기] 2025.04.18 - DB 복합키
·
개발 일기
💡 개요 오늘은 데이터베이스의 테이블에 사용되는 복합 키에 대해 정리 해보자. 🛠️ 복합 키 복합 키란 둘 이상의 컬럼을 조합해 하나의 기본 키로 사용하는 것이다. 역시 말로만 설명하면 어려우니까 예시를 하나 보자. ‘수강신청’ 이라는 테이블이 있다. 모든 학생들은 한 과목을 한 번만 신청할 수 있다고 가정하자. (재수강은 없다고 가정함) 만약 복합 키를 사용하지 않는 경우 한 행의 데이터에 삽입하고자 하는 student_id와 course_id가 일치하는 컬럼이 있는 지 매번 확인해야 한다. 하지만 복합 키를 사용한다면 이렇게 불필요한 조회 과정을 생략할 수 있다. 왜냐하면 하나의 테이블에는 중복된 기본 키가 존재할 수 없기 때문이다! student_idcourse_id등록일1001C..