목록분류 전체보기 (91)
개발자공부일기
예전에 DOM의 개념에 대해서는 글을 썼던거 같은데 자세히 메서드까진 다룬적이 없는거 같아서 복습겸 알아봤다. DOM(Document Object Model)은 HTML과 XML 문서의 구조를 나타내는 객체 모델입니다. DOM을 통해 JavaScript는 HTML 문서와 상호작용하고, 문서의 요소를 변경하거나 조작할 수 있습니다. DOM은 웹 페이지를 동적으로 수정할 수 있도록 만들어져 있으며, 페이지 로드 후에도 JavaScript로 실시간으로 페이지를 업데이트할 수 있게 해줍니다.1. DOM의 기본 개념DOM은 문서의 구조를 트리 형태로 표현하며, 각 HTML 태그나 요소는 DOM 트리의 노드로 나타냅니다. DOM 트리에서 루트는 태그이고, 그 아래에 여러 자식 노드가 있습니다. 예를 들어: ..
아이템 구매 API를 만드는데 만만치가 않다. 아이템을 구매하면 어떤 아이템을 구매할건지, 어떤 캐릭터가 구매하는지 조회하고아이템의 가격과 갯수만큼 캐릭터의 잔액을 차감시키고 아이템이 인벤토리에 속하도록 구현하고 있는데 아이템의 칼럼안에 어떤 인벤토리에 들어가있는지 인벤토리ID를 넣어서 표현했는다. 근데 생각해보니 그렇게 하면 다른 캐릭터로 동일한 아이템을 구매하면 그 아이탬의 인벤토리ID가 바뀌어서 존재하는 모든 아이템을(다른캐릭터의 인벤토리에 들어있는거 포함)가져오게 되더라. 그래서 스키마를 갈아 엎어야겠다.model CharInventory { charInvenId Int @id @default(autoincrement()) @map("charInvenId") charId I..
Prisma에서 트랜잭션을 사용하는 방법과 작동 방식을 더 자세히 설명하겠습니다. 트랜잭션의 개념, Prisma에서의 구현 방식, 코드 동작 원리, 유용한 기능, 그리고 실제 사용 사례까지 구체적으로 다룹니다. 트랜잭션의 기본 개념트랜잭션은 데이터베이스에서 여러 작업을 하나의 단위로 묶어서 실행하는 것입니다.모든 작업이 성공하면 커밋(Commit)되고, 하나라도 실패하면 롤백(Rollback)되어 데이터베이스가 원래 상태로 돌아갑니다.트랜잭션은 데이터베이스의 ACID 속성을 보장합니다:Atomicity(원자성): 작업은 모두 성공하거나 모두 실패해야 합니다.Consistency(일관성): 트랜잭션 후에도 데이터는 유효한 상태를 유지해야 합니다.Isolation(격리성): 한 트랜잭션의 작업이 다른 트랜잭..
OSI 7계층(Open Systems Interconnection 7-Layer Model)은 네트워크 통신을 이해하고 설계하는 데 중요한 이론적 모델로, 각 계층이 맡는 기능을 명확하게 구분하여 복잡한 네트워크 시스템을 관리하기 쉽게 만듭니다. OSI 모델은 국제 표준화 기구인 ISO(International Organization for Standardization)에서 정의하였으며, 네트워크 통신을 7개의 계층으로 나누어 설명합니다. 이 모델은 각 계층이 명확한 역할을 가지며, 각 계층에서 발생하는 기능을 잘 이해하고 디버깅할 수 있도록 돕습니다.각 계층의 기능과 동작 방식에 대해 더 자세히 설명하겠습니다.1. 물리 계층 (Physical Layer)기능:물리 계층은 네트워크 장비 간의 실제 전송 ..
express-session은 Express.js 애플리케이션에서 세션을 관리하기 위한 미들웨어입니다. 세션은 사용자가 웹사이트에 접속한 후, 서버와 사용자 간에 상태 정보를 유지할 수 있게 해줍니다. 예를 들어, 로그인 상태나 장바구니 정보를 저장하는 데 유용합니다.주요 개념세션 (Session): 서버 측에서 클라이언트와 관련된 정보를 저장합니다. 각 클라이언트는 고유한 세션 ID를 가지고 있으며, 이 ID는 쿠키로 클라이언트 측에 저장됩니다.세션 ID: 클라이언트와 서버 간의 세션을 식별하는 고유한 값입니다.세션 데이터: 사용자의 세션에 저장되는 실제 데이터입니다. 예를 들어, 로그인한 사용자 정보나 사용자의 활동 기록이 포함될 수 있습니다.기본 사용법설치 먼저 express-session을 설치합..
Prisma는 Node.js 환경에서 사용되는 ORM(Object-Relational Mapping) 도구로, 데이터베이스와 애플리케이션 간의 상호작용을 간편하고 효율적으로 만들어줍니다. 기존 ORM과 달리 Prisma는 타입 안전성, 자동 완성 지원, 생산성 향상을 강조하며, 관계형 데이터베이스와 함께 작업할 때 특히 강력합니다. Prisma의 구성 요소Prisma는 다음 세 가지 주요 구성 요소로 이루어져 있습니다:(1) Prisma ClientPrisma의 ORM 도구로, 데이터베이스와 상호작용하기 위한 TypeScript/JavaScript 코드입니다.타입 안전한 쿼리 작성을 지원하며, 자동 완성 기능으로 생산성을 높여줍니다.prisma generate 명령어를 통해 데이터베이스 스키마를 기반으..
벌써 시간이 한달이 지났다. 이번주는 정신없이 강의만 들었고 머릿속에 집어넣느라 머리에 쥐가 나고있다. 그래도 이번주에 본격적으로 AWS에서 EC2와 RDS를 구매해서 API들을 구현해보고 데이터베이스에 연결해서 Insomnia로 요청하고 확인해보고 하는게 재밌었다. 그냥 강의가 많을 뿐이지 재밌던거 같다. 과제 발제 할때까지만 해도 이걸 어떻게 해야하나싶었는데 이제와서 다시 읽어보니 할만하게 느껴졌다. 강의에서 본게 머릿속에 다는 아니어도 어느정도 남아있는게 느껴졌다. 이제 주말도 반납하고 강의 마저 듣고 다음주 월요일부터는 제대로 과제 시작해보려 한다. 이번주 너무 졸렸는데 잠 좀 제대로 자고 너무 피곤하면 과감하게 쉬어야겠다. 졸린상태에선 집중이 안된다. 아무튼 정신없이 한달을 달려왔고다시 내가 당..
RDBMS (Relational Database Management System)RDBMS는 데이터를 구조적으로 관리하는 소프트웨어 시스템으로, 데이터를 테이블 기반으로 저장, 조회, 수정, 삭제하는 기능을 제공합니다. 관계형 모델을 기반으로 하며, 데이터를 관리하는 데 있어 SQL(Structured Query Language)을 사용하는 것이 핵심입니다.1. RDBMS의 핵심 개념테이블(Table): 데이터를 저장하는 기본 단위로, 행과 열로 구성됩니다.행(Row): 데이터의 한 레코드. 각 행은 특정 데이터를 나타냅니다.열(Column): 속성을 나타냅니다. 예를 들어, "이름", "나이", "주소" 같은 필드가 열로 표현됩니다.기본 키(Primary Key): 각 행을 고유하게 식별하는 열입니다...