일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- javascript
- Oracle
- laravel
- Spring Boot
- AWS
- redis
- tool
- 요리
- Design Patterns
- linux
- java
- IntelliJ
- Web Server
- ReactJS
- elasticsearch
- jsp
- devops
- db
- springboot
- ubuntu
- jenkins
- Spring Batch
- 맛집
- MySQL
- Git
- Gradle
- JVM
- Spring
- it
- php
- Today
- Total
목록전체 (810)
아무거나
서로 연관이 있는 테이블의 row를 삭제하는 경우가 있는데, 아래의 예제 코드를 사용하면 단지 하나의 쿼리만으로 수행이 가능 예제 ) DELETE u, up, upc, ut, utp FROM users AS u LEFT JOIN users_photos AS up ON up.user_id = u.id LEFT JOIN users_photos_comments AS upc ON upc.photo_id = up.id LEFT JOIN users_topics AS ut ON ut.user_id = u.id LEFT JOIN users_topic_posts AS utp ON utp.topic_id = ut.id WHERE u.id = 12
Teams Web Hook API를 이용한 Message Sending 처리 Teams 메신저를 사용할 경우 애플리케이션에 알람이 필요한 경우의 예제 코드이다. 메세지를 수신받을 Teams API 생성 (1) Teams 좌측 메뉴에서 "팀"을 클릭한다. (2) "채널 추가"를 클릭한다. (3) 입력란에 입력 후 "추가"를 클릭한다. (4) "커넥터"를 선택한다. (5) "Incoming Webhook" 우측의 "구성" 버튼을 클릭한다. (6) 이름을 입력하고 하단의 "만들기" 버튼 클릭. (7) 제공하는 URL을 복사한다. (반드시 기억하고 있어야 한다.) (8) 좌측 구성됨을 선택하여 확인할 수 있다. (9) "이 채널 팔로우"를 선택하면 팀즈 채널로 메세지가 전송될 때 마다 알림이 표시된다. (10)..
[elasticsearch] 타입 매핑 관련.. 일반적으로 elasticsearch는 오토매핑이라 넘어오는 데이터순으로 필드들이 생성되어진다. 그럴경우에 데이터 형태가 맞지않는 경우 예를들어 1 or 2 등의 데이터를 string값으로 인식하여 내려주는경우. 즉, 이 값을 int값으로 사용하고 싶을 떄 타입매핑을 사용한다.(데이터 형식을 정해줌.) 보통 인덱스 최초생성때 타입매핑을 해준다. 그 이유는 인덱스별로 alias를 사용하는경우 alias가 변경될때마다 계속 인덱스를 생성하므로 직접 타입매핑 api를 날려도 소용이없는 상황이 생기기 때문이다. 또한 이런 의문이 생길수도있다. "난 데이터형식에 대한 정의가 명시적인게 좋다" 이럴 경우에 최초에 생성하면되는데 속도가 매우 느려진다고 한다. --> 자세..
[logstash를 이용한 db에서 es로 데이터 전송 5.5.0 기준] # 스펙 # tar.gz 형태 # logstash 5.5.0 # mysql-connector-java-5.1.36.jar 1. logstash를 설치한다. ex) wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.tar.gz 2. logstash 압축을 푼다 ex) tar -xvzf logstash-5.5.0.tar.gz 3. mysql-connector-java-5.1.38.jar 다운 * 참조 : https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38 - wget http://central...
[elasticsearch] 검색쿼리 요청시 count(size) 10000이 넘을 경우 에러 elasticsearch 기본 count 세팅값은 10000으로 되어있다. 이 부분을 수정하려면 2가지 방법이 있다. 1. elasticsearch.yml에 아래 값을 지정하여 준다. [elasticsearch.yml] index.max_result_window {count} 2. api를 호출하여 수정한다. - curl -XPUT "http://localhost:9200/my_index/_settings" -d '{ "index" : { "max_result_window" : 200000 } }'
[AWS S3를 활용한 ELK 스택 로그 백업 및 복원] 1. 설치(S3 repository plugin) - elasticsearch 와 같은 서버에 설치한다. - cd /usr/share/elasticsearch - sudo bin/elasticsearch-plugin install repository-s3 - sudo service elasticsearch restart 2. s3 백업을 등록(aws IAM 기준) - curl -XPUT 'http://127.0.0.1:9200/_snapshot/s3_elk_backup' -d '{ "type":"s3", "settings":{ "access_key":"[YOUR_ACCESS_KEY]", "secret_key":"[YOUR_SECRET_KEY]", ..
@NotNull과 BindingResult를 활용한 파라미터 예외처리 [Param.java] import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Param { @NotNull(message = "name 값을 입력하여 주시길 바랍니다.") private Integer name; @NotNull(message = "id 값을 입력하여 주시길 바랍니다.") private Integer id; } [Controller.java] @PostMapping("saveTest") public ApiResult setSaveTest( @ApiParam( valu..
[큐레이터 - qurator] ELK 스택을 장기간 운용하게 되면 과거의 많은 로그가 디스크 공간을 차지하게 된다. 매번 운영자가 오래된 데이터를 삭제하는 것보다, 이를 자동화해서 관리하는게 시스템을 보다 안정적으로 운용할 수 있다. 큐레이터는 기간 및 디스크 사이즈 기준으로 오래된 로그를 지워주는 프로그램이다. ex) 한달 이상된 인덱스를 지워라.. 1. 설치 - pip install elasticsearch-curator - 명령어에 curator라고 치면 관련에러를 볼 수 있다. 2. curator config 설정 # [curator.yml] --- # Remember, leave a key empty if there is no value. None will be a string, # not a ..
Spring Boot에서 특정 디렉토리에 있는 파일 목록 읽기 설정 파일에 파일이 저장되어있는 경로를 설정(MAC 기준, 외장 tomcat 구성 기준) [application.yml] ... # dev local-server: local-file-save-path: ${HOME} # live local-server: local-file-save-path: /var/lib/tomcat8/webapps ... [FileServerProperties.java] // application.yml에 설정된 파일 경로를 가져온다. import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.Configura..
Spring Boot에서 에러 페이지 처리하기 에러가 발생할 때 웹 페이지에 에러에 대한 내용을 바로 출력하는 경우가 있다. 이와 같은 경우를 방지하기 위하여 에러페이지를 커스터마이징을 할 수 있는 컨트롤러를 만들어보자. 컨트롤러 생성 ErrorController를 Implements하여 커스텀 에러 컨트롤러를 생성한다. [CustomErrorController.java] import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.servlet.e..