[JavaScript] 실행 환경 비교 (브라우저 vs node.js)
·
JavaScript
브라우저  - 주요 목적      : HTML, CSS, JS를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것  - 브라우저에서만 제공하는 API      · UI 관련 API      · window, document 등 객체  - ES 모듈 표준      → import를 이용하여 다른 파일의 코드를 불러옴 node.js  - 브라우저에서만 작동하던 JS를 외부 응용 프로그램으로 분리함      → 브라우저 없이 작동할 수 있도록 하는 자체 엔진  - 웹을 벗어나, JS를 활용한 서버 등을 만들 수 있게 됨  - 주요 목적      : 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것          → 서버 개발 환경 제공  - node.js에서만 제공하는 API      · 컴퓨터 제어 A..
[CS] 라이브러리와 프레임워크
·
CS
프레임워크  - 특정 기능 구현에 집중해서 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 틀  - 틀 안에서 사용자가 코드를 작성해서 애플리케이션을 개발함  - 앱/서버 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분을 프레임워크가 관리함      → 사용자는 프레임워크가 정해준 형식대로 클래스, 메서드 등을 구현함  - 애플리케이션 코드가 프레임워크에 의해 사용됨      → 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작해야 함   라이브러리  - 특정 기능들을 모아둔 코드, 함수들의 집합  - 코드 작성 시 활용 가능한 도구들  - 라이브러리를 사용하는 애플리케이션 코드는 애플리에이션 흐름을 직접 제어함      → 동작 중에 필요한 기능이 있을 때 능동적으로 라이브러리를 사용함
[HTTP] 데이터 전송 방식 (패킷 스위칭, 서킷 스위칭)
·
CS
패킷 스위칭  - 데이터를 '패킷'이라는 단위로 쪼개서 전송하는 방식  - 패킷      : 네트워크를 통해 전송하기 쉽도록 분할한 데이터 전송 단위        → 분할되어 전송된 후, 수신지에서는 원래의 파일로 다시 재조립됨  - Store and Forward 방식      : 다음 링크로 전송하기 전에 저장한 뒤 전달하는 방식  - 라우팅 알고리즘을 이용하여 경로를 설정하고, 중간의 라우터들을 거쳐 최종 목적지에 도달함  - 패킷을 다음 라우터로 이동하기 위해 큐에서 대기함      : 만약, 수용할 수 있는 큐의 범위를 초과하면 손실이 발생함  - HTTP 통신은 패킷 스위칭 방식으로 데이터를 전달함 서킷 스위칭  - 하나의 회선을 할당받아 데이터를 주고받는 방식  - 먼저 통신을 위한 연결을 ..
[Spring Boot] JPA 기초 개념
·
Java/Spring Boot
JPA (Java Persistence API)  - Java 기반의 ORM 프레임워크를 쉽게 사용하기 위한 인터페이스의 모음  - ORM (Object Relational Mapping 객체-관계 매핑)      : Java 객체를 DB 테이블로 변환하는 것 #  영속성 컨텍스트  - 영속성 : 프로그램이 종료되더라도 데이터가 사라지지 않는 특성  - 영속성 컨텍스트 : 데이터를 영구 저장하는 논리적인 환경  - 영속화 : 영속성 컨텍스트에 저장하는 것 #  엔티티 매니저  - 엔티티 : 테이블에 대응하는 하나의 클래스  - 엔티티 매니저 : 엔티티들을 영속성 컨텍스트에 저장해두고, 해당 엔티티들의 생명주기를 관리함  - 엔티티 생명주기      i. 비영속 : 영속성 컨텍스트에 저장되지 않음     ..
[CS] 스택 오버플로우 (Stack Overflow)
·
CS
스택 오버플로우 (Stack Overflow)  - 스택형 자료 구조에서 오버플로우 현상이 발생하는 것 #  스택 (Stack)  - 가장 나중에 입력된 자료가 가장 먼저 출력됨 (LIFO, Last In First Out)   - 요소 추가하기 (push)  - 요소 삭제하기 (pop) #  오버플로우 (Overflow)  - 저장 용량을 초과하는 양의 데이터가 입력되었을 때 발생하는 현상  - 기존 자료 중 일부가 지워지는 문제