여니의 프로그래밍 study 225

[2장-4] 도커 엔진

참고서적 : 시작하세요! 도커/쿠버네티스 (9.2) 컨테이너 CPU 제한 - cpu-shares : 컨테이너에 가중치를 설정해서 해당 컨테이너가 CPU를 상대적으로 얼마나 사용할 수 있는지를 나타낸다. 시스템에 존재하는 CPU를 어느 비중으로 나눠 쓸 지 명시하는 옵션 docker run -d --name cpu_1024 --cpu-shares 1024 alicek106/stress stress --cpu 1 -> 1024의 값을 할당하였고 1개의 프로세스로 cpu에 부하를 주는 명령어(stress --cpu 1)로 설정됨 이 상태에서 --cpu-shares의 값이 512로 설정된 컨테이너가 같이 실행된다면, 2:1의 비율로 CPU를 나눠쓰는 걸 확인할 수 있다. 1024:512=2:1의 비율로 시스템의..

[2장-3] 도커 엔진

참고서적 : 시작하세요! 도커/쿠버네티스 (8) 컨테이너 로깅 1. json-file 로그 사용하기 도커는 컨테이너의 표준 출력과 에러 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공함. docker run -d --name mysql_test -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 mysql과 같은 어플리케이션을 구동하는 컨테이너는 포그라운드 모드로 실행이 되므로 -d 옵션을 써서 백그라운드 모드로 컨테이너를 생성하는 경우가 많음 docker logs 명령어를 써서 컨테이너의 표준 출력을 확인함으로써 애플리케이션의 상태를 알 수 있음 docker logs mysql 위 명령어를 입력하면 로그를 확인할 수 있음 -e 옵션을 제거하면 mysql 실행에 필요..

[2장-1] 도커 엔진

참고서적 : 시작하세요! 도커/쿠버네티스 (1) 도커 이미지와 컨테이너 : 도커 엔진에서 사용하는 기본단위는 이미지와 컨테이너 (핵심) 1. 도커 이미지 - 컨테이너를 생성할 때 필요한 요소 - 여러 개의 계층으로 된 바이너리 파일로 존재함 - 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용된다 - 도커 명령어로 내려받을 수 있어 별도 설치는 필요없음 즉, 이미지는 컨테이너화된 애플리케이션을 실행하는데 필요한 파일, 라이브러리 및 설정과 같은 모든 요소를 포함하는 가볍고 독립적인 패키지임 도커에서 사용하는 이미지 이름 형식 [저장소이름]/[이미지이름]:[태그] ex) alicek106/ubuntu:14.04 저장소 : 이미지가 저장된 저장소. 단, 저장소 이름이 명시되지 않은 이미지는 도커에서 기본으로..

[1장] 도커란?

참고서적 : 시작하세요! 도커/쿠버네티스 1. 도커란? 리눅스 컨테이너에 여러 기능을 추가함으로써 어플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트 리눅스 컨테이너는 애플리케이션과 실행에 필요한 모든 구성 요소를 격리된 환경에서 실행할 수 있도록 하는 가상화 기술 중 하나임 리눅스 컨테이너를 사용하면 각 컴퓨터에 별도로 웹 서버를 설치하지 않고 하나의 이미지를 만들어 각각의 컨테이너로 실행할 수 있다. 도커 엔진 : 컨테이너를 생성하고 관리하는 주체 1.1 가상 머신과 도커 컨테이너 기존 가상화 기술은 하이퍼바이저를 이용해서 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었음 하이퍼바이저는 가상화 기술을 이용하여 하나의 물리적인 컴퓨터에서 여러 개의 가상머신..

[Spring] Chapter 15 ~ 17 : 간단한 웹 어플리케이션의 구조, JSON 응답과 요청처리, 프로필과 프로퍼티 파일

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 간단한 웹 어플리케이션의 구성 요소 (1) 프론트 서블릿 -> 웹 브라우저의 모든 요청을 받는 창구 역할, 요청 분석 후 알맞은 컨트롤러에 전달함 스프링 MVC에서는 DispatcherServle이 역할을 수행함 (2) 컨트롤러 + 뷰 -> 실제 웹 브라우저의 요청을 처리함 클라이언트의 요청을 처리하기 위해 알맞은 기능을 실행하고 그 결봐를 뷰에 전달함 컨트롤러의 주요역할 1) 클라이언트가 요구한 기능 실행 2) 응답 결과를 생성하는데 필요한 모델 생성 3) 응답 결과를 생성할 뷰 선택 컨트롤러는 어플리케이션이 제공하는 기능과 사용자 요청을 연결하는 매개체로서 기능 제공을 위한 로직을 직접 수행하진 않음. 대신 해당 로직을 제공하는 서비스에..

[Spring] MVC 4 : 날짜 값 변환, @Path Variable, 익셉션 처리

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 날짜를 이용한 회원 검색 기능 > selectBtRegdate() 메서드는 REGDATE 값이 두 파라미터로 전달받은 from과 to 사이에 있는 Member 목록을 구한다. package spring; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.List; import javax.sql.DataSource; import org.spring..

[Spring] MVC 3 : 세션, 인터셉터, 쿠키

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 로그인 처리를 위한 코드 준비 로그인 성공 후 인증상태 정보를 세션에 보관할 때 사용할 AutoInfo.java 클래스 package spring; public class AuthInfo { private Long id; private String email; private String name; public AuthInfo(Long id, String email, String name) { this.id = id; this.email = email; this.name = name; } public Long getId() { return id; } public String getEmail() { return email; } public St..

[Spring] MVC 2 : 메시지, 커맨드 객체 검증

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. spring:message 태그로 메시지 출력하기 > 뷰 코드에 문자열이 하드코딩 되어 있으면 언어별로 뷰 코드를 따로 만들어야하는 문제점이 발생한다. 해결방법 > 문자열을 별도 파일에 작성하고 JSP 코드에서 이를 사용하면 된다. 1.문자열을 담은 메시지 파일을 작성 : 자바의 프로퍼티 파일 형식으로 작성 2.메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정 : MvcConfig 설정 클래스에 추가 @Bean public MessageSource messageSource() { ResourceBundleMessageSource ms = new ResourceBundleMessageSource(); ms.setBasenam..

[Spring] MVC 1 : 요청 매핑, 커맨드 객체, 리다이렉트, 폼 태그, 모델 (Chapter 11)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 프로젝트 준비 1) pom.xml 4.0.0 sp5 sp5-chap11 0.0.1-SNAPSHOT war javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp javax.servlet.jsp-api 2.3.2-b02 provided javax.servlet jstl 1.2 org.springframework spring-webmvc 5.0.2.RELEASE org.springframework spring-jdbc 5.0.2.RELEASE org.apache.tomcat tomcat-jdbc 8.5.27 mysql mysql-connector-java 5.1.45 org.slf4j..

[Spring] 스프링 mvc 프레임워크 동작 방식 (Chapter 10)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 스프링 MVC 핵심 구성 요소 DispatcherServlet은 모든 연결을 담당함 1) 웹 브라우저로부터 요청이 들어옴 2) DispatcherServlet은 해당 요청을 처리하기 위한 컨트롤러 객체를 검색함 (직접 조회하는 것이 아니라 HandlerMapping이라는 빈 객체에게 컨트롤러 검색을 요청함) 3) HandlerMapping은 클라이언트의 요청 경로를 이용하여 이를 처리할 컨트롤러 빈 객체를 DispatcherServlet에 전달 4) HandlerAdapter 빈에게 요청 처리를 위임한다. 5) HandlerAdapter는 컨트롤러의 알맞은 메서드를 호출해 요청을 처리하고 결과를 DispatcherServlet에 리턴한다. ..