본문 바로가기
반응형

전체 글1072

[Mysql] 실행한 query log 확인 및 추적 하는 법 mysql 에서 실행한 쿼리의 이력을 확인해야 할 경우가 있다. 그럴때 사용하는 명령어 이다. select * from INFORMATION_SCHEMA.PROCESSLIST order by id desc limit 100; 그리고 로그파일을 남기는 방법도 있다. 파일 위치 - /etc/my.cnf general_log=ON #쿼리 로그가 출력되도록 설정 general_log_file=/home/mysql_query_log/query.log #로그파일 경로 설정 이후 mysql 재기동 하면 설정이 된다. 2022. 10. 9.
클라우드 네이티브란?(사례 - 넷플릭스) 2016년 ‘클라우드 네이티브 기업이 됐다’고 선언한 넷플릭스는 무려 7년 동안 IT인프라를 데이터센터에서 클라우드(AWS)로 이관하면서 있는 그대로 옮기는 것이 아닌 전체 시스템을 클라우드 네이티브 방식으로 재설계를 하였다. 변화전의 문제는 다음과 같았다. 모놀리식 구조로 인한 개발/개선 속도가 느림 변경이 발생할 때마다 모든 사람들이 한꺼번에 붙어서 작업을 해야 하고, 변경 시 문제가 발생되면 문제를 찾는 것 자체가 일이 되어버려 앱을 개발하고 개선하는 것이 비효율적이었다. 데이터베이스 의존적 거대한 하나의 오라클 데이터베이스를 사용했는데, 데이터베이스가 다운되면 모든 시스템이 다운되었으며, 매 2주마다 새 스키마를 적용하기 위해 적어도 10분의 가동 중지 시간이 생겼다. 데이터센터 비대화 트래픽이 .. 2022. 10. 8.
클라우드 네이티브란?(정의) 클라우드 컴퓨팅을 도입하는 것이 시기상조라고 여겨질 때가 있었는데 그때에는 클라우드를 왜 사용해야 하는지, 클라우드의 장점과 필요성에 대해 초점을 맞췄다면, 이제는 ‘왜(Why)’가 아닌, ‘어떻게(How) 사용할 것인가’에 대하여 고민하는 시점이 왔다. 점점 클라우드의 시대가 오면서 물리적인 서버의 역할 보다는 가상의, 그리고 컨테이너 개념의 이런 단어들이 더욱 익숙해지고 있다. 클라우드 네이티브 정의 넓은 의미의 정의 넓은 의미로 정의해 본다면 클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식을 말한다. 기존 시스템에서의 애플리케이션은 클라우드의 이점을 100% 활용하지 못했다면, 마이크로서비스 아키텍처를 채택하고 컨테이너, 쿠버네티스와 같은 기술과 도구, DevOps,.. 2022. 10. 7.
[Mysql] 문자열 추출 및 인덱싱 이전에 다뤘던 포스팅은 문자열에 대한 자르기 추출(substring) 이었다면 이번 포스팅은 문자열의 위치를 나타내주는 함수이다. 추출 관해서는 아래 참고 포스팅을 참고 바란다. INSTR INSTR('문자열','추출문자') 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select INSTR('가나다라마','다라마'); //3 LOCATE LOCATE('검색문자','문자열) 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select LOCATE('CDE','ABCDE'); //3 참고 포스팅 https://thenicesj.tistory.com/342 [mysql] 문자열 추출 Mysql 에서도 프로그래밍 처럼 문자열을 자를수가 있다. substring substring.. 2022. 10. 6.
Maven 사용법 이전 포스팅에서 maven과 gradle 에 대해서 다룬적이 있다. 참고 포스팅에 참고해보길 바란다. 이번 포스팅에서는 나는 메이븐을 좀더 주로 다루기에 메이븐에 대해서 얘기를 해보려고 한다. maven은 다양한 종속성(dependency)를 pom.xml 에 추가를 하곤 한다. plugin 을 다루기도 하고, groupId, articleId, version ... 등을 지정해주는 dependency를 다루기도 한다. 이 dependency 는 메이븐 생태계에서 다양한 라이브러리를 가져올수 있는데 라이브러리 확인은 메이븐 공식 홈페이지에서 검색을 해서 가져올수 있다. 이전 릴리즈부터 현재 최신 버전까지 함께 가져올수있다. 아래 사이트이다. https://mvnrepository.com/ maven에는 .. 2022. 10. 5.
HashTable, HashMap, ConcurrentHashMap 비교 이전 포스팅에서 Map에 대해서 다룬적은 있다.자세한 내용은 아래 참고 포스팅을 확인해보길 추천한다. 이번 포스팅에서는 Hash 관련해서 HashTable, HashMap, ConcurrentHashMap 세개를 얘기해볼 것이다. 먼저 셋의 공통점은 Map 인터페이스를 구현한 콜렉션들이고, 이 콜렉션들은 비슷한 역할을 하는것 같으면서도 다르게 구현되어 있다.기본적으로 Map 인터페이스를 구축한다면 Key/Value 구조를 갖게 된다. HashTableHashTable은 put,get 과 같은 주요 메서드에 synchronized 키워드가 선언되어 있고, KeyValue에 null을 허용하지 않는다.HashMapHashMap은 주요 메서드에 synchronized 키워드가 포함되어있지 않으며, KeyVal.. 2022. 10. 4.
Quartz 스케줄러 part.2 저번 포스팅에 이어 코드를 다뤄볼 것이다. 일단 먼저 메인 함수를 작성할 jobexecutor를 만들어야한다. @PersistJobDataAfterExecution @DisallowConcurrentExecution public class SampleJobExecutor implements Job{ private static final SimpleDateFormat TIMESTAMP_FMT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSS"); public static final String EXECUTION_COUNT = "EXECUTION_COUNT"; @Override public void execute(JobExecutionContext ctx) throws .. 2022. 10. 3.
Quartz 스케줄러 part.1 이전 포스팅에서 스프링 스케줄러 관련해서 다룬적이 있다. 아래 참고 포스팅을 확인해보면 도움이 될것이다. 이번 포스팅에서는 스케줄러를 담당하는 자바 라이브러리인 QUARTZ 를 다뤄볼것이다. 라이브러리를 사용하기 위한 메이븐 dependency 는 다음과 같다. org.quartz-scheduler quartz 2.3.2 구성 요소는 다음과 같다. JOB 실제 작업을 수행하는 객체 org.quartz.Job 인터페이스를 상속받아 execute 메소드에 수행 로직을 구현 같은 그룹에는 동일한 이름을 가진 Job를 생성할수 없음 Trigger Job을 수행하기 위한조건(스케줄)을 정의한 객체 특정 시간, 횟수, 반복 주기 등을 설정할 수 있음 특정시간 및 횟수 : SimpleTrigger 주기적으로 반복 :.. 2022. 10. 2.
[Oracle] 옵티마이저 힌트 및 실행계획 옵티마이저는 쿼리문을 실행할 경우 다양한 실행 경로를 생성하고 비교하여 최적의 경로를 만들어준다. 자세한 내용은 아래 참고 포스팅을 참고하면 도움이 될것이다. 참고포스팅에서는 옵티마이저나 최적화에 대해서 알게 되는데 그럼 옵티마이저 힌트는 언제 어떻게 사용하는지에 대해서 알아볼 것이다. 옵티마이저 힌트는 우선 아래와 같은 방식으로 사용을 한다. select /*+ hint 기술 */ a, b, c from table; /*+ 과 */ 로 쌓여진 주석같은 구문 안에 작성을 한다. 사용하는 이유는 옵티마이저가 계획한 실행 경로가 상황에 따라 최적이 아닐 경우가 있다. 옵티마이저가 계산한 인덱스보다 효율적인 인덱스가 존재 스캔의 종류 변경(인덱스 / 풀 스캔) 옵티마이저가 계산한 조인보다 효율적인 조인이 존재.. 2022. 10. 1.
반응형