public class SomeService {

	private String action(String param){
    		return param + "test";
    	}

}

Test 작성시 private 메서드의 경우 직접 접근을 할 수가 없다.
invoke를 통해서 접근 가능하다. 

@Test
public void 문자열_테스트(){
	
    SomeService someService = new SomeService();
    
    Method testMethod = SomeService.class.getDeclaredMethod("action", String.class);
    testMethod.setAccessible(true);
    testMethod.invoke(someService, "Hello");
    
}

 

flexbox 는 중요한 3가지 개념이 있다.

  1. Container와 Item 에 대한 속성
  2. 중심축과 반대축에 이해 
  3. justify-content, align-content  에 대한 속성

1. Container 와 Item 에 대한 속성 이해 

flex 구조

flex는 container와 item으로 구분되며 각각 지정할 수 있는 속성이 정해져 있다. 

Container 속성 (flex 요소들을 감싸는 태그)

display flex
flex-wrap nowrap(한줄로 표현), wrap 
flex-direction 중심축 지정 : row(기본값, 수평), column(수직)  
flex-flow column nowrap 으로 지정가능
justify-content 중심축 아이템 배치
align-items 반대축 아이템 배치
align-content 반대축 justify-content와 비슷 nowrap일 경우 의미 없음

Item 속성 (flex 요소)

order 아이템 속성을 변경할 수 있음
flex-grow 화면사이즈 증가시 특정 아이템 가중치(0~1)
flex-shrink 화면사이즈 감소시 특정 아이템 가중치(0~1)
flex-basis 화면사이즈 변경시 아이템별 가중치를 퍼센트(%) 로 지정
align-self 컨테이너와 배치 상속하지 않고 아이템만 따로  설정

2.  중심축과 반대축 이해하기 

flxe-direction을 row 로 할 경우 중심축은 수평선 (파랑색) 이며 되며 반대축은 수직선이 된다. 

flexl-direction을 column으로 하면 수직선이 중심축이 된다. 

3. justify-content, align-content  값 

참고 : https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content

flex-start 왼쪽에서 부터 정렬
flex-end 오른쪽에서 정렬
space-around 플렉스 요소는 앞, 뒤, 그리고 요소들 사이에도 모두 여유 공간을 두고 배치 (간격 1:2:2:2:1)
space-evenly 플렉스 요소를 일정한 크기로 배치 (간격 1:1:1:1:1)
space-between 플렉스 요소는 요소들 사이에만 여유 공간을 두고 배치됩니다.  (간격 3:3:3)

 

파라미터 변경

General_log = 1(기본값 0 또는 로깅 없음)
Slow_query_log = 1(기본값 0 또는 로깅 없음)
Long_query_time = 2(2초 넘게 실행되는 쿼리 로그)
log_output = FILE(일반 및 느린 쿼리 로그 모두를 파일 시스템에 작성하고 이러한 로그를 Amazon RDS 콘솔에서 확인할 수 있음)
log_output = TABLE(쿼리를 테이블에 작성하므로 쿼리를 사용하여 이러한 로그를 볼 수 있음)

쿼리 조회 

log_output = TABLE 일 경우

Select * from mysql.slow_log

Select * from mysql.general_log

참고 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-mysql-logs/

아이맥 24인치를 보러 여의도를 갔다
노란색을 보고 싶은데 여의도에 있다고 한다

색상을 보니 더 고르기 힘들어 졌다

히스토그램 

테이블의 열값이 어떻게 분포되어 있는지 확인하는 통계정보입니다. 

MySQL

생성

ANALYZE TABLE 테이블명 UPDATE HISTOGRAM ON 열명 나열;

조회

SELECT * FROM INFORMATION_SCHEMA.COLUMN_STATISTICS;

MariaDB

생성

ANALYZE TABLE 테이블명 PERSISTENT FOR COLUMNS (열명 나열) INDEXES();

조회 

SELECT * FROM mysql.column_stats;

parallel 를 이용하면 병렬처리를 할 수 있다 하지만 기본적으로 서버의 CPU 코어 수에 따라 종속적이라고 한다.
커스텀하게 이용하기 위해서는 ForkJoinPool 을 이용하면 된다. 

List<String> list = Collections.synchronizedList(new ArrayList<>());

ForkJoinPool forkJoinPool = new ForkJoinPool(3);
forkJoinPool.submit(() -> 
	return IntStream.range(1, 100000)
	.parallel()
	.mapToObj(i -> list.add(new Integer(i).toString()))
    .collect(Collectors.toList())
).get();

System.out.println(list);
System.out.println(list.size());

첫번째 줄에 Collections.synchronizedList(new ArrayList<>())사용한 이유는 담는 리스트에 여러 쓰레드가 접근할 경우 동시에 접근하기 때문에 갯수가 다르거나 ArrayIndexOutOfBoundsException 가 발생한다.
단순한 예제로 속도에는 별 차이가 없었다.   병렬처리는 주의깊게 사용해야함을 느껴진다. 

어느 블로그에 들어가보니 목차로 잘 정리되어 있는 것을 보았다. 나도 하고 싶다는 생각에 한참을 찾다가 드디어 찾았다.

정말로 감사드립니다.

https://github.com/wbluke/tistory-table-of-contents

테스트1

테스트1-1

테스트1-2

테스트1-2-1

tr

어떤 내용을 변환 

-d를 많이 사용함(delete)

head /etc/passwd | tr -d ':'

: 이 사라짐 

head /etc/passwd | tr [:lower:] [:upper:]

대문자로 변환

head /etc/passwd | tr ':' '%'

: 을 %로 변환

sed

stream editor

{RANGE}p 라인 출력 ( -n 과 같이 사용)

{RANGE}d 삭제 

/{SearchPattern}/p  특정문자 탐색

/{SearchPattern}/d

s/REG/REPLACE/ 

awk

텍스트 처리 Script Language

-F 구분자 

wc /etc/passwd | awk '{print $1}'

첫번째 탭 출력

head /etc/passwd | awk -F: '{print$1}'

: 키로 구분자를 지정 첫번째 출력

head /etc/passwd | awk -F: '/sy/{print$6}'

: 로 구분 sy가 들어간 문자 6번째 출력

+ Recent posts