일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 스프링
- heap메모리
- Gradle
- slave node
- 엘라스틱서치
- orm
- Java
- sql
- npm
- 레드마인
- SonarQube
- Stash
- 마이바티스
- JVM
- mysql
- 아파치
- 시스템운영
- 트랜잭션
- nodejs
- Elk
- springboot
- ElasticSearch
- mybatis
- Git
- spring
- 리눅스
- DB
- Apach
- Bitbucket
- Today
- Total
목록호이잇 프로그래밍 (77)
프로그래머호이잇
Client 요청 -> Filter -> Dispatcher Servlet -> Interceptor -> Controller 와 같이 처리되는 구조로 되어있음. 모든 Request 는 위와 같이 처리되며 따라서 각 구간 별 전처리 후처리가 가능한 구조 •Filter 기능은 Web Container 에서 제공하는 기능 •Dispatcher Servlet 는 각 요청이 처리되어야할 Controller 에 전달하는 역할 •Dispatcher Servlet을 통해 모든 Request 를 처리하며 Controller 호출 전 Interceptor 라는 개념을 만들어 전/후 처리가 가능하도록 구현 •Interceptor 구조 postHandle : Controller 호출 전 전처리 postHandle : Con..
Spring Boot 에서는 WAR 파일 형태로 배포되는 것이 아닌 JAR 파일형태로 실행된다. 즉 Tomcat 등 Server 자체가 임베디드 형태로 구성이 되어있다. 이 부분을 어떻게 코드로 구현할 수 있을까? 이미 Tomcat 등 Web Container 에서는 임베디드가 가능하도록 Container 자체의 core 모듈을 실행할 수 있도록 배포한다. (Spring Boot 에서는 Web Container를 Tomcat 이 Default 로 설정이 되어있고 다른 Container 로 변경이 가능하다. 아마 내부 구현이 Interface 형태로 되어있지 않을까 싶다) 위 그림과 같이 Spring Boot Application 실행 시 Tomcat Core 를 참조하여 Web Container 를 구동..
elastic search 실행 시 received plaintext http traffic on an https channel, closing connection 오류발생 elasticsearch.yml 설정 - xpack.security.enabled: false - xpack.security.enrollment.enabled: false - xpack.security.http.ssl: enabled: false - xpack.security.transport.ssl: enabled: false
기본적으로 설치해서 실행하게되면, disk 기반으로 Elasticsearch 가 실행되게 되어있습니다. 이 경우 저는 디스크 초과로 인하여 오류가 발생하였는데 conf/elasticsearch.yml 파일에 아래와 같이 disk 초과 관련 옵션을 수행하지 않겠다는 내용을 추가하여 해결 후 진행하였습니다 cluster.routing.allocation.disk.threshold_enabled: false 지난번 포스트에서 Index를 생성하였습니다. 그러면 Index에 data를 입력 후 조회해 보아야겠죠? 그래서 저는 _doc (document) 를 아래와 같이 POSTMAN을 사용하여 입력하였습니다. 위와 같이 PUT 요청을 통하여 USER 를 입력하여 GET 요청을 통하여 조회하였습니다. DELETE..
동시성은 소프트웨어 개발에서 가장 까다로운 측면 중 하나이다. 여러 프로세스나 스레드가 동일한 데이터를 조작하는 경우 필연적으로 동시성 문제가 발생한다. 동시성문제 개념 1. 손실된 업데이트 A가 파일 abc를 수정하는 중 B가 동일한 파일인 abc파일을 수정 후 저장한다. A가 파일을 읽은 시점에는 B가 수정한 내용이 없으므로 A는 파일 수정 시 B가 수정한 내용은 반영되지 않는다. 2. 일관성 없는 읽기 A가 디레토리 a 의 하위 파일 수 와 디렉토리 b의 하위 파일 수를 알려고 한다. a의 디렉토리에 파일 수를 확인 후 잠시 자리를 비운동안 B가 a 디렉토리에 작업을 하여 파일을 3개 추가하면 A는 그내용이 반영되지 않은 파일의 수만 읽게된다. 이러한 문제는 동시성의 가장 기본적인 문제이다. 실행 ..
우선, Index에 대한 개념부터 알고 들어가보자. Elasticsearch에는 Documnet, Type, Field, Mapping, Index 라는 논리적 구조가 존재한다. 1. Documnet RDBMS의 Row 와 비슷한 개념으로 Object 하나를 말하며 다양한 Field로 구성되어있음. 2. Type RDBMS의 Table 과 비슷한 개념으로 Documnet를 포함한 개념. Elasticsearch 7.0 부터 Type이 완전히 사라졌으며, 현재는 Index가 RDBMS의 Table 과 Databases 역할을 한다고함. 3. Field RDBMS의 Column 과 비슷한 개념이지만 다른점은 하나의 Field 가 여러개의 Type 을 가질수 있음. 4. Mapping 필드와 필드의 속성을 정..
Window 에 Elasticsearch 를 설치하겠습니다. 다운로드 링크 : https://www.elastic.co/kr/downloads/elasticsearch Download Elasticsearch Download Elasticsearch or the complete Elastic Stack (formerly ELK stack) for free and start searching and analyzing in minutes with Elastic. www.elastic.co windows 로 다운받으신다음 압축을 푸시면 디렉토리에 이렇게 되어있을꺼에요 그다음 bin/elasticsearch.bat 파일을 실행시켜줍니다. 그 후 localhost:9200 으로 접속하면 아이디 패스워드를 입력하라..
-Xms : 초기 JVM이 생성될때 설정한 Heap 메모리 값 -Xmx : JVM이 최대 사용 가능한 Heap 메모리 값 e.g. -Xms1200m –Xmx1200m JAVA Heap 메모리 구조는 Java8 기준으로 Eden 영역, Survivor 영역, Old 영역이 존재한다. Eden, Survivor 영역을 Young Generation, old 영역을 Old Genertaion 으로 관리된다. Young Generation 과 Old Genertaion 영역에서 참조되지 않는 변수들은 모두 Garbage Collector(이하 GC) 대상이 된다. GC 는 Minor GC, Major GC 2가지 로 나뉜다. Garbage Collector 과정 1. Garbage Collector 가 Stac..
JVM(Java Virtual Machine)이란? 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체임. CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능함. 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할 JVM의 구성을 살펴보면 크게 4가지(Class Loader, Execution Engine, Garbage Collector, Runtime Data Area)로 나뉨 Class Loader JAVA 컴파일러를 통해 컴파일된 Class파일을 JVM이 운영체제로부터 할당받은 메모리 영역인 Runtime Data Area 로 적재함 JAVA 컴파일러란? 자바소스를 기계어(Class) 로 변환..
프레젠테이션 : 서비스제공, 정보표시 (HTML,CSS Javascript)사용자 요청, HTTP 요청 웹 프레젠테이션 이란? 웹 브라우저 기반의 사용자인터페이스로 소프트웨어 설치가 필요없고, 공통적인 UI 제공, 범용적 접근을 제공하는 프레젠테이션 계층 웹브라우저 기반 어플리케이션에서 웹 서버의 역할은 요청을 받으면 URL을 해석하고 웹서버 프로그램으로 제어권을 넘겨주는 것. 웹 서버 프로그램을 구성하는 방식은 스크립트, 서버 페이지 라는 두가지 주요형식이 존재함. 스크립트 : 일반적으로 HTTP호출을 처리하는 함수나 메서드를 포함하는 프로그램으로서 CGI스크립트와 자바 서블릿을 예로 들 수 있음. 서버페이지 : 반환하는 페이지는 HTML 로 작성하고 특정 시점에 실행할 코드를 HTML 스크립트릿으로 ..