💡 디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것
💡 팩토리 패턴 (factory pattern) 이란? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한
💡 전략 패턴 (strategy pattern) 이란? 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략
💡 옵저버 패턴 (observer pattern) 이란? 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴
💡 프록시 패턴 (proxy pattern) 이란? 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
💡 이터레이터 패턴 (iterator pattern) 이란? 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴
💡 MVC 패턴 이란? 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴
💡 프로그래밍 패러다임 (programming paradigm) 이란? 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론
💡 네트워크란? 노드(node) 와 링크(link) 가 서로 연결되어 있으며 리소스를 공유하는 집합
💡 네트워크란? 노드(node) 와 링크(link) 가 서로 연결되어 있으며 리소스를 공유하는 집합 노드 : 네트워크 장치 서버, 라우터, 스위치 등등 링크 : 유선 또는 무선
⭐️ 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음 ⭐️ 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가능
⭐️ 컴퓨터와 컴퓨터 간의 통신은 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신
💡 HTTP란? 애플리케이션 계층으로서 `웹 서비스` 통신에 사용됨
💡 운영체제 란? 운영체제(OS, Operating System)는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 한정된 메모리나 시스템 자원을 효율적으로 분배하는 일꾼
메모리 계층 ⭐️ 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성됨 👉 계층 위로 올라갈수록 가격⬆️ / 용량 ⬇️ / 속도 ⬆️
💡 프로세스 란? 프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task) 프로그램이 메모리에 올라가 인스턴스화된 것 💡 스레드 란? 프로세스 내 작업의 흐름
💡 데이터베이스 란? 데이터베이스(DB, Database)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 실시간 접근과 동시 공유 가능 💡 DBMS 란? DBMS(Database Management System)는 데이터베이스를 제어 관리
💡 ERD 란? ERD(Entity Relationship Diagram)는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것 시스템의 요구 사항을 기반으로 작성됨 디버깅 또는 재설계가 필요한 경우에도 설계도 역할 담당
트랜잭션 💡 트랜잭션 이란? 트랜잭션(transaction)은 데이터베이스에 하나의 논리적 기능을 수행하기 위한 작업의 단위로, 여러 개의 쿼리들을 하나로 묶는 단위 ACID 특징을 가짐 - 원자성, 일관성, 독립성, 지속성
💡 관계형 데이터베이스 (RDBMS) 란? 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스 SQL 언어로 조작 ex) MySql, PostgreSQL, 오라클, SQL Server, MSSQL 표준 SQL을 지키기는 하지만 각각의 제품에 특화시킨
조인 (join) 이란? 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것 MySQL : JOIN 쿼리 MongoDB : lookup 쿼리