일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CKA 기출문제
- CKA
- 정보처리기사 실기 기출문제
- kotlin querydsl
- 정보처리기사실기 기출문제
- CloudWatch
- Pinpoint
- golang
- 코틀린 코루틴의 정석
- kotlin
- tucker의 go 언어 프로그래밍
- PETERICA
- 오블완
- 티스토리챌린지
- minikube
- aws
- 공부
- AI
- Elasticsearch
- docker
- AWS EKS
- go
- Kubernetes
- Linux
- Java
- 기록으로 실력을 쌓자
- mysql 튜닝
- kotlin coroutine
- Spring
- APM
- Today
- Total
목록전체 글 (859)
피터의 개발이야기

서비스 운영 중에 톰켓이 OutOfMemory를 뱉어내며 작동을 하지 않을 때가 있다. APM 시스템이 잘 갖춰진 곳이라면, 시스템의 문제가 발생 시에 바로 알림이 운영자에게 보내져서 바로 대응이 가능하겠지만, 그렇지 않은 경우 문제가 커진 후에나 장애처리가 될 것이다. 예기치 못한 상황에서 자동적으로 시스템을 복구하는 방법이 있다. JVM옵션에서 이것을 제공하고 있다. OnOutOfMemoryError 옵션을 이용하면, OutOfMemroy 발생 이후에 특정 동작을 지정할 수 있다. 톰캣 옵션 추가 방법 setenv.sh에 "-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError" 옵션 추가 JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx102..

개요APM의 대상이 되는 Aplication과 연동하는 Agent를 설치한다. PinPoint Agent 다운로드wget https://github.com/naver/pinpoint/releases/download/1.8.4/pinpoint-agent-1.8.4.tar.gz -P /Users/deseo/study/pinpoint/files 압축해제tar zxvf ~/study/pinpoint/file/pinpoint-agent-1.8.4.tar.gz -C ~/study/pinpoint/pinpoint-agent PinPoint Agent config 설정#collector 내부아이피 설정 profiler.collector.ip=192.168.33.34# TCP 통신 설정profiler.statdata..

개요Web, Collectorpinpoint의 web, collector은 war로 다운을 받아 tomcat으로 실행한다. tomcat 9 버전 설치 wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.39/bin/apache-tomcat-9.0.39.tar.gz -P /home/pinpoint/#압축해제tar zxvf apache-tomcat-9.0.39.tar.gz#링크설정ln -s /home/pinpoint/apache-tomcat-9.0.39 /home/pinpoint/tomcat tomcat java_home 설정tomcat/bin/setenv.sh 작성 #!/bin/shJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjd..

엑셀다운로드을 하고 있었다. JXLS로 만들면서 템플릿 Excel파일의 경로를 지정하였다. 하지만 로컬에서 실행시키자 에러가 발생하였다. 얼마전 SpringBoot 배포를 War에서 Jar로 변경 하였기 때문이었다. 결론적으로 Jar와 War가 Resource를 참조하는 방식이 달랐다. Jar로 배포된 개발계와 운영계에는 문제가 없었고, local에서는 classpath경로로는 리소스를 참조할 수 없었다. 우선 알아야할 개념은 Path와 Classpath의 차이다. path는 javac와 연관이 있다. 자바환경에서 컴파일 할 때 필요한 것이다. javac가 컴파일하기 위한 모든 라이브러리를 참조하기 위해 윈도우에서는 환경변수로 java홈의 라이브러리 경로를 지정해 준다. javac는 라이브러리 경로에 따..

hbase 스키마 생성 https://github.com/naver/pinpoint/releases/tag/1.8.4 의 Source Code 에서 hbase/scripts/hbase-create.hbase 파일 사용하여 스키마 생성합니다. 소스코드를 다운 받습니다.wget https://github.com/naver/pinpoint/archive/1.8.4.tar.gz 압축해제tar zxvf 1.8.4.tar.gz 소스상의 scripts 폴더를 /home/pinpoint/hbase/script로 이동cp -r /home/pinpoint/pinpoint-1.8.4/hbase/scripts /home/pinpoint/hbase/script hbase 데이터 보존기간 변경hbase-create.hbase..

ㅁ 총 연결 connection 수 확인 show status where `variable_name` = 'Threads_connected'; ㅁ 접속 IP별 connection 수 select ip, count(*) cnt from ( select left(HOST,instr(HOST,':')-1) ip from information_schema.processlist where 1 = 1 # and COMMAND = 'Sleep' -- 대기모드 ) temp group by ip order by 2 desc;

이번 글은 APM에 대해서 공부한 내용을 정리하였습니다. APM의 뜻 애플리케이션 성능 관리(APM, Application Performance Management)는 응용 소프트위어의 성능과 서비스 이용성을 감시하고 관리하는 데 초점을 둔 시스템 관리 원칙을 일컫는다. 애플리케이션의 성능을 관리하는 서비스를 의미한다. 운영 중인 시스템에 대한 응답시간과 같은 성능이나 처리량, 가용성, 및 기능적 무결성, 신뢰성을 확보하고 다운타임의 최소화 등을 통해 안정적인 시스템 운영을 위한 도구로써 부하량, 접속자 파악, 장애진단, 통계, 분석 등을 목적으로 하는 성능 모니터링 제품으로 정의할 수도 있다. A Applicaion, Web Application을 말한다. 더 정확히는 RestAPI로 기업이 제공하는 ..

나의 첫 APM은 Splunk전자결제팀 소속으로 근무할 때에 splunk를 사용하였다.특정 거래의 transaction_id를 검색하며, client, Auth, Engin에서 수행된 로그를 한 눈에 볼 수 있었다. 데시보드에는 현재의 트래픽과 FDS 장애 대응이 자세히 실시간으로 시각화 되었다.Splunk는 로그를 수집하고 사용자가 원하는 결과를 추출하는 대용량 로그 수집/분석 시스템이었다.하지만 치명적인 단점은 가격이 비싸다는 것이다. Pinpoint의 가장 큰 장점은 무료이며,특별히 서비스코드 작업 없이 환경설정만으로 바로 적용이 가능하다는 점이다.최소한의 aws amazone linux만 있다면무료로 APM을 가질 수 있는 것이다. Pinpoint 설치설치에는 마스터와 에이젼트, Web UI로 ..

ㅁ 들어가며코드 작성 중 간단히 자바 테스트를 진행하였습니다.@SpringBootTest를 가동시켰는데, Failed to load ApplicationContext이 발생하면서 테스트를 진행할 수 없었습니다.스프링이 특정 value 빈을 생성하려는데, 설정 파일을 찾지 못하엿습니다.테스트 코드에서 ActiveProfile을 어떻게 지정하는 방법을 찾으면서 그 방법에 대해서 정리해 보았다. 이 원문을 보고 정리하였습니다. @Profile빈을 특정 프로파일에 매핑합니다.@Component@Profile("dev")public class DevDatasourceConfig프로파일 이름을 "!dev"로 하면 dev 프로필이 활성화되지 않은 경우에만 활성화가 됩니다. XML로 프로필 선언Profiles은 X..

하루의 경험들을 기록하고 기억하며, 보다 나은 내일의 백엔드 개발자를 꿈굽니다. 이동욱님 처럼 소소하게 개발에 대한 지식을 쌓아가고 싶다. 블로그용 Github도 만들었다. ㅇ 신규 규격의 블로그 팻말

개발자라면 꼭 봐야하는 동영상이다. 하루씩 하루씩 조금씩 조금씩 기억보다는 기록을... 한번 알았던 것을 기록을 할 때에 바로 내것이 된다. 사소한 것이라도 짧게 기록을 남기는 습관을 가져야겠다. 감사합니다. 이동욱님! 공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. 이동욱 님의 프로필 jojoldu.github.io/ 기억보단 기록을 Java 백엔드, AWS 기술을 익히고 공유합니다. jojoldu.tistory.com

서비스를 운영하면서 모니터링은 꼭 필요합니다. 데이터가 쌓이면서 일부 쿼리들이 느려지거나,어떤 시간 대에 어떤 프로세스에 집중되는 지 파악하여 분산화 작업도 수반되어야 합니다.이 모든 것이 가능하려면 현재 서비스의 구체적 모니터링이 필수적입니다. 현재 회사에는 PinPoint를 사용하고 있습니다. 제가 PinPoint를 소개하며 제가 사용하면서 좋았던 점에 대해서 공유합니다. Pinpoint Live Demo 장점에 대해서Pinpoint는 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 처리하는 플랫폼입니다. 2012년 7월에 개발을 시작해 2015년 1월 9일에 오픈소스로 공개했습니다. GitHub의 Pinpoint 프로젝트: https://github.com/naver/pinpointPinpoi..

회사 프로젝트가 근로기준법과 관련된 작업이 있었다. DB 컬럼을 만들어야 하는데, 영어 작문이 너무 어려웠다. 참고용으로 남겨본다. (1년을)초과하다 exceed (one year) (취업규칙)신고 submission ~의 귀책사유 cause attributable to~ 1일 근로시간 working hours per day 1주간 근로시간 working hours per week 1주간 소정근로시간 contractual working hours per week 가사사용인 worker who is hired for domestic works 가산임금 additional wages 가족수당 family allowances 감금 confinement 감급제재 punitive reduction in wages..

REST와 SOAP는 각기 다른 두 가지의 온라인 데이터 전송 방식입니다. 둘 다 웹 애플리케이션 간 데이터 통신을 허용하는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 구축하는 방법을 정의합니다. REST(Representational State Transfer)는 아키텍처 원칙 세트이고, SOAP(Simple Object Access Protocol)는 World Wide Web Consortium(W3C)에서 유지관리하는 공식 프로토콜입니다. 즉, SOAP는 프로토콜이지만, REST는 프로토콜이 아니라는 점이 주요 차이점입니다. 일반적으로 API는 활용 사례와 개발자의 선호에 따라 REST 또는 SOAP 중 하나를 준수합니다. REST(..

json관련하여 jackson 라이브러리를 사용하고 있다. jackson에서 재공하는 유용한 어노테이션을 정리한다. Read+ Write Annotations @JsonIgnore public class TestIgnore { @JsonIgnore public long testId = 0; public String name = null; } 위 코드에서 testId는 JSON에서 읽거나 기록되지 않는다. @JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties({"firstName", "lastName"}) public class PersonIgnoreProperties {..