일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- spring
- heap메모리
- 리눅스
- Stash
- mybatis
- orm
- Elk
- Apach
- Gradle
- 레드마인
- Bitbucket
- JVM
- springboot
- 스프링
- npm
- ElasticSearch
- 아파치
- 엘라스틱서치
- nodejs
- 트랜잭션
- sql
- SonarQube
- mysql
- DB
- 자바
- Java
- 마이바티스
- slave node
- 시스템운영
- Today
- Total
목록java (19)
프로그래머호이잇
-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) 로 변환..
Mybatis #과 $의 차이 PrepareStatment(#)와 Statment($) Statement($) 1. 단일로 사용될 때 빠른 속도를 지닙니다. 2. 쿼리에 인자를 부여할 수 없습니다. 3. 매번 컴파일을 수행해야 합니다. 4. 단순 String Replace (SQL 인잭션 공격에 취약할수있음!!!!!!!!!!) PreparedStatement(#) 1. 쿼리에 인자를 부여할 수 있습니다. 2. 처음 프리컴파일 된 후, 이후에는 컴파일을 수행하지 않습니다. 3. 여러번 수행될 때 빠른 속도를 지닙니다.
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..
저는 Value 어노테이션을 이용하여 진행하겠습니다~ Spring-context.xml 위 구문은 WEB-INF/properties 폴더안에있는 properties를 모두 읽어드리는 구문입니다~ 경로는 원하시는 경로로 변경하세요~ 저는 메일 인증 아이디 패스워드 등을 properties 파일로 만들었긴 때문에 아래와 같이 생성하였습니다. mail.properties mail.host=smtp.naver.com mail.username=아이디 mail.password=패스워드 mail.port=465 mail.address=메일주소 Mail.java @Service public class Mail { @Value("${mail.host}") private String host; @Value("${mail...