Programming 51

DI - 의존성 주입

[KT] AIVLE SCHOOL 36일차 의존성(Dependency)의존성 주입(Dependency Injection)은 의존성(Dependency)을 주입(Injection)하는 것의존성 : 한 객체의 코드에서 다른 객체를 생성하거나 다른 객체의 메서드를 호출할 때, 의존성이 발생한다고 할 수 있음결합도(Coupling)의존성의 정도를 결합도(Coupling)라고 함결합도가 높으면 강한 결합(Tight)이라고 표현결합도가 낮으면 느슨한 결합(Loose)이라고 표현일반적으로 new 연산자를 사용하여 객체를 생성할 때 강하게 결합하며 인터페이스와 같이 일반화 된 구성 요소에 의존하고 있을 때 느슨하게 결합하게 됨느슨한 결합은 요구 사항의 변경에 유연한 대처가 가능해짐의존성 주입(Dependency Inj..

Programming/Spring 2025.05.20

IoC - 제어의 역전(Inversion of Control)

[KT] AIVLE SCHOOL 36일차 IoC - 제어의 역전(Inversion of Control)IoC와 DI는 스프링의 가장 기본이 되는 기술이자 스프링의 핵심 개발 원칙POJO → AOP와 PSA도 IoC/DI에 바탕을 두고 있음프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라 함실생활에서의 예시자동차 운전을 직접 한다고 가정할 때 다음과 같은 프로세스로 운전을 진행목적지 설정차량의 속도 설정신호 및 교통체계 준수이 경우 운전자는 운전에 관한 모든 제어를 담당만약 직접 운전하는 것이 아닌 택시를 타거나 대리운전을 이용한다 가정하면 탑승하는 순간부터 경로를 결정하거나 속도를 설정하거나 하는 모든 제어는 운전기사가 담당여기서 승객인 나는 목적지를 운..

Programming/Spring 2025.05.20

OOP + POJO

[KT] AIVLE SCHOOL 36일차 POJO(Plain Old Java Object)Spring는 POJO를 지향하는 프레임워크특정 기술에 종속되어 작동하는 것이 아닌 순수한 자바 객체를 의미POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있음Spring이 POJO를 지향하는 이유특정 기술들에 종속성을 띠게 되면 객체지향적인 설계가 힘들거나 불가능한 경우가 발생위와 같은 문제는 코드의 유지보수와 재사용성에서 매우 불리해짐POJO는 객체지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용 될 수 있는 방식으로 설계되는 장점을 갖고 있음객체 지향 설계 원칙(SOLID)SRP : 단일 책임의 원칙 (Single Responsibility Principle)클래스는 단 ..

Programming/Spring 2025.05.20

Spring Framework

[KT] AIVLE SCHOOL 36일차 Spring FrameworkJava 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로써 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화 된 솔루션Spring 생태계핵심 기술 : 스프링 IoC 컨테이너 , AOP , 기타 등등 웹 기술 : 스프링 MVC , 스프링 WebFlux데이터 접근 기술 : 트랜잭션, JDBC , ORM테스트 : 스프링 기반 테스트 지원 등등…Spring의 핵심스프링은 Java 언어 기반의 프레임워크 Java 언어의 가장 큰 특징은 “객체 지향 언어” 즉, 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내면서 애플리케이션 제작이 가능하게 해줌SOLID 원칙에 부합하는 프로그래밍이 가능하며, 확장성..

Programming/Spring 2025.05.20

클라이언트와 서버

[KT] AIVLE SCHOOL 36일차 웹 프로젝트의 기본 구조애플리케이션을 프레젠테이션 계층 , 애플리케이션 계층 , 데이터 계층으로 나누어 총 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 소프트웨어 아키텍처각 계층이 자체 인프라에서 실행되어 동시에 개발될 수 있으며, 서로 다른 계층에 영향을 주지 않고 필요에 따라 업데이트 하거나 수정할 수 있음 (독립성 증가)프리젠테이션 계층(클라이언트)서버에서 응답(Response)받은 결과를 화면에 렌더링하여 사용자에게 보여주고 서버에 원하는 데이터를 요청(Request)하는 프로그램. 해당 계층은 front-end라고도 불림e.g. HTML, Javascript, CSS애플리케이션 계층(서버)클라이언트에게 서비스를 제공하는 시스템으로,클라이언트의 요..

Programming/Web 2025.05.20

Web

[KT] AIVLE SCHOOL 36일차 Web1989년 팀 버너스리가 여러 연구 기관에 흩어져있는 문서 또는 정보들을 체계화 하고 공유하기 위해 연구되었음HTTP 프로토콜을 기반으로 TCP/IP 네트워크 상에서 HTML을 통해 작성된 하이퍼텍스트를 포함한 콘텐츠를 제공해 서비스 한 것이 웹의 시초HTML(Hyper Text Markup Language): 웹 페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어하이퍼텍스트(HyperText): 웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것HTML이란 하이퍼텍스트 기능을 가진 문서를 만드는 언어로 웹 페이지를 위한 언어라고 함프로토콜(Protocol)네트워크에 연결된 컴퓨터들 간의 통신 규약브라우저의 요청과 서버의 ..

Programming/Web 2025.05.20

Framework

[KT] AIVLE SCHOOL 36일차Framework란?프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘 등의 기능들을 위해 뼈대를 제공함개발자는 이런 뼈대 위에서 코드를 작성하여 애플리케이션을 개발할 수 있음e.g. Spring MVC 웹 프레임워크는 MVC 디자인 패턴이라는 정량화 된 구조 안에서 웹 서버를 어떤 구조로 만들면 되는지 방향을 제시해줌Library라이브러리는 개발자가 개발하는 데 필요한 것들을 모아 둔 도구들의 나열로 개발자가 필요로 할 때 호출하여 사용하는 방식을 취하고 있음e.g. Python NumPy --> 파이썬의 수치 계산 라이브러리Framework와 Library의 차이점제어의 역전을 쉽게 생각하면객체를 개발자가 관리하지 않고 프레임워크가 관리객체의 생성과 소멸..

Programming/Spring 2025.05.20

클라우드 고가용성(로드 밸런서, 오토스케일링)

[KT] AIVLE SCHOOL 33일차 가용성서비스 가용성이라고도 표현워크로드를 사용할 수 있는 시간의 비율Availability = Available for Use Time / Total Time고가용성High Availability높은 가용성지속적으로 구현한 시스템이 정상적으로 운영이 되는 성질장애 또는 고장이 나더라도 복구를 해서 서비스를 지속할 수 있는 능력 Region / Availability ZoneAWS는 Region과 Availability Zone으로 이루어져 있음Region전 세계에서 데이터센터를 클러스터링하는 물리적 위치어떤 지역으로 서비스 하느냐에 따라 지리적으로 가까운 Region 선택Region CodeRegion 구분 Code 존재 (ex. us-east-1, ap-nort..

CloudWatch

[KT] AIVLE SCHOOL 33일차 AWS CloudWatchAWS 리소스 및 애플리케이션을 관측하고 모니터링 하는 도구수행 가능 작업환경에서 이상 동작을 감지문제가 있을 때 알리도록 경보를 설정AWS 관리 콘솔을 사용하여 로그 및 메트릭을 시각화크기 조정과 같은 자동화된 작업을 수행애플리케이션을 정상으로 유지하기 위한 인사이트를 발견CloudWatch 구조CloudWatch Dashboard메트릭 정보를 통합된 화면에서 그래프로 표현하여 시각화클라우드 리소스와 애플리케이션의 메트릭 및 경보를 시각화원하는 메트릭을 모아 대시보드로 생성 CloudWatch cross-account observability 설정을 통해 여러 AWS 계정에 공유되고 있는 애플리케이션을 모니터링하고 문제를 해결 가능애니..

클라우드 모니터링(리소스, 비용)

[KT] AIVLE SCHOOL 33일차 모니터링데이터를 수집, 분석 및 사용하는 행위모니터링 목적IT 리소스 및 시스템에 대한 여러가지 질문의 답 산출 및 의사 결정매일 몇 명이나 사이트를 방문하고 있는가?시간 경과에 따른 방문자 수를 추적하려면 어떻게 해야 하는가?웹 사이트의 성능 또는 가용성 문제가 있었던 적이 있는가?Amazon Elastic Compute Cloud(EC2) 인스턴스의 용량이 부족해지는 것은 아닌가?웹 사이트가 정상 작동하고 있는가?리소스 과다 사용, 애플리케이션 결함, 리소스 구성 오류 또는 보안 관련 이벤트로 인한 운영 문제 감시가능메트릭(Metric)리소스가 생성하는 다양한 형태의 데이터 중 모니터링을 통해 수집된 데이터메트릭 예시간 경과에 따라 EC2 인스턴스에서 수집 및..