본문 바로가기

전체 글131

[클라우드] 4. Container (Docker) 인프라 구조의 발전 가상 머신 사용의 문제점 가상 머신을 사용하면 가상 서버마다 필요한 소프트웨어 설치 필요 쉘 스크립트를 통한 설치 및 설정 자동화도 어렵고 안정성에 영향을 줌 위 문제를 해결하기 위해 “Immutable Infrastructure” 라는 패러다임 등장 기존 머신들을 쓸때 가상 머신들을 여러개 띄우지만 막상 CPU 사용량을 보면 되게 미미하다. 한쪽에서 과도하게 사용하여 다른 널널한 자원을 VM이 쓸수는 없을까? -> 이런 개념이 컨테이너로 만들어지는 이유 Immutable Infrastructure OS 커널과 서비스 환경을 분리해 커널의 수정 없이 서비스 환경의 교체 가능 서비스가 수정되면 이전 서비스 환경을 새로운 서비스 환경으로 교체 “Immutable Infrastructure.. 2024. 3. 21.
[클라우드] 3. 서버 가상화(Server Virtualization) 서버 가상화 하나의 물리적 서버 리소스에 여러 개의 서버 환경을 할당 • 각각의 환경에 OS와 애플리케이션을 실행할 수 있도록 함 물리 서버의 수가 줄어들기에 공간 절약과 비용 절감 효과 가상 서버 중 하나가 위협에 노출되더라도 다른 가상 서버에게 영향을 미치지 않음 - Intrusion Tolerance (악의적인 공격으로부터 정보 시스템을 방어하기 위한 설계 접근 방식) 서버 가상화 기술 종류 Type-1 Hypervisor • 하드웨어 위에 바로 Hypervisor 가 동작 • Native 또는 Bare-metal Hypervisor 라고도 함 • 호스트 운영체제가 없기 때문에 리소스 관리가 유연 • 자체적인 물리 머신 관리 기능이 제한적임 컴퓨터에 VirtualBox를 깔거나 Hypervisor를.. 2024. 3. 21.
[클라우드] 2. Cloud Services and Technologies 클라우드 서비스 클라우드 사업자 (Cloud Service Provider: CSP)가 클라우드를 이용하는 고객(기업)에게 제공하는 서비스 • 기업이 일반 사용자에게 제공하는 서비스 아님 여기서는 주로 IaaS/PaaS로 제공되는 클라우드 서비스에 집중할 것임 • 예를 들어, 가상 서버, 스토리지, 네트워크, 데이터베이스 클라우스 서비스의 종류 컴퓨팅 서비스 • 가상 서버, 로드 밸런서, 오토 스케일 스토리지 서비스 네트워크 서비스 데이터베이스 서비스 컴퓨팅 서비스 가상 서버 클라우드 서비스를 구성하는 가장 기본이 되는 요소 서버 가상화 • 물리 서버가 가진 CPU, 메모리, 디스크 등을 논리적으로 분리 하이퍼바이저 (hypervisor) • 한 대의 물리 서버에 여러 개의 가상 서버를 생성 • 하드웨어.. 2024. 3. 21.
[클라우드] 1. Introduction to Cloud Computing 클라우드 컴퓨팅의 정의 인터넷을 통해 원격지( remote ) 에서 제공하는 확장성이 있는 자원의 사용 모델을 도입한 분산 컴퓨팅의 특수한 형태 클라우드가 보급된 배경 • 대부분의 기업들이 자체 데이터센터 구축 및 운영 • 비용이 비싸고 복잡한 작업 요구 • 대부분의 자원이 낭비 클라우드 컴퓨팅이 인기를 얻게 된 이유 • 접근성 – 인터넷에 연결된 장치는 어디에서나 접근 가능 • 확장성 – 기업이 필요에 따라 자원을 확장/축소 가능, 비즈니스 요구사항에 맞게 IT 인프라 조정 가능 • 유연성 – 다양한 운영체제와 애플리케이션 호스팅 가능 • 비용절감 – 필요한 만큼 자원을 사용하고 비율을 지불, 초기 인프라 구축 비용 절감 금융권은 그럼에도 클라우드로 잘 못 넘어오는 이유? 1. 개인 정보 보안 문제 2.. 2024. 3. 21.
[Spring/MVC] 스프링 MVC 기본 기능 로깅 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LogTestController { private final Logger log = LoggerFactory.getLogger(LogTestController.class); @RequestMapping("/log-test") public String logTest() { String name = "spring"; log.inf.. 2024. 3. 21.
[Spring/MVC] 스프링 MVC 구조 SpringMVC 구조 DispatcherServlet.doDispatch() 서블릿 등록 → DispatcherServlet 도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서블릿으로 동작한다. protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = null; ModelAndView mv = null; // 1. 핸들러 조회 mappedHandler = getHandler(processedRequest); i.. 2024. 3. 21.
[Spring/MVC] MVC 프레임워크 프론트 컨트롤러 패턴 프론트 컨트롤러 도입 - v1 구조 View 분리 - v2 구조 모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 있고, 깔끔하지 않다. String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); Model 추가 - v3 구조 서블릿 종속성 제거 → 컨트롤러 입장에서 HttpServletRequest, HttpServletResponse 가 꼭 필요할까? 요청 파라미터 정보는 자바의 Map 으로 대신 넘기면 컨트롤러가 서블릿 기술을 몰라도 동작이 가능하다. 뷰 이름.. 2024. 3. 21.
[Spring/MVC] MVC 패턴 서블릿과 JSP (JAVA Server Page)의 한계 서블릿으로 개발할 때는 뷰(View)화면을 위한 HTML 만드는 작업이 자바 코드에 섞여서 지저분했다. JSP를 사용한 덕분에 뷰를 생성하는 HTML 작업을 깔끔하게 가져가고, 중간중간 동적으로 변경이 필요한 부분에만 자바 코드를 적용했다. 그런데 이렇게 해도 해결되지 않는 것이 많다. MVC 패턴의 등장 비지니스 로직은 서블릿 처럼 다른곳에 처리하고, JSP는 목적에 맞게 HTML로 화면(View)을 그리는 일에 집중하도록 하자. Model Vew Controller 컨트롤러 : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다. 모델 : 뷰에 출력할 데이터를 담아둔다.. 2024. 3. 21.
[Spring/MVC] HttpServletRequest,Response, HTTP 요청 데이터 HttpServletRequest - 개요 HttpServletRequest 역할 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다. HTTP 요청 메시지 Start line HTTP 메소드 URL 쿼리 스트링 스키마, 프로토콜 헤더 헤더 조회 바디 form 파라미터 형식 조회 message body 데이터 직접 조회 HttpServletRequest - 기본 사용법 Start line 정보 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { printStartLine(request); } //Start-line 정보 private .. 2024. 3. 21.
[Spring/MVC] 웹 애플리케이션 정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상등 게종 주로 웹 브라우저 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 HTML API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 SSR (서버 사이드 렌더링) HTML 결과를 서버에서 만들어서 웹 브라우저에 전달 주로 정적인 화면에 사용 관련기술 : JSP, 타임리프 (백엔드) CSR (클라이언트 사이드 렌더링) HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용 주로 동적인 화면에 사용하고 웹 환경을 앱처럼 필요한 부분부분 변경 가능 ex) 구글 지도, Gmail 관련기술 : React, Vue.js (프론트) 서블릿 자바를 사용하여 웹페이지를 동적으.. 2024. 3. 20.