TIL 27

JavaScript 다양한 디자인 패턴 (간단하게)

1. Factory Pattern요약: 객체 생성 로직을 별도의 메서드로 캡슐화하여, 객체 생성 과정을 쉽게 관리할 수 있는 패턴입니다. 객체를 생성할 때 직접 클래스를 호출하지 않고, 팩토리 메서드를 통해 객체를 반환받습니다.왜 사용하는지?: 객체 생성 방식이 복잡하거나, 여러 종류의 객체를 유연하게 생성해야 할 때 사용합니다.예시:class Car { constructor(brand) { this.brand = brand; } drive() { console.log(`${this.brand} is driving`); }}class CarFactory { static createCar(type) { switch (type) { case 'Tesla': re..

TIL 2024.09.26

OSI 7계층 응용 계층 (Application Layer)에 대하여 (자세하게)

응용 계층(Application Layer)이란?응용 계층은 OSI 7계층 모델의 가장 상위 계층으로, 사용자가 네트워크 상에서 직접적으로 사용하는 애플리케이션들과 통신하는 부분을 담당합니다. 응용 계층의 주요 목적은 사용자가 네트워크를 통해 접근하는 서비스를 제공하는 것이고, 이는 이메일, 웹 브라우징, 파일 전송, 원격 로그인 등의 다양한 네트워크 서비스를 포함하며, 네트워크 상의 애플리케이션 프로세스 간의 통신을 규정합니다.응용 계층에서 사용되는 다양한 프로토콜들은 실제 데이터를 처리하는 애플리케이션 프로그램들과 하위 계층 간의 인터페이스 역할을 하며, 응용 프로그램이 네트워크 상에서 데이터를 주고받는 데 필요한 규칙들을 정의합니다.사실 OSI 7계층 모델은 이미 시장에서 도태된 네트워크 시스템이라..

TIL 2024.09.25

OSI 7계층 응용 계층 (Application Layer)에 대하여 (간단 소개)

응용 계층(Application Layer)이란?응용 계층은 OSI 7계층 모델의 가장 상위 계층으로, 사용자가 네트워크 상에서 직접적으로 사용하는 애플리케이션들과 통신하는 부분을 담당합니다. 응용 계층의 주요 목적은 사용자가 네트워크를 통해 접근하는 서비스를 제공하는 것이고, 이는 이메일, 웹 브라우징, 파일 전송, 원격 로그인 등의 다양한 네트워크 서비스를 포함하며, 네트워크 상의 애플리케이션 프로세스 간의 통신을 규정합니다.응용 계층에서 사용되는 다양한 프로토콜들은 실제 데이터를 처리하는 애플리케이션 프로그램들과 하위 계층 간의 인터페이스 역할을 하며, 응용 프로그램이 네트워크 상에서 데이터를 주고받는 데 필요한 규칙들을 정의합니다.응용 계층의 주요 프로토콜과 기능응용 계층에서는 여러 가지 프로토콜..

TIL 2024.09.24

Status Code 종류별로 한줄로 설명하기 - 틀린 부분 또는 추가할 부분 지적 O

1xx (Informational Responses)1xx 코드는 요청을 수신하였으며 처리가 진행 중임을 나타냅니다.100 Continue: 클라이언트가 요청을 계속해도 된다는 신호.101 Switching Protocols: 서버가 클라이언트의 요청에 따라 프로토콜을 전환.102 Processing (WebDAV): 서버가 요청을 수신하고 있지만 아직 응답을 제공할 수 없음.2xx (Successful Responses)2xx 코드는 요청이 성공적으로 완료되었음을 나타냅니다.200 OK: 요청이 성공적으로 처리되었음을 나타냄.201 Created: 요청에 의해 리소스가 성공적으로 생성됨.202 Accepted: 요청이 접수되었지만, 아직 처리되지 않음.203 Non-Authoritative Inform..

TIL 2024.09.24

Repository Pattern 간단한 소개

개요Repository Pattern은 데이터 접근을 추상화하여 비즈니스 로직과 데이터 저장소 간의 의존성을 줄이는 디자인 패턴입니다. 이 패턴은 데이터 소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 캡슐화하여 코드의 유지보수성과 테스트 용이성을 향상시킵니다.주요 개념Repository: 데이터에 대한 CRUD 작업을 수행하는 인터페이스 및 구현체를 정의합니다.Entity: 데이터베이스의 테이블과 매핑되는 클래스입니다.Unit of Work: 여러 리포지토리에서 발생하는 데이터 변경 작업을 하나의 트랜잭션으로 묶는 패턴입니다.장점분리된 관심사: 비즈니스 로직과 데이터 접근 로직이 분리되어 코드가 더 깔끔해집니다.테스트 용이성: Mock 객체를 사용해 리포지토리를 대체함..

TIL 2024.09.23

초보자를 위한 깃허브 팀원끼리 연결, PullRequest, Merge 하는 법 (feat. SubBranch, VSCODE)

팀 프로젝트를 하던 도중 Main Branch와 SubBranch를 나눠서 작업을 하고 MainBrach에서 모든 팀원들이 동일한 코드에서 시작을 하려고 하던 도중 간단한 깃허브 사용법에 대해서 알아보려고 합니다. 1. 팀원들이 팀장의 깃허브 연결하기 => 1) 팀장이 깃허브 repository를 생성해 줍니다.  => 2) main을 눌러서 Find or create a branch에 원하는 서브 브렌치를 이름을 적은 후 Enter를 눌러줍니다. => 3) 같이 일할 동료를 초대해줍니다. Settings -> Collaborators 들어가 줍니다. => 4) 밑에 내려보면 Add people을 눌러줍니다. => 5) 초대하려는 사람의 이메일 또는 깃허브 풀 네임을 받아서 검색하고 Add to repo..

TIL 2024.09.19

OSI 7계층 중 전송 계층에 대하여

1. 전송 계층에 대하여 (OSI 4계층)    -> 전송 계층은 컴퓨터가 데이터를 전달받고 어떤 애플리케이션에 전달해야 하는지 판단 후 해당 애플리케이션에 전달할 수 있도록 해줍니다.         -> 그 전 단계인 네트워크 계층에서는 데이터를 전달하고, 전승 계층에서는 데이터가 제대로 도착했는지 확인합니다.         -> 이제 좀더 자세하게 이야기 해보도록 하겠습니다. 전송 계층은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공합니다.         -> 전송 계층의 프로토콜은 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적 통신을 제공합니다.         -> 논리적 통신은 애플리케이션 관점에서 보면 프로세스들을 동작시키는 호..

TIL 2024.09.11

에러 핸들러와 미들웨어에 관하여 & 데이터 유효성 검증 라이브러리 Joi

게임 서버 개발을 하면서 미들웨어와 에러 핸들러는 너무나도 중요한 개념인 것 같아서 다시 공부하게 되었습니다.1. 미들웨어 (Middleware) -> 1) 미들웨어 기본 개념      -> 미들웨어란 웹 서버에서 요청을 받을때, 모든 요청에 대한 공통적인 처리를 하고 싶을 수 있습니다. 이 때 필요한 것이 바로 미들 웨어 입니다. 여기서 미들웨어는 서버의 요청 - 응답 과정에서 중간에 위치하여 특정 기능을 수행하는 함수라고 보면 됩니다. 예를 들어, 모든 요청에 대해서 로그를 남기거나, 특정 사용자만 API를 접근(Authentication & Authorization)하게 하고 싶을 때도 미들 웨어를 사용합니다. 또한, 사용자가 웹 페이지에서 Form을 통해 전송한 데이터를 서버에서 쉽게 파싱(Bod..

TIL 2024.09.10

OSI 7계층 네트워크 계층에 대하여 (IP의 개념, 서브넷 마스크, 동적 IP 주소, 라우팅)

네트워크 계층이란? 네트워크 간의 연결이 있으므로 인터넷이 가능합니다. "네트워크 계층"은 별개의 네트워크 간에 데이터 패킷을 주고 받음으로써 이러한 연결이 만들어지는 인터넷 통신 프로세스의 일부입니다. 네트워크 계층은 OSI 7계층 중 3계층 입니다. 인터넷 프로토콜(IP)는 이 계층에서 이용되는 주요 프로토콜 중 하나이며 라우팅, 검사, 암호화를 위해 다수의 다른 프로토콜도 사용됩니다. 네트워크 계층에 대한 예로 철수와 영희가 동일한 LAN에 연결되어 있다고 가정하고, 철수가 영희에게 메시지를 보내려 한다고 생각해 보겠습니다. 철수는 영희와 동일한 네트워크에 있으므로 네트워크를 통해 직접 영희의 컴퓨터에 메시지를 보낼 수 있을 것 입니다. 하지만 영희가 다른 지역으로 이사를 가게 되어 다른 LAN에 ..

TIL 2024.09.09

Sparta 챌린지 반 - 기본 실력 체크 2탄

1. DOM 조작DOM이 무엇인지 설명할 수 있다.DOM이란 The Document Object Model로 HTML, XML 문서의 프로그래밍 interface이다.DOM은 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다.이것을 풀어서 설명하자면 웹 페이지는 일종의 문서(Document)이다.이 문서는 웹 브라우저를 통해 그 내용이 해석되어 웹 브라우저 화면에 나타나거나 HTML 소스 자체로 나타나기도 한다.DOM은 동일한 문서를 표현하고, 저장하고, 조작하는 방법을 제공한다.DOM은 웹 페이지의 객체 지향 표현이며, JavaScript와 같은 ..

TIL 2024.09.06