2024/09 20

REST, REST API, RESTful 특징 (간단 글 소개)

오늘 면접 특강을 듣던 도중 만약에 RESTful 한 API를 설계한 적이 있는가에 대한 질문을 받았을 때 순간 RESTful이라는 것이 무엇인지 기억이 하나도 나지 않았기 때문에 오늘 TIL의 주제를 정하게 되엇습니다. REST 정의REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다. (HTTP 프로토콜을 그대로 활용하기 때문인것 같다.)자원을 이름(자원의 표현)으로 구분하여 해..

TIL 2024.09.30

모의 면접 질문 (3가지)

모의 면접 질문 3가지를 답변하기 전에 읽어야 할 것 :인터넷 자료를 그대로 읽는 것은 큰 도움이 되지 않습니다.또한, 단순히 1차원적인 내용을 암기하는 것도 실제 면접에서는 의미가 없습니다.질문에 대해 답변하고, 1차 질문과 연계되는 2차, 3차 질문에 잘 대답하는 것이 중요합니다.따라서 이번 면접에서는 문제를 사전에 공개합니다.단순히 검색하지 말고, 각 단어에 대해 연관되는 질문이 무엇일지 생각하며 답변을 준비해 주세요!IP의 개념과 IP 주소 체계, 서브넷 마스크에 대해 설명해주세요.답변 : IP는 Internet Protocol의 약자로 Protocol은 HTTP와 네트워크 상에서 통신을 하기 위한 약속입니다. 따라서 IP는 인터넷에서 데이터를 주고받기 위한 규약입니다. 인터넷을 통해 데이터를 전..

기타 2024.09.29

express.urlencoded()에 대한 간단한 조사

코딩을 하면서 express.urlencoded()를 가장 자주 쓰이게 되는 코드는 아래의 코드이다.app.use(express.urlencoded({ extended: false }))app.use(express.urlencoded({ extended: false }))는 Express 애프리케이션에서 application/x-www-form-urlencoded 형식의 데이터를 파싱하는 미들웨어이다.이 구문을 통해 클라이언트가 보낸 URL-encoded 데이터(HTML 폼을 통해 제출된 데이터)를 Express 애플리케이션이 처리할 수 있도록 설정합니다.구체적으로 설명해보자면 express.urlencoded()는 URL-encoded 데이터를 파싱해서 req.body 객체에 추가해줍니다.URL-enc..

TIL 2024.09.28

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

NodeCup KPT 회고록 작성

1. Keep: 잘한 점이나 계속 유지해야 할 것. 성공적으로 진행되었거나 긍정적인 영향을 준 것들을 기록합니다.대표자의 효율적인 질문 및 설명: 팀원들이 모르는 부분이 있을 때, 대표자가 질문을 하고 돌아와 팀원들에게 하나씩 설명해주는 방식이 매우 효율적이었습니다.편한 회의 분위기: 편안한 분위기 속에서 자유롭게 회의할 수 있어 긍정적인 결과를 얻을 수 있었습니다.적극적인 회의 참여: 팀원 모두가 적극적으로 회의에 참여하여 활발한 의견 교환이 이루어졌습니다.적극적인 소통과 협력: 팀원들이 각자의 의견을 내고, 부족한 부분은 함께 보완하며, 모르는 부분은 서로 물어보며 해결해 나간 점이 매우 좋았습니다.새로운 기능 도전: 작업이 끝난 후에도 새로운 기능에 도전하는 열정이 있었습니다.팀장의 의견 조율 능력..

회고록 2024.09.25

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