본문 바로가기

Computer Science25

WebApplication 이해 웹 어플리케이션 : 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 프로그램. 웹 서버, 웹 어플리케이션 서버모든 것이 HTTP - 과거 초기의 웹 어플리케이션은 Client - Server 컴퓨팅 환경에서의 각 응용 소프트웨어마다 UI를 가지고 있었으며, 사용자 PC마다 따로 설치했어야 했다.- 현재는 HTTP 라는 통일된 프로토콜을 사용하지만, 과거에는 회사마다 독자적인 통신 프로토콜을 사용했었기 때문이다.- 대개 독자적인 규격을 가지는 것은 회사입장에서 매우 큰 이득이지만, Web 에서 만큼은 매우 큰 비용을 초래하여 생산성이 떨어진다는 문제가 발생함.- HTTP 프로토콜의 정립으로 인해 웹 어플리케이션을 제공하는 기업의 유지 비용이 줄었다. * 웹 서버 (Web Server)- H.. 2024. 12. 18.
Spring과 Spring boot * Spring의 특징 1. DI (Dipendency Injection) : Spring 프레임워크에 의존성을 주입하면서 객체 간 결합을 느슨하게 하여 코드의 재사용성 증가 및, 단위 테스트 용이하다.2. IOC (Inversion Of Control) : 의존성 주입의 한 형태로, 객체의 생성 및 생명 주기를 제어하는 책임을 개발자가 아닌 프레임워크에 위임한흔 것을 말한다. 개발자는 객체의 구체적인 구현에 의존하지 않고 객체의 인터페이스에만 의존할 수 있다. 이는 코드의 재사용성과 유지보수성을 향상 시킬 수 있다. - Spring은 IoC를 구현하는 다양한 방법을 제공하는게 가장 일반적인 방법은 컨테이너에 객체를 등록하고 컨테이너에서 객체를 주입하는 방법이다. 컨테이너는 객체의 생명주기를 관리하고, .. 2024. 12. 18.
스키마란? 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 메타데이터 :- 데이터에 대한 데이터로 어떤 목적을 가지고 만들어진 데이터- 상세히 설명하면, 데이터베이스를 구성하는 데이터 개체(Entity) 속성(Attribute) 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.- 비슷한 특징을 가진 ERD - ERD 다이어 그램 : 객체-관계 모델로 테이블간의 관계를 설명해주는 다이어그램이다. 테이블의 속성들을 상사헤 표시하기도 한다. * 스키마와 ERD의 차이점은 무엇일까? - 간단히 말하면 , ERD(Entity Rellationship Diagram)은 설계도이고, 스키마는 구현의 차이이다. 데이터베이.. 2024. 12. 18.
B tree, B+ tree 개념 * B tree - 데이터가 정렬되어 있는 트리로 2진트리와 비슷하지만, 자식 노드가 2개 이상 가능한 트리. 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있는 것이 장점. * 용어 - node : 사각형으로 표시된 한 개의 데이터 - root node : 가장 상단의 노드 - branch node : 중간 노드들 - leaf node : 가장 아래 노드 * 특징 1. 균일성 : 어떤 값에 대해서 O(logN) 값을 얻을 수 있음. 2. 균형트리 : 루트로 부터 리프까지의 거리가 일정한 트리 구조. 3. 항상 정렬된 상태. 대소 비교에 문제가 없음. * 삽입 1. 빈 트리일 경우 root node를 만들어 삽입함. 2. key가 들어갈 리프노드를 탐색한다. 3. 해당 리프 노드에 자리가 남아있다면 정.. 2024. 12. 18.
Transaction_and_ACID * 트랜잭션 (Transaction) - 대용량 데이터 동기화 등을 처리하다 보면 개발자가 트랜잭션을어떻게 처리 하느냐에 따라 데이터의 정합성 등에 영향을 주게 된다.그래서 백엔드 개발자로서 트랜잭션은 중요한 개념이다. * 트랜잭션 상태- 위에서 알게된 Commit과Rollback은 트랜잭션이 어떤 상태일 때 발생할 수 있을까- Active : 트랜잭션이 실행 중이며 동작 중인 상태- Partially Committed : 트랜잭션이 실행되고 데이터 변경을 DB에 적용 전 메모리 공간에만 변경해놓을상태.- Committed : 트랜잭션이 정상적으로 완료 상태. 즉 실제로 메모리에서 DB에 데이터를 쓴 상태. Rollback 불가능.- Failed : 오류로 트랜잭션 실패 상태.- Aborted : 트랜잭.. 2024. 12. 18.
Spring 트래픽 처리 방법 * intro - 추후에 트래픽 문제를 해결하기 위해서 SpringBoot를 사용했을때 처리하는 방법을 알아두면 추후에 유용할것 같아서 미리 작성한다. 1. 로드밸런싱 (Load Balancing)- 로드밸런싱은 여러 서버 ( 혹은 인스턴스 ) 로 트래픽을 균등하게 배분하여 특정 서버에 과도한 부하가 몰리지 않도록 하는 핵심적인 기법.- Spring Cloud Gateway 나 Zuul( Netflix OSS) 같은 API Gateway를 사용해 트래픽을 마이크로서비스 아키텍처에 유연하게 분배.- 컨테이너 오케스트레이션 도구 사용시 ReplicaSet 및 HPA 를 통해 가용 인스턴스 자동 스케일링. ( 어려움 ) 스케일링 - 수평 스케일링 : 애플리케이션 인스턴스 늘려서 요청 처리 능력 증대. - 수직.. 2024. 12. 10.