Cute Spinning Flower Blue
DB | 3-Tier
·
BE/DataBase
3-Tier3-Tier 아키텍처는 애플리케이션을 세 가지 계층으로 나누어 구성하는 구조를 말함프리젠테이션 계층(Presentation Layer): 사용자 인터페이스(UI) 및 사용자와의 상호작용을 처리비지니스 로직 계층(Business Logic Layer): 애플리케이션의 핵심 로직과 데이터 처리 규칙을 철데이터 계층(Data Layer): 데이터 베이스의 상호작용 및 데이터 관리를 처리 1-Tier 아키텍처구조애플리케이션과 데이터가 모두 한 시스템에서 실행됨데이터베이스, 애플리케이션 로직, UI가 모두 같은 환경에서 운영장점설치와 배포가 간단: 모든 기능이 하나의 시스템에서 실행되므로 설정이 간단낮은 비용: 추가적인 네트워크 인프라나 서버가 필요하지 않음속도 우수: 네트워크 통신이 필요 없기 때문에..
DB | ORM과 Prisma
·
BE/DataBase
데이터베이스데이터를 체계적으로 저장하고 관리하는 시스템데이터를 효율적으로 삽입, 수정, 삭제, 조회할 수 있는 구조를 제공종류관계형 데이터베이스: MySQL, PostgreSQL, SQLite (테이블과 SQL을 사용)비관계형 데이터베이스: MongoDB, Redis (NoSQL, 유연한 데이터 저장 구조) ORM객체 지향 프로그래밍 안에서 데이터베이스와 상호 작용하기 위한 기술데이터베이스의 테이블을 코드에서 객체로 매핑하여 SQL을 직접 작성하지 않고도 데이터베이스 작업을 수행 할 수 있음예: Sequelize(Node.js), Prisma(Node.js), Hibernate(Java), Django ORM(Python) 장점생산성 향상SQL 쿼리를 직접 작성하지 않아도 되고, 객체 기반으로 데이터베이..
Cookie, Session, Token
·
BE/Node.js & Express
Cookie, Session, Token은 모두 클라이언트와 서버 간 데이터를 저장하거나 전달하기 위한 메커니즘웹 애플리케이션에서 인증 및 상태 관리를 할 때 주로 사용됨 Cookie정의클라이언트(브라우저)에 저장되는 작은 데이터 조각서버가 생성해서 클라이언트로 전달하며, 클라이언트는 이를 서버에 요청할 때마다 포함함특징데이터가 클라이언트 측에 저장됨주요 사용 사례: 사용자 인증 정보, 세션 ID 저장, 자동 로그인작동 방식클라이언트가 서버에 요청을 보냄서버는 쿠키를 생성하여 클라이언트에게 응답으로 보냄클라이언트는 쿠키를 저장하고 이후 요청에 쿠키를 포함하여 서버로 전송장단점장점: 서버 부담이 적음, 상태 정보 유지 가능단점: 클라이언트에 저장되므로 보안 취약점 존재(조작 가능) Session정의사용자의..
OAuth 2.0
·
BE/Node.js & Express
OAuth 2.0사용자의 인증과 권한 부여를 처리하기 위한 표준 프로토콘사용자가 자신의 자격 증명을 공유하지 않고도, 타사 애플리케이션이 사용자의 리소스(예: 이메일, 프로필 정보)에 접근할 수 있도록 권한을 부여주로 SNS 로그인이나 API 접근 제어와 같은 환경에서 사용됨HTTP 프로토콜을 기반으로 작동하여, 보안, 유연성, 확장성을 제공 OAuth 2.0의 구성 요소Resource Owner (리소스 소유자)사용자를 의미자신의 데이터를 제공할 권리를 가지고 있으며, 타사 앱이 데이터에 접근하도록 허용Client (클라이언트)리스소에 접근하려는 애플리케이션예: 타사 애플리케이션(카카오나 네이버, 구글 로그인을 사용하는 앱)Resource Server (리소스 서버)리소스 소유자의 데이터를 저장하고 관..
네트워크 | CORS와 SOP
·
BE/Node.js & Express
CORSCross-Origin Resource Sharing, 교차 출처 리소스 공유 웹 애플리케이션이 한 출처(origin)에서 로드된 리소스가 다른 출처의 리소스에 접근할 수 있도록 허용하는 방식브라우저는 기본적으로 보안 정책으로 인해 서로 다른 출처에서 데이터를 주고받지 못하게 함CORS는 이를 해결하는 메커니즘으로, 서버가 허용된 출처(origin)를 명시하여 특정 클라이언트에만 리소스 접근을 허용하도록 함 필요성현대 웹 애플리케이션은 외부 API나 다른 도메인의 리소스에 자주 접근해야 함이를 위해 CORS를 사용하여 다른 출처의 안전하게 요청하고 사용할 수 있도록 함 SOPSame-Origin Policy, 동일 출처 정책 웹 애플리케이션 보안을 위한 브라우저 정책한 출처에서 로드된 스크립트가 ..
네트워크 | HTTP와 HTTPS, 보안 메커니즘
·
BE/Node.js & Express
HTTPSHTTPS (Hypertext Transfer Protocol Secure)는 HTTP의 보안 버전으로, 인터넷에서 정보를 안전하게 주고받기 위해 SSL/TLS 프로토콜을 사용하여 암호화된 통신을 제공함HTTPS는 웹 서버와 클라이언트 간의 데이터 전송을 보호하여 제3자가 데이터를 도청하거나 조작하지 못하게 함대칭 키 방식, 비대칭 키 방식 모두 사용 HTTPS의 주체클라이언트: HTTPS 프로토콜로 사이트를 이용하고 싶음서버: HTTPS 프로토콜로 사이트를 제공하고 싶음인증 기관: 안전한 사이트인지 인증해주는 역할 인증 방식서버가 인증기관에 자신의 공개키를 보냄 (서버 -> 인증 기관)인증 기관은 해당 서버가 신뢰할 수 있는 서버인지 확인 (인증 기관)신뢰할 수 있다고 판단 되면 인증 기관의 ..