전체 글 135

[SQLD] 1과목 - 2장. 데이터 모델과 SQL

제 1절 정규화1. 정규화(Normalization)정의: 데이터 분해 과정, 이상현상 제거목적: 삽입/삭제/갱신 이상현상 방지함수적 종속성에 기반한 정규화 수행 필요2. 함수적 종속성(FD, Functional Dependency)데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭, 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음결정자, ex) 학번, 주민등록번호종속자, ex) 이름, 혈액형, 출생지, 주소(학번은 이름과 혈액형을 함수적으로 결정, 이름과 혈액형은 학번에 함수적으로 종속됨)3. 종류정규형(NF, Normal Form): 정규화로 도출된 데이터 모델이 갖춰야 할 특성제 1 정규형(1NF): 모든 도메인이 원자갑으로만 되어 있는 정규형제 2 정규형(2NF): 테이블 R이..

[Node]Instagram Clone - 15. 관리자 권한으로 일반 유저 삭제 API

1. 관리자가 일반 유저를 삭제할 수 있는 API이번 포스팅에서는 관리자가 일반 유저를 삭제할 수 있는 API 기능을 구현하는 방법을 구현함.일반 유저는 자신의 계정만 삭제할 수 있지만, 관리자는 전체 시스템을 관리할 수 있는 권한을 가지고 있어 다른 유저들을 삭제할 수 있음이 기능을 통해 관리자만이 유저 관리 작업을 할 수 있도록 하며, 유저 삭제 시 해당 유저의 모든 정보와 데이터도 함께 삭제되게끔 구현함.1) 관리자 유저 삭제 API 설정 (adminDeleteUser.js)adminDeleteUser.js 파일: 관리자가 특정 유저를 삭제할 수 있는 기능 구현관리자는 admin 권한을 가진 사용자만 해당 기능을 사용할 수 있으며, 유저를 삭제하는 동시에 해당 유저와 관련된 데이터를 모두 삭제함. ..

[Node]Instagram Clone - 14. 관리자 회원가입 API

1. 관리자 회원가입 API이번 포스팅에서는 관리자 회원가입 API 기능을 구현함.초대 코드를 사용해 특정 사용자가 관리자 권한을 가지고 가입할 수 있도록 했으며, 가입 시 이메일 인증 기능도 함께 제공됨.1) 관리자 회원가입 API 설정 (adminSignup.js)adminSignup.js 파일에서는 초대 코드가 올바른 경우에만 관리자로 회원가입이 진행되도록 하는 기능을 구현했음또한 이메일 인증 절차를 포함해, 인증 코드가 포함된 이메일을 사용자가 수신하도록 했음(기존의 회원가입과 동일)const express = require("express");const router = express.Router();const { User } = require("../../models/User");const cr..

[Node]Instagram Clone - 13. Socket.io를 활용한 댓글 및 게시물 좋아요 알림 기능 구현

이번 글에서는 Socket.IO를 사용해 게시물과 댓글에 좋아요를 추가하면 실시간으로 알림을 보내는 기능을 구현함.클라이언트는 즉시 좋아요가 반영된 정보를 받을 수 있음.1. 서버 코드1) 기존의 server.js 수정서버에서 Socket.IO를 초기화하고 클라이언트와의 연결을 관리.좋아요가 발생하면 like-post와 like-comment 이벤트를 클라이언트에게 전송합니다.// server.js const socketIo = require("socket.io"); let io; function initSocket(server) { io = socketIo(server); io.on("connection", (socket) => { console.log("A user connected"); socket..

[Node]Instagram Clone - 12. Socket.io를 활용한 새로운 댓글 등록 알림 기능 구현

Socket.IO를 사용해 새로운 댓글 알림 기능을 구현함.클라이언트가 댓글을 남길 때마다 서버에서 실시간으로 알림을 보내게 되는데, 이를 통해 게시물에 댓글이 추가될 때마다 관련 정보가 전송되어 실시간 알림을 보낼 수 있음1. 서버 코드1) server.js 설정서버에서 Socket.IO를 초기화하고, 클라이언트 연결을 관리하기 위한 파일을 구성함// server.jsconst socketIo = require("socket.io");let io;function initSocket(server) { io = socketIo(server); io.on("connection", (socket) => { console.log("A user connected"); socket.on("discon..