본문 바로가기

분류 전체보기159

[Node.js] ORM은 뭘 써야 할까? 1. 일단 ORM이 무엇인가?ORM(Object-Relational Mapping)은 객체 지향 프로그래밍에서 객체와 관계형 데이터베이스의 데이터를 연결해주는 기술이다.직접 SQL을 작성하지 않고도 데이터베이스 작업을 진행한다.데이터베이스의 테이블을 애플리케이션의 클래스나 객체로 매핑한다.2. ORM의 장점생산성 향상 : SQL을 직접 작성할 필요 없으니, DB작업을 최소화 할 수 있다.유지보수 용이 : DB 관련 코드가 줄어들고, 비즈니스 로직과 DB로직이 분리되어 유지관리가 쉬워진다.재사용성 : ORM을 사용하면 DB시스템을 쉽게 교체하고, 동일한 코드로 여러 DB에 재사용이 가능하다.3. 대표적인 언어별 ORMNode.js의 TypeORM, Sequelize 등Java의 HibernateC#의 En.. 2024. 10. 7.
[암호화] Node.js의 암호화 모듈 1. bcryptBlowfish 암호를 기반으로 둔 암호화 해시 함수입력값을 고정된 길이의 출력값으로 변환입력값을 여러 번 반복해서 암호화하기 때문에 보안성이 매우 높다는 장접이 있지만, 안전한 암호화를 위해 암호화 속도가 느리다는 단점이 있다.특징고유 소금 사용 : 각 비밀번호에 고유한 소금을 추가하여 동일한 비밀번호라도 매번 다른 해시 값을 생성비용 인자(cost factor) : 비용 인자는 해시 연산의 복잡도를 설정하는 값으로, 해시 연산을 여러 번 반복하여 공격에 대한 저항력을 강화.보편적인 사용 : bcrypt는 광범위 하게 사용되며, 많은 시스템에서 지원장점보안성 : 해시 연산에 반복을 적용해 공격자의 비밀번호 추측을 어렵게 만듦.소금 적용: 소금을 적용해 동일한 비밀번호라도 해시 값이 다르.. 2024. 10. 2.
[SQL] 정규화 1. 정규화이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정따라서 여러 개의 릴레이션을 생성하게 된다.이를 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.중복된 데이터를 허용하지 않는 다는 것이며, 정규화를 통해 무결성을 유지할 수 있고, DB의 저장 용량 역시 줄일 수 있다.2. 정규화의 장단점1) 장점DB 변경 시 이상 현상을 제거할 수 있다.정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다.DB와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다.2)단점릴레이션의 분해로 인해 릴레이션 간의 JOIN 연산이 많아진다.질의에 대한 응답 시간이 느려질 수도 있다. 데이터의 .. 2024. 10. 2.
[SQL] 논리적 조인과 물리적 조인 1. 논리적 조인SQL 쿼리에서 JOIN 문을 사용하여 테이블 간의 관계를 표현하는 방식논리적 조인은 데이터베이스가 내부적으로 어떤 방식을 조인을 처리할지를 명시하지 않는다.1) INNER JOIN두 테이블 간의 공통된 값이 있는 행들만 결합하는 조인공통 데이터만 필요할 때 유용하다SELECT employees.name, departments.dept_nameFROM employeesINNER JOIN departmentsON employees.dept_id = departments.dept_id;직원과 부서 정보를 조인하여 직원이 속한 부서의 이름을 함께 표시하고 싶을 때 사용한다.  2) LEFT JOIN왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블과 일치하는 데이터가 있으면 그 값을 결합한다.일.. 2024. 10. 2.