전체 글 (190) 썸네일형 리스트형 토비의 스프링 3.1 Vol. 2 들어가며.. 스프링을 사용한다는 것은 수많은 선택을 해야 하는 것을 의미 모든 선택은 상황과 환경, 정책, 개발 스타일, 목적, 개발자의 경험과 취향에 따라 달라질 수 있음 스프링의 다양한 기술을 이해하고, 자신의 필요에 맞는 것을 스스로 선택하는 능력을 키우는 것이 중요 필요한 것을 스프링이 제공하지 못한다면, 스스로 확장을 통해 만들어 써야 한다. 1장 IoC 컨테이너와 DI 1. IoC 컨테이너: 빈 팩토리와 애플리케이션 컨텍스트 ApplicationContext interface 스프링 컨테이너 또는 IoC 컨테이너 이 인터페이스를 구현한 클래스의 오브젝트 이 컨테이너가 코드 대신 오브젝트에 대한 제어권을 가지고 있어서 IoC라고 부름 오브젝트의 생성과 관계 설정, 사용, 제거, 등의 작업을 애플.. 컨테이너 데이터 영구보존 컨테이너 이미지는 readonly 컨테이너가 삭제되면 그 안에 있는 데이터도 함께 삭제가 된다. 그래서 컨테이너가 삭제되더라도 데이터는 영구 보존할 필요가 있는 것이다. 즉, 다른 장소에 데이터를 저장 docker run -d —name db -v /dbdata:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=master mysql:latest 볼륨 마운트해서 디스크에 저장해놓는 것. 1. volumn 옵션 사용 1) -v : 컨테이너의 디렉터리와 호스트의 디렉터리를 영구적으로 보존하도록 하는 것. docker run -d --name db -v /Users/mi/workspace/docker-tests/dexdata:/var/lib/mysql -e MYSQL_ROOT_P.. 컨테이너 부하 테스트 1. stress container 생성 컨테이너 빌드 : 부하 테스트 프로그램 stress를 설치하고 동작시키는 컨테이너 빌드 stress --cpu 2 CPU 부하테스트 : 2개 cpu core를 100% 사용하도록 부하 발생 stress --vm 2 --vm-bytes 메모리 부하 테스트 : 프로세스 수 2개와 사용할 메모리만큼 부하 발생 1) vi dockerfile FROM ubuntu RUN apt-get update; apt-get install stress -y CMD [“/bin/sh”, “-c”, “stress -c 2”] 2. 메모리 리소스 제한 docker run -m 100m --memory-swap 100m stress:latest stress --vm 1 --vm-bytes 9.. Docker 모니터링 1. docker stats [container name] container name 입력 안 하면 모든 작동 중인 컨테이너 확인 가능. 2. cadvisor https://github.com/google/cadvisor pem 키 접근 에러 환경 : macOS permission denied로 pem 키 접속이 안 될 때가 있다. 너무 많은 권한을 줘서 pem 키 접근이 안 될 수 있다. chmod 400 key.pem 적용해주고 ssh로 접근하면 된다. 숫자 3개의 의미는 자신/그룹/전체 4 = read, 2 = write, 1 = execute 이 숫자의 합으로 권한을 나타낸다. 즉, 400이라면 나에게 읽기 권한을 주는 것이다. ssh -i key.pem ubuntu@publicDMSip 문자열 예외처리 API 작업을 하다 보면 숫자만 입력받아야 하는 상황들이 있다. 문자열에 대해서 입력을 받으면 안 되는 상황들에서 예외처리를 어떻게 해야 하는지 알아보자. 1. 처리 1 cnt = parmas[:cnt].to_i cnt == 0 '' '0' 'string' 즉, 공백, 0, 문자열을 모두 0으로 처리해준다. 그래서 정확한 예외처리를 해줄 수 없다. 2. 처리 2 def count cnt = params[:cnt] cnt_list = params[:cnt].bytes raise ApiExceptions::CustomException.new(:status, 'error message')) if cnt.to_i == 0 && cnt_list.size > 0 && (cnt_list.map { |v| v < 48.. Redis 1. how to use brew install redis brew services start redis brew services stop redis brew services restart redis 2. rails with redis with database 1) redis - database database 내 자료를 서버 메모리에 key와 value 형태로 저장(caching) 2) rails - redis 메모리에 저장(캐싱)된 key를 참조해서 value를 가져옴. 3. RDBMS vs Redis DB 1) RDBMS 파일 기반의 데이터 저장 구조 의미 사용자가 입력, 수정, 삭제, 조회하는 모든 데이터는 1차적으로 메모리에 우선 저장된다. 2차적으로 디스크에 존재하는 파일에 저장되며 파일들은 .. MySQL 1. 함수 1) comment 확인 use information_schema; SELECT table_name, column_name, column_comment FROM information_schema.columns WHERE table_schema = 'db_name' AND table_name = 'table_name'; 2) 테이블 구조 확인 DESC table_name; 3) 문자열 자르기 RIGHT(string,size) LEFT(string,size) SUBSTR(string, start, size) 4) 소수점 처리 ROUND(num,0~9..) 지정한 숫자에서 반올림 FLOOR() 그냥 떨굼 CEIL() 무조건 올림 5) AVG null값을 0으로 볼지 혹은 null로 볼지 생각을 해야.. 이전 1 ··· 13 14 15 16 17 18 19 ··· 24 다음