전체글보기 82

[데이터베이스] 정규화(Normalization) 쉽게 이해하기

정규화(Normalization)는 데이터의 중복을 줄이고 데이터의 무결성을 확보하며 더 효율적으로 관리하기 위한 방법 실무에서는 주로 제3 정규화(3NF)만 고려하는 경우가 많다. ( 이유는 글 하단에 설명되어있음 ) 정규화가 진행될수록 테이블이 세분화되면서 조인이 많아져 조회 속도가 저하될 수 있다.이러한 경우, 정규화를 부분적으로 완화(위배)하여 조인을 줄이고 조회 성능을 향상시키는반정규화(Denormalization) 기법을 활용할 수 있다. (자주 조인(Join)되는 테이블을 하나로 합쳐서 조인 비용을 줄이는 방법 등을 실시) 4NF 와 5NF 는 잘 사용되지 않기에, 다른 글에 새로 작성하겠다.🚀 정리정규화내용중복 발생 이유예시제1 정규화(1NF)한 칸(셀)에 하나의 원자적 값만 저장(Ato..

[Spring Boot] render 로 무료 호스팅 하기

처음에는 자바 애플리케이션을 직접 배포해보려 했으나,무료 호스팅 사이트 중 자바 지원이 제한적인 경우가 많았다. 도커로 배포할 수 있는 사이트는 많았고, 결국 도커를 활용한 배포 방식으로 전환하였다. 요약Dockerfile을 작성하여 빌드 및 실행 단계 구성Render.com에서 Git 연동 또는 Manual Deploy 기능을 통해 배포필요한 환경 변수들을 Render 에서 설정 1. Spring Boot 루트 경로에 Dockerfile 생성하기예시 코드# 1. Java 21 JDK 이미지 사용 (빌드 단계)# Java 21의 JDK 이미지를 사용하여 빌드 환경을 구성.# "AS build"는 이 단계를 build라는 이름으로 지정하여, 후속 단계에서 참조할 수 있도록 합니다.FROM eclipse-t..

Spring Boot 2025.03.04

[Spring Boot] Mybatis API 서버 만들기

(작성 중인 글입니다. 직접 서비스 올리며 글 수정 예정입니다.)(postgres 와 연동 예정입니다) mybatis-demo  ┣ src  ┃ ┗ main  ┃   ┣ java  ┃   ┃ ┗ com  ┃   ┃   ┗ example  ┃   ┃     ┗ demo  ┃   ┃       ┣ DemoApplication.java       // 스프링부트 메인  ┃   ┃       ┣ MyDataController.java      // 컨트롤러  ┃   ┃       ┣ MyDataMapper.java          // 매퍼 인터페이스  ┃   ┃       ┗ MyData.java                // DTO  ┃   ┗ resources  ┃     ┣ application.pro..

Spring Boot 2025.02.17

[MES] 생산 방식 비교 (Batch vs Continuous vs Discrete)

📌 생산 방식 비교 표 (Batch vs Continuous vs Discrete) 구분배치 생산 (Batch)연속 생산 (Continuous)개별 생산 (Discrete)특징일정한 양을 생산 후 멈추고, 다음 배치 시작24시간 연속적으로 생산개별 부품을 조립하여 최종 제품 완성적용 산업제약, 화학, 식품, 반도체철강, 석유화학, 전력, 시멘트자동차, 전자기기, 기계 부품공정 방식배치 단위로 공정 실행 후 품질 검사중단 없이 원료 투입 및 제품 출력부품 단위로 조립, 검사 후 출하생산 속도중간 (설비 세척 및 설정 변경 필요)매우 빠름 (중단 없이 지속 생산)중간~느림 (조립 공정에 따라 다름)품질 관리배치 단위 검사 및 품질 보증공정 중 실시간 품질 검사개별 제품 단위 검사 가능대표 예시백신, 반도체..

제조IT 2025.02.16

[C#] 실무에서 DB 연동 시 Full ORM 잘 사용하지 않는 이유

https://forum.dotnetdev.kr/t/c-db/6514/9 C#에서 DB연동하는것에 대한 질문입니다.언어와 상관없이, 데이터 베이스 연동은 크게, DB 클라이언트 구현 객체를 직접 이용하는 방법과, ORM을 이용하는 방법이 있습니다. 1번의 경우, 클라이언트에게 데이터 베이스 접속정보를 (커넥forum.dotnetdev.kr 위 게시글을 읽고 궁금증이 해결되었다.

c# 2025.02.13

6. PostgreSQL RHEL 설치: 테이블 스페이스 생성 및 추가 변경 방법

0. 사전 접속# su 접속su -# postgres 접속sudo -i -u postgres# psql cli 접속psql 1. 테이블 스페이스 생성# 테이블 스페이스 생성 # (해당 폴더 생성 및 소유자, 권한 설정이 완료 되어 있어야 함.)CREATE TABLESPACE ts_jhdb(원하는테이블스페이스명) LOCATION '/mnt/pgsql/jhdb'(본인의 경로);#경로는 이전 강의에서 /mnt/pgsql 경로를 만들어두었다면 해당 폴더에,# /mnt/pgsql 경로를 만들지 않았다면 아래 경로에 # /var/lib/pgsql/당신의버전/data/tablespaces/당신의DB명혹은폴더명 끝. 아래는 이미 생성된 테이블스페이스의 경로 등을 바꾸는 방법 2. 이미 생성된 데이터베이스의 테이..

PostgreSQL/install 2025.01.20

ADSI Editor 로 Active Directory 속성 값 편집

윈도우 키 -> ADSI edit 검색 후 실행 혹은 C:\WINDOWS\system32 위 경로에서 adsiedit 와 adsiedit.dll 을 찾는다.   없다면 아래 파일을 받는다.    ADSI Edit의 주요 기능디렉터리 데이터 관리사용자, 그룹, OU(조직 단위), GPO(그룹 정책 객체) 등의 속성을 조회하고 편집할 수 있습니다.AD 속성 값 직접 수정예를 들어, 사용자의 특정 속성(예: 계정 잠금 해제, 로그인 제한 시간 등)을 GUI로 제공되지 않는 세부 설정까지 조정 가능.문제 해결AD 복구, 속성 충돌 해결, 잘못된 속성 값 수정을 통해 AD 관련 문제를 빠르게 해결할 수 있습니다.

Active Directory 2025.01.13

RHEL Linux IP 변경 방법 nmcli

RHEL 혹은 Rocky Linux 를 초기 설치 혹은 운영 상의 문제로IP Address 변경이 필요 시 아래의 명령어로 변경할 수 있다. RHEL 7 이후로 NetworkManager가 기본 관리 도구가 되었고, 기존 network-scripts 내의 파일을 수정하는 방식에서 nmcli 를 사용하여 관리하는 방법으로 변경됨 1. 현재 네트워크 설정 확인:이 명령으로 설정된 네트워크 연결 이름(Connection Name)을 확인인터페이스 확인nmcli connection showIP확인nmcli d show | grep -i ip4 2. IP 주소 변경 예시# 예시nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24nmcli connection..

Linux (RHEL) 2025.01.08

5. PostgreSQL RHEL 설치: 테이블 스페이스 용 디스크 마운트

데이터베이스를 생성하기 전 데이터를 저장할 테이블 스페이스의 공간을 만들기 위해데이터베이스 용 디스크를 마운트 하는 과정을 진행해보겠다. 만약 여분의 디스크가 없다면, 이번 게시글을 skip 하고 다음 게시글로 이동. # 1번을 진행 후# 물리적 디스크를 준비하여 장착 하거나,# VM 혹은 LXC 환경이라면 가상 디스크 장착 1. 디스크 마운트 전 현재 상태의 디스크 블록 확인lsblk 2. 디스크 마운트 후 상태의 디스크 블록 확인lsblk 3. fdisk 명령을 이용하여 파티션 생성#lsblk 에서 확인한 디스크 블록으로 sd??를 바꿔서 fdisk 실행sudo fdisk /dev/sd??# Command 옵션# Cmmand# new 를 뜻하는 n 입력 # ( d: 기존 파티션 삭제 / p: 파..

PostgreSQL/install 2025.01.08

4. PostgreSQL RHEL 설치: 사용자 생성 및 패스워드 설정

# RHEL 혹은 Rocky Linux 접속 상태에서 postgres 계정 접속sudo -i -u postgres # psql cli 접속psql # postgres 계정의 외부 접속을 위하여 패스워드 설정# 해당 계정은 postgres 설치 시 기본 슈퍼유저(Superuser) 계정# 기본적으로 peer 인증으로 OS의 postgres 계정과 연동되어 local 에서 소켓 기반으로 접속 가능함 ( pg_hba.conf 파일을 참고하면 local all all peer 로 설정이 되어있음 )# 따라서 외부 접속이 필요하지 않다면 설정하지 않아도 됨.# 비밀번호 변경 성공 시 ALTER ROLE 메세지 표시 됨ALTER USER postgres WITH PASSWORD '새로운_비밀번호';#psq..

PostgreSQL/install 2025.01.08

Proxmox local 과 local-lvm 저장 공간 통합 하기

local: ISO, 컨테이너 템플릿, 백업 등을 저장하는 스토리지. 초기 설치 시 약 100GB만 할당됨.local-lvm: VM의 디스크 데이터가 저장되는 공간. 대부분의 디스크 공간이 여기에 할당됨.중요: local-lvm에는 VM 디스크가 저장되어 있을 가능성이 높습니다.따라서 작업 전 모든 VM을 백업해야 데이터 손실을 방지할 수 있습니다. Proxmox 웹 UI에서 각 VM을 선택.Backup 메뉴로 이동하여 백업 생성.백업 데이터를 안전한 외부 저장소에 보관.ftp 혹은 usb 등을 사용하 /var/lib/vz/dump 에 있는 모든 백업 파일을 외부 저장소로 이동# 사전 확인# lvm 구성 확인 ( 시스템에 연결된 디스크와 디스크의 파티션 구조 확인)lsblk# 디스크 공간을 사람이 읽기 ..

Proxmox 2025.01.07

3. PostgreSQL RHEL 설치: 데이터베이스 접속 허용 및 방화벽 설정

https://jhchoi.tistory.com/53 (이전 설치 가이드 주소)이전 설치 가이드 까지만 적용하고 DB 계정 및 테이블스페이스, DB를 생성하고SQL 편집기로 DB에 접근하려 하면 The connection attempt failed. 등의문구가 뜨면서 접속이 불가능 할 것이다. DB 및 OS 에서 접속을 허용할 IP 를 설정해주지 않았기 때문이다.  0. 시작 전 필요에 따라 sudoers 권한 계정으로 접속su - 1. postgresql.conf 파일 내  listen_addresses 설정 postgresql.conf  의 listen_addresses는 PostgreSQL 서버가 어떤 네트워크 인터페이스에서 연결을 수신할지 결정하는 설정. 기본값은 localhost로 설정되어 있어..

PostgreSQL/install 2025.01.07

2. PostgreSQL RHEL 설치: OS 사용자 계정 전환 후 CLI 접속

1. 사용자 계정 전환 # root(또는 다른 사용자)에서 postgres 계정으로 전환# root 사용자로 전환su -# postgres 사용자로 전환sudo -i -u postgres 명령어의 구성: sudo Superuser Do의 약자로, 현재 사용자가 루트 권한을 임시로 얻어 명령을 실행할 수 있도록 해줍니다.-i (interactive login)사용자를 전환하면서 해당 계정의 로그인 쉘 환경을 초기화합니다.즉, postgres 계정의 환경 변수와 설정 파일이 적용됩니다.-u postgres전환할 대상 계정을 지정합니다. 여기서는 postgres 계정으로 전환하겠다는 뜻입니다 2.  PostgreSQL의 CLI를 통해 데이터베이스에 접근 # postgres 계정 접속된 상태에서 아래 명령어를 ..

PostgreSQL/install 2025.01.07

1. PostgreSQL RHEL 설치: DNF 패키지 매니저를 이용한 기본 설치

https://www.postgresql.org/download/linux/redhat/ #상황에 따라 sudoers 권한을 가진 계정으로 전환# root 계정으로 전환 (환경에 따라 알맞은 계정으로 접속)su - # rpm repository 경로를 지정하여 설치 (위 url 참고)sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-10-x86_64/pgdg-redhat-repo-latest.noarch.rpm ###### 위 설치 혹은 이후 명령에서 오류가 나타나면###### 아래와 같이 문제가 된 부분을 비활성화 해준다.###### 각 오류 메세지에 맞게끔 명령어를 변경#오류 내용 예시#PostgreSQL com..

PostgreSQL/install 2025.01.02