목록2024/05 (6)
csct3434
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2gKZT/btsHCsmTlBN/EbkoN4w1p8Kr9cdkAhEkik/img.png)
1. EC2 권한 설정EC2 인스턴스와 연결된 IAM Role에 CloudWatchAgentServerPolicy 정책을 추가해 줍니다. 인스턴스와 연결된 IAM Role이 없는 경우 AWS Console에 접속하여 아래의 순서대로 진행해 주세요.[IAM] -> [액세스 관리 | 역할] -> [역할 생성][신뢰할 수 있는 엔티티 유형] : "AWS 서비스", [사용 사례] : "EC2" 선택 후 [다음][권한 정책] 검색 창에 "CloudWatchAgentServerPolicy" 입력하여 체크박스 선택 후 [다음]역할 이름 "ec2_role" 입력 후 [역할 생성][EC2] -> [인스턴스 | 인스턴스] -> 체크박스 선택[작업] 버튼 클릭 후 [보안 | IAM 역할 수정][IAM 역할] : "ec2_r..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OnHRe/btsHBUjXMb0/aWlhszIzgi83nM9Xb4VSdK/img.png)
application.propertiesserver: tomcat: basedir: /app accesslog: enabled: true directory: logs prefix: access_log suffix: .log rotate: true max-days: 2 pattern: "%h %l %u %t \"%r\" %s %b"로그 저장 위치 : ${basedir}/${directory}/${prefix}.{yyyy-MM-dd}${suffix}예시 : /app/logs/access_log.2024-05-25.logrotate : 로그 로테이션 활성화 (기본값 : true)max-days : 로그 로테이션 시 저장 기간 (기본값 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/258Kc/btsHUmNn4ws/NDOA6NQOKM0suyo4NATel0/img.png)
IO어떤 디바이스를 통해서 이루어 지는 모든 작업을 IO라고 한다IO는 성능에 영향을 가장 많이 미치는 부분이다.자바에서 IO는 스트림을 통해서 이루어진다주요 클래스클래스명용도ByteArrayInputStream바이트로 구성된 배열을 읽어서 입력 스트림을 만든다.FileInputStream이미지와 같은 바이너리 기반의 파일 스트림을 만든다.FilterInputStream여러 종류의 유용한 입력 스트림의 추상 클래스이다.ObjectInputStreamObjectOutputStream을 통해서 저장한 객체를 읽기 위한 스트림을 만든다.PipedInputStreamPipedOutputStream을 통해서 출력된 스트림을 읽어서 처리하기 위한 스트림을 만든다.SequenceInputStream별개인 두 개의 스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lC4VF/btsHUe9PNuX/PQU88kK7BSb8KF9Ryw7TIK/img.png)
자바에서 스레드는 어떻게 사용하나?Thread 클래스와 Runnable 인터페이스스레드의 구현은 Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법 두 가지가 있다.기본적으로 Thread 클래스는 Runnable 인터페이스를 구현한 것이기 때문에 어느 것을 사용해도 거의 차이가 없다.자바는 다중 상속을 허용하지 않기 때문에, Thread 외에 상속받을 클래스가 존재한다면 Runnable 인터페이스를 구현해야 한다.public class RunnableImpl implements Runnable { @Override public void run() { System.out.println("This is RunnableImpl."); }}public c..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JTTRM/btsHTTLHALN/lpuprEjDEU8hQgfHKxL0f0/img.png)
06. Staticstatic 잘 활용하기자주 사용하고 절대 변하지 않는 변수는 final static으로 선언하자설정 파일 정보는 static으로 관리하자코드성 데이터는 DB에서 한 번만 읽자static 잘못 쓰면 이렇게 된다static 변수를 여러 곳에서 수정하는 경우 동시성 문제가 발생한다static으로 선언된 Collection 객체는 GC의 대상이 아니기 때문에, 계속해서 데이터가 쌓일 경우 OutOfMemoryError가 발생할 수 있다정리static은 원리를 알고 잘 사용하면 시스템의 성능을 향상시킬 수 있다하지만 잘못사용하면 돌이킬 수 없는 일, 시스템이 다운되거나 예기치 못한 결과가 발생할 수 있다static은 반드시 메모리에 올라가며 GC의 대상이 되지 않는다만약 static을 사용하는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/odchF/btsHTVo9sW3/ew3JN8FWSAhlz4sPWLAQbk/img.png)
if문대상응답 시간 (마이크로초)if 0개 * 1000회0.46if 10개 * 1000회5if 100개 * 1000회63경유하는 if문의 개수를 달리하여 동일한 작업을 처리하는데 소요되는 시간을 측정한 결과이다. if문 10,000회를 실행하는데 4.54 마이크로초가 소요되었고, 100,000회를 수행하는데 62.54 마이크로초가 소요되었다. if문을 1회 실행하는데 0.4 ~ 0.6 나노초가 소요된 것으로, 아주 큰 성능 저하가 발생한다고 보기는 어렵다.switch문switch문도 if문과 마찬가지로 빠른 응답 결과가 나온다.JDK 7부터 String 문자열을 switch문에 사용할 수 있는데, 이는 컴파일러가 문자열을 hashCode() 메서드의 반환값으로 처리하기 때문이다. 자바 컴파일러는 각 문자..