전체 글 46

[MySQL InnoDB] 외래키(Foreign Key) 설정 시 주의사항

외래키 (Foreign Key) 란하나의 테이블이 다른 테이블의 기본키(Primary Key)를 참조하도록 설정하는 제약조건이다. 이를 통해 데이터 무결성 보장하고 논리적 관계 (부모- 자식 관계) 를 명확히 할 수 있다.더보기더보기예) 댓글 테이블이 게시글 테이블의 ID를 참조하는 구조 → 댓글은 반드시 유효한 게시글에만 달림InnoDB 스토리지 엔진MySQL에서 여러 스트로지 엔진을 지원하지만, 외래키 기능은 InnoDB엔진에서만 동작한다. 다른 엔진에서는 외래키 제약조건이 무시되고 작동하지 않는다. 외래키를 사용하려면 반드시 ENGINE=InnoDB 를 명시해야 한다.CREATE TABLE post ( id INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;다른 ..

Backend · Infra 2025.06.16

docker 를 티기고 티기는 WSL(Ubuntu) + docker cli + git에 이미지 올리기

📌 이 글은 Docker & 배포 자동화 시리즈 중 하나입니다.Windows에서 WSL(Ubuntu) + Docker CLI + Git 이미지 올리기 전체 과정1. WSL2 설치 (Windows Terminal, PowerShell 관리자 모드)wsl --installWSL 설치 상태 확인wsl --list --verboseUbuntu 설치 (필요한 경우)wsl --install -d Ubuntu기본 WSL2로 설정 (확인용)wsl --set-default-version 22. Ubuntu 실행wsl -d Ubuntu또는시작 메뉴 → Ubuntu 검색 → 실행3. 초기 사용자 계정 생성실행 시 다음처럼 입력Enter new UNIX username: yournameNew password: *******..

Backend · Infra 2025.05.12

Ory IAM 인증 시스템 구축 - 웹 & 앱 로그인 흐름

최근 회사에서 인증 시스템을 구축하게 되면서 Ory 기반의 IAM(Identity and Access Management) 솔루션을 도입하게 되었다.상용 서비스인 Ory Network는 유료 플랜이기 때문에, 우리는 Ory의 오픈소스 프로젝트만 활용하여 Self-hosting 방식으로 구성하기로 결정했다.또한, 기본으로 제공되는 Kratos UI 대신 우리 서비스에 맞는 커스텀 UI(Spring 기반) 를 직접 만들어 연동하는 방향으로 개발을 진행하게 되었다.  web/app ory kratos 의 로그인 플로우앞선 흐름도에서 알 수 있듯, 웹과 모바일 앱은 Kratos와 통신할 때 사용하는 엔드포인트(URL)가 서로 다르다.  나는 웹 UI 쪽을 담당하고 있기 때문에, 우선 웹 기반 인증 흐름부터 중심..

TIL · 잡담 2025.04.04

VS Code 단축키 정리

회사에서 인텔리제이 얼티밋 버전을 지원해주지 않아서 VS CODE로 갈아타게 되었다. 나름 vscode도 사용하다 보니 단축키도 익숙해지며 점점 편해지는 것 같아서 정리해두려고 한다.  개발자는 마우스보다 키보드가 더 편하다 보니 단축키를 외워두면 정말 마우스를 안쓰고도 개발이 가능하다. 회사 컴퓨터는 윈도우지만, 집 노트북은 맥북이기 때문에 둘 다 정리해두려고 한다. 🍯 Tip 단축키 WindowMacOSCtrl + p Cmd + p  파일 빠르게 열기  main → MainController.java 같은 파일 찾기index.html → 빠르게 HTML 파일 열기@ 입력 → 기능 이동 (Go to Symbol in File)# 입력 → 검색 (Go to Symbol by Name): 입력 → 라인 ..

TIL · 잡담 2025.03.31

블로그 소개 (About)

📌 블로그 소개 (About devhyen.tistory.com)안녕하세요! 저는 devhyen입니다. 😊이 블로그는 소프트웨어 개발과 프로그래밍에 관한 정보를 공유하기 위해 운영되고 있습니다.✅ 이 블로그에서 다루는 내용:프로그래밍 기초 및 심화 개념웹 개발, 백엔드 개발 관련 자료개발 관련 팁 & 에러 해결 방법개발자로 성장하며 배운 내용을 기록하고, 도움이 되는 정보를 공유하는 것이 목표입니다.방문해 주셔서 감사합니다! 좋은 정보 많이 얻어가시길 바랍니다. 🚀📬 문의: https://devhyen.tistory.com/30

카테고리 없음 2025.03.05

문의하기

📬 문의하기 (Contact Us)안녕하세요! 블로그 운영자 devhyen입니다.본 블로그에 대한 질문이나 문의 사항이 있으시면 아래 방법을 이용해 주세요. 😊✅ 방명록에서 문의하기: https://devhyen.tistory.com/guestbook(👉 방명록에 글을 남겨주시면 확인 후 답변드리겠습니다.)📧 이메일 문의:kimnieyh@gmail.com가능한 빠른 시일 내에 답변드리겠습니다. 감사합니다!

카테고리 없음 2025.03.05

개인정보 처리방침

[devhyen.tistory.com 개인정보처리방침] 1. 수집하는 개인정보 항목   - 본 사이트는 Google AdSense 및 트래픽 분석을 위해 방문자의 IP 주소, 쿠키 등의 데이터를 수집할 수 있습니다.   - 본 블로그는 직접적인 회원가입 및 로그인 기능을 제공하지 않으며, 별도의 개인정보를 저장하지 않습니다.   2. 쿠키 사용 및 광고   - 본 블로그는 Google AdSense를 이용하여 광고를 게재할 수 있습니다.   - 제3자 광고 제공업체(예: Google)는 방문자의 쿠키를 활용하여 맞춤형 광고를 제공할 수 있습니다.   - 사용자는 Google 광고 설정에서 맞춤형 광고를 비활성화할 수 있습니다.   3. 문의   - 개인정보 관련 문의 사항은 kimnieyh@gmail.c..

카테고리 없음 2025.03.05

next.js 모듈 분리에 관한 고민

IAM 을 회사에서 구축하며, 각 서비스 개발자들이 IAM을 연동하는데 도움을 주는 admin UI를 개발 하고 있다.Next.js 를 사용해서 개발하고 있는데, 그냥 코드를 짜도 동작은 하지만, 모듈 분리를 통해 유지보수를 수월하도록 변경했다. 💫 모듈 분리를 하는 이유✅ 유지보수성 향상한 파일에 모든 기능이 몰려 있으면 수정할 때 영향도가 커지고, 실수할 확률도 높아집니다. 모듈을 분리하면 코드 수정 범위를 줄일 수 있어 안정성이 증가합니다.✅ 재사용성 증가API 요청, 유틸 함수, 검증 로직 등을 모듈화하면 여러 곳에서 재사용할 수 있어 코드 중복을 방지할 수 있습니다.✅ 협업 효율성 향상여러 명이 동시에 작업할 때, 코드가 깔끔하게 정리되어 있으면 충돌을 줄이고 작업 분배가 쉬워집니다.✅ 성능 ..

Frontend · UI 2025.02.21

OIDC란? Ory를 활용한 인증 알아보기

OIDC(OpenID Connect)란?회사에서 IAM(Identity and Access Management) 시스템을 구축하게 되면서 OIDC(OpenID Connect)에 대해 공부해봤습니다. 요즘 많은 서비스에서 Google, Facebook, GitHub 계정으로 로그인할 수 있는데요. 이러한 기능을 가능하게 해주는 표준 프로토콜이 바로 OIDC(OpenID Connect)입니다.기존의 OAuth 2.0은 사용자가 API에 접근할 수 있는 Access Token을 발급받을 수 있지만, "이 사용자가 누구인지"는 정확히 알 수 없었습니다. OIDC는 OAuth 2.0을 확장하여 ID Token을 추가하여 사용자 신원을 보장하는 프로토콜입니다.즉, OIDC를 사용하면 OAuth 2.0의 인증 기능을..

Backend · Infra 2025.02.11