2024/11 27

비동기 통신이란

비동기 통신(asynchronous communication)이란 클라이언트(브라우저)와 서버 간의 요청과 응답이 독립적으로 이루어지는 방식을 말한다. 클라이언트가 서버에 요청을 보낸 후, 응답이 완료될 때까지 기다리지 않고, 그 동안 다른 작업을 계속할 수 있다.  Synchronous 동기 : 요청을 보낸 후 서버의 응답이 올 때까지 기다리며 서버의 응답이 올 때까지 클라이언트는 다른 작업을 수행하지 못한다.  Asynchronous 비동기 : 요청을 보낸 후 서버의 응답을 기다리지 않고 다른 작업을 수행한다. 서버의 응답이 완료되면 이를 처리하는 콜백 함수나 이벤트가 실행된다. 비동기 통신은 페이지 전체를 다시 로드하지 않고 필요한 데이터만 갱신할 수 있어서 빠르고 끊김 없는 사용자 경험을 제공한다..

카테고리 없음 2024.11.28

ES6

ES6:  자바스크립트 언어 표준이다 (ECMA라는 국제 기구에서 만든 표준 문서인  ECMAScript(=ES)의 6번째 개정판 문서에 있는 표준 스펙)JavaScript는 웹페이지에 동적인 요소를 구현하기 위해서 만들어졌다 JavaScript를 공용으로 작동 시키기 위해서 표쥰 규격이 필요했고 이 때 ECMA 국제 기구에서 ECMAScript standard라는 스크립트 표준을 만들었다.  ECMAScript에 포함되는 항목언어 구문 (구문 분석 규칙, 키워드, 흐름 제어, 객체 리터럴 초기화 등)오류 처리 방법 (throw, try...catch, 사용자 정의 Error 유형 등)자료형 (불리언, 숫자, 문자열, 함수, 객체, ...)전역 객체. 브라우저에서 전역 객체는 window 객체지만, EC..

카테고리 없음 2024.11.27

Spring DI / IoC

IoC (Inversion of Control, 제어의 역전) 객체의 생성과 객체 간의 의존 관계를 개발자가 아닌 프레임워크(Spring 컨테이너)가 관리하는 디자인 패턴이다.  제어의 역전인 이유 :전통족으로 객체는 필요한 의존성을 스스로 생성하거나 명시적으로 호출했다. 그러나 IoC에서는 제어권을 스프링 컨테이너에 위임하여 필요 시 자동으로 주입된다.  IoC 컨테이너 역할:객체의 생성, 관리, 라이프사이클을 담당.의존 관계를 정의하고 객체 간의 결합도를 줄임.DI (Dependency Injection, 의존성 주입)객체가 사용하는 의존성(Dependency)를 외부에서 주입하는 디자인 패턴이다 IoC의 구현 방법 중 하나로, 의존성 주입을 통해 객체 간의 결합도를 낮추고 유연성을 높임. . DI와..

카테고리 없음 2024.11.25

Garbage Collection이란?

Garbage Collection(가비지 컬렉션)은 프로그래밍 언어에서 메모리 관리를 자동화하는 기술로 메모리 누수를 방지하고 효율적인 메모리 사용을 지원한다. Java, Python, C# 같은 고수준 언어에서 사용된다  주요 특징  1. 자동 메모리 관리 : 가비지 컬렉션은 프로그래머가 명시적으로 메모리를 할당하거나 해제하지 않아도 자동으로 메모리를 관리한다. 2. 메모리 누수 방지 프로그래머가 더 이상 사용하지 않는 객체를 수집하여 시스템 자원이 낭비되지 않도록 한다.이를 통해 장기 실행 애플리케이션에서 발생할 수 있는 메모리 누수를 방지한다  루트 객체(Root Object) 추적 루트 객체에서 시작하여 참조 가능한 객체를 추적하고, 참조되지 않는 객체를 수집한다.     장점메모리 관리의 부담을..

카테고리 없음 2024.11.23

REST API가 무엇을 의미하는지 설명하세요.

REST란 소프트웨어 아키텍처 스타일로, 자원을 정의하고 이를 HTTP를 통해 처리하는 방식을 규정한다.  핵심 개념으로는 자원(Resource)모든 데이터  사용자, 게시글, 상품 등은 고유한 URI 로 표현이 된다.  REST의 특징으로는 HTTP 메서드: 자원에 대한 작업을 HTTP 메서드로 표현 (CRUD 작업과 매핑됨).GET : 데이터 조회, POST : 데이터 생성, PUT 또는 PATCH 데이터 수정, (Update)DELETE : 데이터 삭제  HTTP 메서드: HTTP 메서드는 클라이언트가 서버에 요청할 작업의 종류를 지정하는 데 사용된다. GET: 서버에서 데이터를 조회한다. POST: 서버에 새로운 데이터를 생성 PUT: 서버에 있는 자원을 완전히 대체하거나 수정한다. PATCH: ..

카테고리 없음 2024.11.22

멀티쓰레드 멀티프로세스 차이

멀티스레드 (Multi-thread)는 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행한다.  같은 프로세스 내의 스레드들은 공통 메모리 공간을 공유하게 되고 데이터 공유가 빠르고 효율적이다.  병렬처리 : 스레드는 프로세스보다 생성, 전환 비용이 적다.  단점으로는 동기화문제가 있다 공유 자원에 대한 접근을 조율해야한다. 하나의 스레드가 오류를 일르키면 전체 프로세스에 영향을 미칠 수가 있다.   멀티프로세스 (Multi-process) 란  독립적인 메모리 공간: 각 프로세스는 자신만의 메모리 공간을 사용(독립적)안정성 하나의 프로세스에 오류가 발생해도 다른 프로세스에는 영향을 주지 않는다.  프로세스는 **운영 체제(OS)**에서 실행 중인 프로그램을 의미합니다.컴퓨터에서 실행 가능한 프로..

카테고리 없음 2024.11.21

Spring MVC 패턴에서 요청/응답 흐름

Spring MVC(Model-View-Controller)는 클라이언트 요청을 처리하고 응답하는 과정을명확히 분리하여 유지보수성과 확장성을 높이는 디자인 패턴이다 1.클라이언트 요청사용자가 브라우저 또는 어플리케이션을 통해 특정URL로 요청을 보냅니다. 2.DispatcherServlet (프론트 컨트롤러)Spring MVC의 중심에 위치한 DispatcherServlet이 요청을 수신 3.핸들러 매핑 (Handler Mapping)DispatcherServlet은 Handler Mapping을 통해 적절한 Controller를 찾습니다Handler Mapping은 요청 URL과 매핑된 Controller 및 메서드를 결정 4.매핑된 Controller가 호출되어 요청을 처리하고.비즈니스 로직을 실행하..

카테고리 없음 2024.11.20

RDBMS와 NoSQL + DML, DDL, DCL

RDBMS란 Relational Database Management System의 약자로 관계형 테이터베이스 관리 시스템이다.  데이터를 테이블 형태로 저장하고, 테이블들 간의 관계를 정의하여 데이터를 관리하는 시스템이다. 각 테이블들은 행(row)과 열(column) 형태로 저장하고, 이 테이블들 간의 관계를 정의하여 데이터를 관리하는 시스템이다.    NoSQL이란 비관계형 모델이다구조화되지 않은 데이터를 지원한다. 정합성 보다는 가용성과 속도에 초점을 두고 있다. 대규모 데이터 처리와 빠른 읽기/쓰기 작업에 적합하다.  DCL이란  (Data Control Language) 데이터베이스 권한과 보안을 관리하는 명령어이다. 주요 역할로는 데이터 접근 권한 설정 및 제어이며, 주요 명령어로는  GRAN..

카테고리 없음 2024.11.19

Web Server 와 Web Application Server 차이점

Web Server (웹 서버)는 정적인 콘텐츠(HTML, CSS, JavaScript, 이미지)를 제공,작동 방식으로는 : 클라이언트(브라우저)의 HTTP 요청을 받아서 정적 리소스를 전달하거나 요청된 파일을 반환한다.  동적 요청(데이터베이스 조회, 비즈니스 로직 실행 등)은 직접 처리하지 못한다.  Web Application Server 역할로는 동적인 콘텐츠 생성과 서버 비즈니스 로직 처리이다.클라이언트 요청을 받아서 애플리케이션 로직을 실행하고, 동적으로 생성된 결과를 반환한다.  Web Server와 WAS의 협업대부분의 웹 서비스는 Web Server와 WAS를 함께 사용한다. Web Server는 클라이언트의 요청을 받아 정적 콘텐츠를 처리하거나 동적 요청은 WAS로 전달합니다.이렇게 역..

카테고리 없음 2024.11.18