전체 글(45)
-
React 배우기 전 용어 정리(추상화, 의존성 주입, 오버라이딩 등)
추상화(Abstract)와 객체지향 프로그래밍(OOP) : 추상화와 객체지향 프로그래밍은 프로그래밍에서 굉장히 밀접한 관계를 가지고 있다. 추상화는 복잡한 현실 세계의 개념이나 로직을 단순화하여 모델링하는 과정이며, 객체지향 프로그래밍은 이러한 추상화를 코드로 구현하는 방법 중 하나이다. 추상화(Abstract) 단순화: 복잡한 로직이나 데이터를 더 쉽게 다룰 수 있는 형태로 단순화함 일반화: 공통적인 특성이나 기능을 묶어 이름을 붙임 (예: '동물'은 '고양이', '개' 등 여러 생물을 일반화한 개념) 인터페이스: 어떤 객체가 무엇을 할 수 있는지, 어떤 메서드를 가지고 있는지 정의하지만, 그 메서드가 어떻게 동작하는지는 정의하지 않음 객체지향 프로그래밍(Object-Oriented Programmin..
2023.10.17 -
JWT를 사용하여 사용자를 인증(로그인, Login)하는 과정
JWT(JSON Web Token) 개념 : 인증 정보를 담은 짧고 암호화된 문자열. 길고 복잡하게 말하면 JWT는 클레임을 JSON 객체로 표현하고 이를 컴팩트하고 URL 안전한 문자열로 인코딩하는 웹 표준(RFC 7519)이락 할 수 있다. JWT는 세 부분으로 구성 헤더 (Header): 토큰의 타입과 사용된 암호화 알고리즘을 정의 { "alg": "HS256", "typ": "JWT" } 페이로드 (Payload): 여기에는 "클레임"이 포함. 클레임은 엔터티와 관련된 정보입니다. 클레임은 등록된 (예: iss, exp, sub 등의 공식적인 이름이 있는), 공개 (일반적으로 사용자가 정의하는), 그리고 개인 (데이터의 사용자와 수신자 사이에 합의된) 클레임으로 나 { "sub": "1234567..
2023.09.22 -
DB, SQL, DBMS, RDBMS에 대한 개념 이해 / MySQL 설치와 기본 명령어
DB(Data Base, 데이터베이스) : 기본적으로 '정보'를 '저장'하는 공간. 구조화된 데이터를 저장, 관리, 검색할 수 있게 해주는 컴퓨터 시스템. 데이터베이스를 사용하면 대량의 데이터를 효율적으로 관리하고 필요한 정보를 빠르게 찾아낼 수 있음 구조화된 데이터 저장: 데이터베이스는 데이터를 테이블, 행, 열의 형태로 저장한다. 각 테이블은 서로 다른 종류의 정보를 포함하며, 행과 열은 해당 정보의 상세 내용을 나타냄 데이터 무결성: 데이터베이스는 데이터의 정확성과 일관성을 유지하기 위한 규칙과 제약 조건을 설정할 수 있음. 예를 들어, '나이' 필드에 문자열 값을 입력하는 것을 방지할 수 있다 데이터의 중복 최소화: 데이터베이스는 중복 데이터를 최소화하고, 한 번만 저장하므로 데이터 관리가 간편해..
2023.09.18 -
웹서버 - 레이어드 아키텍처(Layered Architecture)
레이어드 아키텍처(Layered Architecture) Controller -> Service -> Repository -> Entity or Model의 패턴은 일반적으로 "레이어드 아키텍처(Layered Architecture)" 또는 "N-Tier Architecture"라고 불린다. 이 아키텍처에서 각 레이어는 다음과 같은 역할을 함 Controller: 사용자의 요청을 받아 처리하는 역할. 요청을 받으면 적절한 서비스 로직을 호출하고 응답을 반환 Service: 비즈니스 로직을 담당. 컨트롤러로부터 요청을 받으면 필요한 비즈니스 규칙을 실행하고, 데이터 접근을 위해 리포지토리를 호출할 수 있음 Repository: 데이터베이스와의 CRUD(Create, Read, Update, Delete) ..
2023.09.14 -
Express의 역할, RESTful API
Express : Express는 Node.js에서 사용하는 웹 서버 프레임워크. 그러나 디렉토리 구조가 정해진 프레임워크의 일반적인 특성을 따르지 않기 때문에 프레임워크라 부르기도 애매하고 특정 기능들을 모아놓은 패키지이며 폴더구조 제약을 걸지 않는 '라이브러리'라고 부르기엔 기능이 너무 많다. 따라서 프레임워크, 라이브러리로 딱 정의하긴 어렵다 * API, 프레임워크, 라이브러리 구분법 정의 API(Application Programming Interface): API는 소프트웨어 컴포넌트 간의 상호작용을 가능하게 하는 규약 또는 명세. 애플리케이션들이 서로 통신하거나, 어떤 프로그래밍 언어나 시스템의 기능들을 이용하기 위한 인터페이스 프레임워크(Framework): 소프트웨어 개발의 특정 부분을 단..
2023.09.04 -
Socket개념 파악, 3-way handshake, 응용계층에서 데이터를 객체화시킨다는 것, TCP와 HTTP의 차이점 등...
socket : 단순히 말하면 파일이다. 세션이 맺어지면 소켓이라는 특정 파일이 생긴다고 생각할 것. 100명이 접속하면 100개의 소켓이 생성된다. 4계층에 접속한 정보들을 소켓이라는 키워드에 저장하는구나라고 이해 "세션이 맺어지면 그걸 브라우저에서 로컬스토리지에 저장하는 것처럼 영구적으로 저장하고 싶은데 메모리는 좀 그렇고 소켓이라는 파일을 통해서 해당 접속한 사람들에 대해 정보를 저장하는 용도로 쓴다. "정도로 이해한다. socket 통신 - 네트워크 상에서 데이터를 주고받기 위한 매커니즘 중 하나로, 주로 두 컴퓨터 간의 저수준의 연결을 맺어 실시간으로 데이터를 주고받을 때 사용 웹소켓 - HTTP 위에서 동작하는 특별한 종류의 소켓으로, 서버와 클라이언트 간의 실시간 양방향 통신을 가능하게 함 ..
2023.09.04