일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- springboot
- slave node
- 마이바티스
- 엘라스틱서치
- Bitbucket
- spring
- heap메모리
- 트랜잭션
- Elk
- orm
- 스프링
- DB
- 시스템운영
- 아파치
- npm
- 레드마인
- Apach
- mybatis
- Java
- SonarQube
- sql
- JVM
- ElasticSearch
- Gradle
- 리눅스
- Stash
- 자바
- mysql
- nodejs
- Today
- Total
목록Java (22)
프로그래머호이잇

-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) 로 변환..
빌드 Tool : Gradle db : h2database Spring Boot, Lombok 이용하여 ORM 을 코딩해 보았습니다. build.gradle 의존성 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web-services' implementation 'com.h2database:h2' compileOnly 'org.projectlombok:lombok' devel..
totalMemory는 현재 힙에 할당된 총 메모리 크기 maxMemory는 최대로 할당될 수 있는 메모리 크기 freeMemory는 현재 할당된 힙 메모리 중 사용가능한 크기 확인 방법 Code double maxMemory = (double) Runtime.getRuntime().maxMemory() / (1024 * 1024); double totalMemory = (double) Runtime.getRuntime().totalMemory() / (1024 * 1024); double freeMemory = (double) Runtime.getRuntime().freeMemory() / (1024 * 1024); 1024 * 1024 로 나누어 주는 이유는 MB 로 단위를 변경하기 위함
SELECT * FROM BLOG state = #{state} AND title like #{title} AND author_name like #{author.name} 을 쓰지 않고 where로 쓴다면 SELECT * FROM BLOG where state = #{state} AND title like #{title} AND author_name like #{author.name} 위와 같이 될 겁니다. 이렇게 되면 어떤 문제가 발생하냐.. if 절이 모두 실행 되지 않는다면 sql 문장이SELECT * FROM BLOG where 위와 같이 되서 에러가 발생합니다..ㅠㅠ 그리고 첫번쨰 if 절이 실행이 되지 않는다면..SELECT * FROM BLOG where AND title like #{tit..
public void countQuery(@Param("name")String parameter); 이렇게 @Param 어노테이션을 붙이면 본인이 원하는 명으로 mapper에서 사용할 수 있다. 위와 같은 경우는 #{name}이 되겠다. 물론, 어노테이션을 쓰지 않아도 mapper에서 #{param1} 이라던지, #{parameter} 로 파라미터 명을 적으면 사용이 가능하다. 출처 : http://blast21.kr/38
쿼리 도중 에러가 발생시!!! rollback 해줍니다~!! 설정 방법.@Transactional 요 어노테이션을 메소드나 Class에 붙입니다.
preHandle() 메서드 컨트롤러가 요청을 처리하기 전 실행됨. Insterceptor 와 filter 차이 구조 filter -> dispatcher servlet -> Insterceptor prehandle 메소드 -> controller -> Insterceptor posthandle -> dispatcher servlet -> filter 요런 차이임
aop 시점 설정 Pointcut 선택된 Joinpoints execution(public * *(..)) public 메소드 실행 execution(* set*(..)) 이름이 set으로 시작하는 모든 메소드명 실행 execution(* set*(..)) 이름이 set으로 시작하는 모든 메소드명 실행 execution(* com.xyz.service.AccountService.*(..)) AccountService 인터페이스의 모든 메소드 실행 execution(* com.xyz.service.*.*(..)) service 패키지의 모든 메소드 실행 execution(* com.xyz.service..*.*(..)) service 패키지와 하위 패키지의 모든 메소드 실행 within(com.xyz.se..
http://maven.apache.org/download.cgi요기 들어가서 다운로드 링크는 가져오시면됩니다~ cd /usr/local 다운로드wget http://apache.mirror.cdnetworks.com/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz 압축해제tar -xvf apache-maven-3.5.0-bin.tar.gz 폴더 명 변경mv apache-maven-3.5.0 maven 환경 변수 설정 vi /etc/profile export MVN_HOME=/usr/local/mavenexport PATH=$PATH:$MVN_HOME/bin 환경 변수 적용 source /etc/profile 환경 변수 확인 echo $MVN_HO..