2024/12 20

라우팅과 라우터에 대하여 본캠프 12/16

POINT 1.   라우팅이란? 간단한 설명! 라우팅은 클라이언트가 요청한 URL을 기반으로 적절한 리소스나 페이지를 반환하도록 경로를 설정하는 과정이다.웹 애플리케이션에서 특정 URL 요청이 들어왔을 때, 해당 요청을 처리할 로직 또는 화면을 결정하는 역할을 한다.라우팅은 클라이언트 사이드와 서버 사이드에서 모두 이루어질 수 있다.  POINT 2.   그러면 라우터란 ?? 라우터는 라우팅을 처리하는 시스템 또는 라이브러리이다.라우터는 요청된 URL과 미리 정의된 경로를 매핑하고, 이에 따라 적절한 작업을 수행한다.   POINT 3.   이러한 라우팅을 사용하는 이유는 뭘까? 라우팅은 사용자 경험을 개선하고 효율적인 애플리케이션 구조를 만드는 데 기여한다.사용자 경험 개선:사용자가 특정 URL을 통해..

카테고리 없음 2024.12.16

웹소켓이란? 본캠프 12/13

POINT 1.   웹소켓이란? 간단한 설명! **웹소켓(WebSocket)**은 클라이언트와 서버 간의 양방향 통신을 실시간으로 가능하게 하는 프로토콜이다.HTTP 요청 후 연결을 유지하며 데이터를 주고받는 방식으로, 기존의 요청-응답 방식보다 효율적이다.이를 통해 서버와 클라이언트는 지속적인 연결 상태에서 데이터 송수신이 가능하다. POINT 2.   이러한 웹소켓을 사용하는 이유는 뭘까? 웹소켓은 기존 HTTP 기반의 통신 방식보다 더 적은 오버헤드로 실시간 양방향 통신이 가능하다.이를 통해 아래와 같은 상황에서 유리하다: ---- 채팅 애플리케이션: 실시간으로 메시지를 주고받는 기능.---- 실시간 데이터 업데이트: 주식, 날씨, 스포츠 경기 스코어 등 빠르게 변하는 데이터를 처리.---- 게임 ..

트랜잭션이란? 본캠프 12/12

POINT 1.   트랜잭션이란? 간단한 설명! **트랜잭션(Transaction)**은 데이터의 완전성을 보장하기 위한 개념으로, 작업을 전부 처리하거나 전부 실패하게 만들어 데이터의 일관성을 보장하는 기능이다이를 통해 사용자는 어플리케이션이 안전하게 실행되도록 구성할 수 있다. POINT 2.   이러한 트랜잭션을 사용하는 이유 트랜잭션을 통해 다양한 문제 상황(예: 은행 계좌이체, 영화 예매 시스템 등)에서 데이터의 일관성을 유지할 수 있다 예를 들어, A 계좌에서 금액을 차감하고 B 계좌로 금액을 추가하는 과정 중 하나라도 실패하면 작업 전 상태로 복구되게 된다. 만약 복구가 되지 않는다면 A 계좌에서 돈이 차감되었는데 B 계좌에 금액이 들어오지 않아 혼란을 야기할 수 있기 때문이다. POINT ..

본캠프 12/11

일단 OSI 7계층에 대하여 한번 복습! POINT 1.   OSI 7 계층이란? ( Open Systems Interconnection Reference Model)의 약자로 컴퓨터 네트워크의 통신을 계층으로 나누어 설명한 것! 쉽게 풀어 설명하자면 네트워크에서 통신이 발생할 때 일어나는 모든 과정을 7단계로 분할한 것을 의미한다! POINT 2.  그렇다면 왜 개발자는 OSI7계층을 알아야 하는가? 왜 알아야 하는가? 에 대한 대답은 일단 네트워크 통신 과정을 왜 7계층으로 나누어야 했는지를 이해해야한다. 통신이 일어나는 과정을 단계별로 알 수 있고, 7 단계 중 특정한 곳에 이상이 생기게 되면 다른 단계와 독립적으로그 단계만 수정이 가능하기 때문이다!! 따라서 개발자들은 이러한 7 계층의 자세한 이..

OSI 7계층에서 데이터링크 계층이란? 본캠프 12/10

일단 OSI 7계층에 대하여 한번 복습! POINT 1.   OSI 7 계층이란? ( Open Systems Interconnection Reference Model)의 약자로 컴퓨터 네트워크의 통신을 계층으로 나누어 설명한 것! 쉽게 풀어 설명하자면 네트워크에서 통신이 발생할 때 일어나는 모든 과정을 7단계로 분할한 것을 의미한다! POINT 2.  그렇다면 왜 개발자는 OSI7계층을 알아야 하는가? 왜 알아야 하는가? 에 대한 대답은 일단 네트워크 통신 과정을 왜 7계층으로 나누어야 했는지를 이해해야한다. 통신이 일어나는 과정을 단계별로 알 수 있고, 7 단계 중 특정한 곳에 이상이 생기게 되면 다른 단계와 독립적으로그 단계만 수정이 가능하기 때문이다!! 따라서 개발자들은 이러한 7 계층의 자세한 이..

본캠프 12/09 프로젝트 발표 날

프로젝트를 진행하면서 팀원들과 함께 겪은 트러블 슈팅의 기록 문제 코드 문제풋살 진행 로직에서본인과 상대방의 아이디를 배열에 담아서 in으로 카드를 받는 기능을 사용할 때,아이디 순서대로 카드가 담기지 않는 문제가 생겼습니다.  해결 과정 이는 프리즈마에서 덱 정보를 받아오면서 먼저 찾은 값을 담아서 순서를 보장하지 않아 생기는 문제였습니다. 덱에서 유저 아이디를 같이 받아온 다음 아이디에 맞게 값을 정리하는 방식으로 해결할 수 있었습니다 해결 코드  ------------------------------------------------------------------------------------------- 문제 코드문제회원가입 api를 구현할 때,Joi 라이브러리를 사용하지 않고 유효성 검사를 하..

카테고리 없음 2024.12.09

본캠프 12/06 TIL

물리 계층이란?  물리 계층은 OSI 7계층 모델의 최하위 계층으로, 데이터 통신의 물리적 전송을 담당한다. 이 계층은 전기적, 기계적 특성을 이용하여 데이터를 비트 단위로 전송하며, 데이터의 내용이나 오류를 고려하지 않고 단순히 전달하는 역할을 한다. 물리 계층의 정의물리 계층(Physical Layer): OSI 모델의 첫 번째 계층으로, 데이터 전송을 위한 물리적 매체와 신호를 정의한다.. 이 계층은 전기적 신호, 광신호, 기계적 특성 등을 통해 데이터를 전송한다. 물리 계층의 기능데이터 전송: 물리 계층은 0과 1로 표현되는 전기적 신호를 비트 단위로 송수신한다이 과정에서 데이터의 내용이나 오류는 고려하지 않는다전송 매체: 물리 계층은 동축 케이블, 광섬유, 무선 신호 등 다양한 전송 매체를 통해..

본캠프 12/05 TIL

오늘 구현한 풋살온라인 프로젝트 API 오늘은 사용자들이 특정 비용을 지불하고 카드를 뽑을 수 있는 API를 작성하였다단일 뽑기와, 5장 뽑기 두 가지 API를 구현하였다 단일뽑기 API 사용자는 500 골드를 소모하여 랜덤으로 카드를 뽑는다뽑은 카드는 UserCard 테이블에 저장되며, 유저의 cash는 자동으로 차감된다.확률 노말 70%레어 25%에픽 4.5%레전더리 0.5% router.post('/users/:user_id/cards', authMidWare, async (req, res, next) => {  const userId = req.params.user_id; // URL 경로에서 user_id 가져오기  const gachaCost = 500; // 가챠 비용  try {    aw..

본캠프 12/4 TIL

오늘 프로젝트에서 구현한 기능 카드 리스트 조회 API를 통해 서버에 저장된 카드 데이터를 클라이언트에 제공. 사용자는 카드의 주요 속성 정보를 확인할 수 있음.   라우터 정의 GET /cards 요청을 처리하는 엔드포인트를 정의.클라이언트가 요청을 보내면 서버가 카드 데이터를 반환.    prisma.card.findMany()를 사용하여 Card 모델의 데이터를 가져옴. select를 사용하여 필요한 필드만 선택:team_color, grade, type, name 등 주요 속성만 반환. 클라이언트에 필요한 데이터만 전달하여 성능 최적화.     전체 흐름클라이언트가 GET /cards 요청.서버가 데이터베이스에서 카드 데이터를 조회.필요한 속성만 선택하여 클라이언트에 JSON 형식으로 응답.에러 ..

카테고리 없음 2024.12.04

본캠프 12/02 TIL

오늘 프로젝트 내용: 풋살 온라인 프로젝트 SA작성 드디어 풋살 온라인 팀프로젝트가 시작되었다.  팀원들과 함께 와이어 프레임을 시작으로 프로젝트를 구상하였다.  간단하게 구상한 와이어프레임이다  기본 메인화면에서 로그인 화면 , 가챠화면 선수 목록 등 다양한 API가 구현될 프론트 화면이다.프론트 쪽은 아무래도 하지 않을 확률이 크지만 아직은 상황을 두고 보아야 할 것 같다. 필수적으로 구현해야 하는 API로는 회원가입/로그인캐시 구매선수 데이터 추가선수 뽑기나만의 팀 만들기게임 기능 등이 있다.  만들 테이블들과 그 사이의 관계를 나타넨 ERD 다이어그램이다. 나는 이번 프로젝트에서  카드와 관련된 API들을 맡았다.[ ] 카드 데이터 추가[ ] 카드 데이터 조회[ ] 카드 뽑기세 가지 API를 맡아..