전체 글
-
오라클 RAC 개념Oracle 2017. 1. 13. 09:30
RAC의 등장과 개념 도입, 기본용어 DBMS : 데이터를 저장하고 사용자가 원하는 자료를 조회, 수정, 삭제 등의 작업을 해주는 프로그램이다. Instance : 데이터를 가져와서 작업하는 작업장 Database : 데이터를 저장하고 있는 창고 Instance 와 Database : 데이터베이스에 저장된 자료는 서버가 꺼져도 안전하게 저장되어야하므로 HDD에 저장되어 있고, 인스턴스는 여러 사용자가 접속해서 빠른 서비스를 제공해야 하므로 RAM에 저장된다. 데이터베이스에 자료를 저장해 두고 필요할때마다 자료를 인스턴스에 가져와서 작업을 수행하고 작업이 끝나면 그 내용을 다시 데이터베이스에 저장하는 원리로 작동된다. 이때 Instance와 Database를 왔다갔다하면서 작업을 해주는 것을 프로세스f라고..
-
-
리팩토링 - 메소드 정리My-Book(History) 2017. 1. 11. 00:09
메소드 정리 - 쪼갠 메소드중 제 역할을 못할 경우 메소드 내용을 호출하는 메소드에 직접 넣는 기법을 사용하라. - 임시변수를 메소드 호출로 전환 기법을 사용할때 어려운 상황에 처하면 임시변수를 분리 시켜라 메소드 추출 - 어떤 코드를 그룹으로 묶어도 되겠다고 판단될땐 그 코드를 빼내어 목적을 잘 나타내는 직관적 이름의 메소드로 만들자. - 메소드 추출로 코드의 명료성이 향상 되기만 한다면 메소드명이 추출한 코드보다 길어도 메소드 추출을 실시해야 한다. - 지역 변수가 읽기 용으로만 사용된다면 그냥 매개변수로 전달하라. 메소드 내용 직접 삽입 - 메소드 기능이 너무 단순해서 메소드 명만 봐도 뻔할땐 그 메소드의 기능을 호출하는 메소드에 넣어버리고 그 메소드는 삭제하라 - 주의할점은 메소드가 재정의 되어있..
-
리팩토링 - 코드의 구린내My-Book(History) 2017. 1. 10. 23:46
잘못된 소속 - 객체의 핵심은 데이터와 그 데이터를 사용하는 프로세스를 묶는 기술이다. - 리팩토링을 하는 도중 특정 메소드가 호출하는 클래스가 많을 경우 문제의 메소드가 접근하는데이터가 어느 클래스에 많이 사용하는지 파악하여 해당 클래스로 옮겨라 중복 코드 - 한 클래스의 두 하위클래스에 같은 코드가 들어 있는 경우 메소드 추출(공동로직을 빼네어 메소드 처리)기법으로 중복을 없앤 후 메소드 상향 기법을 적용하면 된다. - 상향시 조금 다른 로직이 있다면 그 메서드를 상위 클래스에서 abstract 시켜라 장황한 메소드 - 최적의 상태로 장수하는 프로그램을 보면 공통적으로 메소드 길이가 짧다. - 메소드에 매개변수와 임시변수가 많으면 메소드 추출하기 까다로워진다. - 리팩토링 기법을 사용했음에도 여전히 ..
-
리눅스 ulimit리눅스 2017. 1. 5. 16:21
각 계정 마다 하나의 프로세스가 가질 수 있는 파일 지시자에 제한이 있다. Soft lit와 Hard limit 두 가지가 있는데 Soft limit : 새로운 프로그램이 생성되면 디폴트로 적용되는 제한 값 Hard limit : Soft limit 부터 늘릴 수 있는 최대 값 이다. ulimit -n : 오픈 파일의 개수가 나오는데 이는 프로세스당 커널이 사용할 수 있는 개수와 동일한 개념이다. Soft limit 값이 무한대이더라도 Hard limit 값이 256이라면 프로세스당 파일 지시자는 256개를 넘어갈 수 없다. 일반적으로 파일 지시자를 확인할 때 사용하는 ulimit -a명령은 Soft limit를 보여주는 명령으로, 이 값만 확인하면 설정값이 충분하다고 착각할 수 있는데 Hard limi..
-
아파치 최적화 튜닝하는 법!Etc 2017. 1. 5. 09:44
웹 서버를 며칠간 재시작하지 않고 놔둬서 현재 서비스 상태를 파악하는 게 가장 좋을 것 같습니다. 간단히 아파치 서버와 클라이언트 사이의 동시 소켓 연결 개수를 확인하기 위해 아래와 같이 명령합니다.$ netstat -nta | grep :80.*ESTABLISHED | wc -l 이 연결 개수는 아파치 서버가 현재 처리 중인 소켓 연결 개수이며 앞으로 설명할 MaxClients 수를 넘지 않도록 유의해야 합니다. 그런데 아직 서비스를 시작하기 전이라 웹 서버의 부하를 확인하기가 어렵다면 아파치 벤치마킹 도구(ab)를 이용해볼 수도 있습니다.$ ab -n 3000 -c 200 http://example.com/ 위 명령어는 http://example.com 사이트에 200명의 사용자가 15번씩 총 300..
-
리눅스 lsof 란?리눅스 2017. 1. 5. 09:40
lsof - 유닉스나 리눅스에서 대상 프로세스의 프로세스 ID[PID]를 알고 있어야 하고, root 계정 또는 모니터링 대상 프로세스를 가동한 정보를 조회할 수 있다. - 파일지시자가 제공해주는 키값을 사용하고 있는 목록을 제공해줌 모든 열린 파일 출력 옵션 없이 lsof 를 실행하면 모든 열린 파일 정보를 출력한다. ? lsof COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 253,0 4096 2 / init 1 root rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 150352 3932 /sbin/init init 1 root mem REG 253,0 65928 784927 /l..