분산 시스템 (Distributed System) 여러 대의 컴퓨터들이 네트워크를 통해 상호 연결되어 동작하는 컴퓨터 시스템 데이터 처리, 자원 공유, 계산 등을 효율적으로 수행 확장성과 신뢰성 향상 데이터 일관성, 분산 트랜잭션, 장애 대응 등을 효과적으로 다루기 위해 적절한 아키텍처, 도구, 기술을 선택하여 구현하는 것이 중요 데이터 일관성 (Data Consistency) 분산 시스템에서 여러 노드 간의 데이터가 항상 일관된 상태를 유지하는 것 다수의 노드에서 동시에 데이터를 수정하거나 읽을 때 일관성 유지 어려움 [해결방법] 일관성 수준 선택 강 일관성 (Strong Cosistency) : 모든 노드에서 일관된 데이터 제공 약 일관성 (Eventual Cosistency) : 시간이 지난 후에는..
마이크로 서비스 (Microservices) 소프트웨어를 작고 독립적인 단위로 나누어 개발, 배포, 운영하는 아키텍처 패턴 전통적인 모놀리식 (monolithic) 아키텍처 대신 여러 개의 작은 서비스로 애플리케이션을 구성 복잡성을 관리하기 위해 적절한 도구와 패턴을 사용하는 것이 중요 유연성, 확장성, 유지보수성을 향상시키는 데 중점 서비스 분리 (Service Seperation) 작은 서비스 단위 각 마이크로 서비스는 특정 업무 기능을 수행하는 작은 단위로 분리 예 : 주문 처리, 사용자 관리, 결제 등 독립적 배포 각 서비스는 독립적으로 배포 가능 다른 서비스와 독립적인 라이프 사이클을 가짐 특정 서비스의 수정 또는 업그레이드가 전체 애플리케이션에 영향을 미치지 않도록 함 통신 패턴 (Commun..
자료구조 (Data Structures) 배열 (Array) 동일한 자료형의 원소를 순차적으로 나열한 자료 구조 인덱스를 통한 빠른 접근, 메모리 공간 효율성 연결 리스트 (Linked List) 각 노드가 데이터와 다음 노드를 가리키는 포인터로 이어진 자료 구조 데이터의 삽입과 삭제가 빈번한 경우, 메모리 동적 할당 스택 (Stack)과 큐 (Queue) 스택 : 후입선출 구조 (LIFO), 함수 호출 큐 : 선입선출 구조 (FIFO), 자원 예약, 작업 대기열 트리 (Tree)와 그래프 (Graph) 트리 : 계층적 구조로 노드가 부모-자식 관계를 가짐, 디렉토리 구조 그래프 : 노드와 간선으로 이루어진 비순환적인 자료 구조, 네트워크, 지도 등 알고리즘 (Algorithms) 탐색 알고리즘 선형 탐..
웹 보안 지속적으로 진화하고 발전하는 분야 다양한 보안 취약점에 대한 방어 수단을 적용하는 것이 중요 개발자는 보안 최적화를 위한 지속적인 교육 및 업데이트를 수행하여 웹 애플리케이션의 안정성 확보 HTTPS (Hypertext Transfer Protocol Secure) HTTP의 보안 버전 데이터를 암호화하여 안전한 통신을 제공 SSL (혹은 TLS) 프로토콜을 사용하여 데이터 암호화 사이트의 신뢰성 검증을 위해 SSL/TLS 인증서 사용 쿠키 (Cookies) 클라이언트에 저장되는 작은 데이터 조각 웹 브라우저를 통해 서버에 상태 정보 전송 세션 유지, 사용자 추적, 로그인 정보 등에 활용 보안을 강화하기 위해 HttpOnly 및 Secure 속성 사용 권장 세션 (Session) 클라이언트와 서..
RESTful API (Representational State Transferful API) Representational State Transfer(REST) 아키테처 원칙을 따르는 웹 서비스의 한 방식 자원을 URI로 표현하고 HTTP 메서드를 통해 해당 자원을 조작하는 방식으로 동작 간결하고 확장 가능하며, 다양한 클라이언트와 서버 간의 상호작용을 용이하게 만드는 목적 RESTful API의 주요 개념 및 특징 자원 (Resource) API에서 제공하는 모든 것을 자원으로 표현 예: 사용자, 제품, 주문 URI(Uniform Resource Identifier) 각 자원은 고유한 URI로 식별 RESTful API에서는 리소스의 표현이 URI에 의해 결정됨 HTTP 메서드(HTTP Methods..