본문 바로가기

전체 글27

Spring::Spring Boot 3.0 Spring Boot 3.0은 최소 Java 17을 필요로 한다. Java 8 또는 Java 11을 사용한다면 업그레이드가 필요하다. https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes 2023. 1. 29.
Elasticsearch::Rolling-Restart란? Rolling-Restart란? ES 입장에서는 클러스터에 속한 노드중 한대가 중지되면 그 노드에 속한 프라이머리 샤드나 레플리카 샤드를 다른 노드로 옮기려는 샤드 할당(Shard Allocation) 작업을 수행한다. 이는 클러스터의 특정 노드가 장애상황일 때 이부분에 대한 Fail Over가 동작하는 과정이다. 그러나 순차적 재시작 case에서는 이 과정이 오히려 오버헤드(overhead)로 동작하기 때문에 재시작 전 클러스터의 샤드 할당 기능을 비활성화해 샤드 할당이 다시 일어나는 것을 미연에 방지한다. Rolling-Restart 사용 이유 검색 중단 없이 하드웨어 교체, 서버/ Elasticsearch 업그레이드 작업을 위해 사용한다. indices의 _close, _open 없이 수정된 설정 .. 2023. 1. 2.
[Spring Boot] OAuth2의 Authorization Code Grant Type 처리 중 발생했던 에러 내용 정리 Spring Boot 2.0에서 인터넷으로 구할 수 있는 OAuth2 예제(2.0 기반이 아닌 프로젝트)를 따라하다보면 Authorization Code Grant Type에서 아래와 같은 에러가 발생할 수 있음 "User must be authenticated with Spring Security before authorization can be completed." Spring Boot 2.0이 아닌 이하 1.5.x에서는 위 에러 메시지 대신에 로그인 입력 창이 보이는데 2.0에서는 보이지 않음 버전에 따른 차이라면 Dependency인데 1.5.x 이하에서는 아래와 같고, - groupId: org.springframework.security.oauth - artifactId: spring-secu.. 2018. 12. 19.
CentOS 기반 Fluentd와 HDFS(Hadoop) 연동하기 # CentOS 기반 Fluentd와 HDFS(Hadoop) 연동하기 @ Fluentd 준비하기 설치 curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh 데몬 실행 /etc/init.d/td-agent start systemd systemctl [start / stop / restart / status] td-agent.service init.d /etc/init.d/td-agent [start / stop / restart / status] 테스트(8888 포트는 최초 설치 시 디폴트로 사용) curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.. 2018. 9. 12.
데이터베이스 네이밍 룰(Naming Conventions) 데이터베이스 네이밍 룰(Naming Conventions) 국내에 데이터베이스 네이밍 룰을 찾아보면 예전 규약을 많이 작성해 놓으셨는데 아래 URL의 내용이 그나마 흐름에 맞는 거 같고 나에게도 맞는듯 하다. https://launchbylunch.com/posts/2014/Feb/16/sql-naming-conventions/ 2018. 2. 8.
GSON Type 정의 관련 정리 JAVA에서 GSON으로 리스트 형태의 데이터를 변환하는 경우 아래와 같이 Type 인스턴스를 생성해서 적용해줘야 컴파일 에러가 나지 않습니다. Type type = new TypeToken() {}.getType();gson.toJson(mappingInfoList, type));gson.fromJson(jsonString, type); 또한, Generic Type을 사용하는 클래스를 GSON을 사용해서 JSON으로 변환하고, 클래스로 다시 변환하는 경우아래와 같은 Exception이 발생하는 경우가 있는데요. "com.google.gson.internal.LinkedHashTreeMap cannot be cast to my object" 이건 Generic Type을 사용해서 발생하는 문제이고 Ty.. 2017. 11. 21.
리눅스 SNMP OID 등록 방법 리눅스에 SNMP OID를 등록하려고 했던 이유는 톰캣 프로세스가 실행되고 있는지 SNMP로 확인이 필요했음 SNMP 사용을 위해 OS에는 net-snmp를 설치했고 OID를 아래와 같이 등록함 OID 등록은 아래의 순서로 진행함 @ /etc/snmp 디렉토리에 scripts 디렉토리를 생성함 mkdir /etc/snmp/scripts @ 스크립트 파일을 생성함 vi /etc/snmp/scripts/checkTomcatProcess.sh @ 스크립트의 내용은 아래와 같음 #!/bin/bash ps -ef | grep -v grep | grep "/svc/java/bin/java" | grep -c "/svc/cms/was/tomcat-7.0.27" 위 스크립트를 설명하면 1. 프로세스를 체크 2. "gr.. 2017. 3. 9.
톰캣 SNMP 설정 [Windows 기준] - /bin/Tomcat7w.exe 를 통해 Tomcat Properties를 실행시킨다. - Java 탭으로 이동해서 Java Options에 아래의 설정을 추가한다. -Dcom.sun.management.snmp.port=1610 (SNMP 통신에 사용할 포트 번호) -Dcom.sun.management.snmp.acl.file=C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\snmp.acl (SNMP의 보안 설정) -Dcom.sun.management.snmp.interface=0.0.0.0 (?? 나중에 확인하기) - -Dcom.sun.management.snmp.acl.file에 설정한 snmp.acl 파일의 경우.. 2017. 2. 23.
Marshalling and Unmarshalling by the JAXB JAXB로 마샬링과 언마샬링 하려면 JAXB 클래스가 있어야 함JAXB 클래스는 .xsd라고 XML 스키마가 정의된 파일을 xjc 툴로 자동 생성함(.xsd 파일은 어디선가 받겠죠~!).xsd가 있는 경로에서 "xjc -d . *"를 실행하면 JAXB 클래스가 생성됨, 좀더 디테일한 설정은 Help 참조(xjc -d . * -p com.company.sub)마샤링과 언마샬링은 아래 소스 코드 참고 public class JaxbConvertor {private static JaxbConvertor mSingleton = null;private JAXBContext mJAXBContext = null; private JaxbConvertor()throws JAXBException {mJAXBContext .. 2016. 11. 15.