본문 바로가기

분류 전체보기

(887)
[Sibelius First] step by step 시벨리우스 step by step 1. staff : 위/아래 비교 2. 하나를 만들어서 복사해서 음만 변경해서 사용(템플릿) 3. 화살표(up/down)을 누르면 음표 음 이동이 가능 (마우스보다 빠름) - command를 누르고 이동하면 옥타브 단위로 이동 4. 선택을 하면 코드를 동시에 한번에 이동할 수 있음 횡: shift 종: command 5. 손가락 번호 shift를 누르면 종으로 입력이 가능 배치 이동 가능 6. option 을 누르고 기존 입력된 음에 화음을 입력 가능 7. 화살표 (right/left) 하면 연속된 음 선택이 가능하다 돈꾸밈음 고민 First에는 기능이 없나?
[Java] 참조(Reference)와 주소의 관계 자바 카페에서 2020-07-24 에 논쟁을 했던 내용이다. 어떤 자바를 공부하는 사람이 아래와 같은 질문을 했다. 질문 내용: equals(), == 질문드립니다. - 질문 내용 : 안녕하세요. 자바에서 equals(), ==는 주소값이 같은지 확인하는거라 들었는데요. class Person { String name; public Person(String name) { this.name = name; } @Override public boolean equals(Object obj) { if(!(obj instanceof Person)){ return false; }else{ return this.name == ((Person)obj).name; } } } 위 예제 처럼 equals를 오버라이딩 했습니다..
[GarageBand] 클래식 기타 반주 입력 바흐곡 중 쳄발로를 전자 키보드로 입력을하는 것을 고민하다가 카페에 어떤 분이 파가니니 칸타빌레를 바이올린만 연주해서 반주를 붙힐 수 있을 가 고민하다가 학습 바이올린은 음원으로 녹음 반주는 시퀀스로 입력. 키보드로 박자만 입력해서 음을 조절할 수 있었음 건반 키보드가 있고 컴퓨터 키보드가 있는데 그냥 컴퓨터 키보드가 입력하기가 편하다. 음을 괜히 잘 입력하려고 할 필요는 없이 박자만 맞춰서 눌러주면 된다. 입력 후 보정 작업을 한다. 재생/정지는 스페이스, 앞/뒤로 이동은 콤마(,) 및 점(.) 버튼이다. (상당히 많이 쓰임) 피치조정은 option 을 누르고 위아래 버튼을 누르면 된다. 옥타브 피치조정은 shift-option 누르고 위아래 버튼 음의 선택은 shift 를 누르고 영역을 드래그 하면 ..
[GetTogether] macOS 용 자소교정기 - 발단 2020년 2월이 되어 상반기가 끝나서 평가를 했다. 평소 프로젝트를 디렉토리로 관리를 해서 ls 명령을 파일로 만들어서 쓰려고 했는데 한글 자소가 풀리는 현상이 있었다. 예) 위의 폴더를 ls 명령과 리다이렉션을 이용하면 디렉토리 목록을 파일로 만들 수 있다. 하지만 list.txt 파일의 내용은 아래와 같았다. 한글의 자소가 풀어졌던 것이다. 다만 이것은 텍스트 에디터 Sublime Text 2 이 유니코드의 NFD를 제대로 처리를 못하고 있어서 이렇게 보이는 것이다. NFD를 처리하고 있는 기본 텍스트 편집기는 아래와 같이 제대로 보인다. 결국 mac OS에서 윈도우로 옮겨진 파일 이외에도 내부적으로 NFD로 구성된 한글이 문제가 발생될 수 있는 것을 경험한 것이다. 그래서 NFD로 되어 있는 파일..
[macOS] 주 디스플레이 변경하기 기본적으로 보조 모니터는 주 디스플레이로 설정이 안되어 있다. 나의 경우는 맥북을 제일 왼쪽에 두고 사용을 하는데 이게 고개를 돌려야 해서 불편하다. 처음 뜨는 윈도우나 alfre, 볼륨 표시도 주 디스플레이에 나오기 때문이다. 하지만 변경하는 법이 있었다는... 여러 창들 중에 위에 하얀색 메뉴바같은 모양이 있는데 그것이 붙어있는 네모가 주 디스플레이다. 하지만 너무 작아서 이게 변경이 된다는 생각을 못했다. 아래 그림처럼 마우스 커서를 위에 두고 드래그 하면 옮길 수 있다. 아래 처럼 해당 회색 길다란 네모를 드래그를 해서 주 디스플레이로 사용할 곳에 드롭을 하면 된다.
[slf4j] MDC에 put만 계속한다면 MDC를 이용해서 Correlation ID 추적에 사용을 하고 있다. 스프링을 사용한다면 AsyncHandlerInterceptor 인터페이스를 구현한 HandlerInterceptorAdapter 를 상속받으면 preHandle 과 afterCompletion 메서드에 MDC에 값을 넣고 지우도록 할 수 있다. import java.util.UUID; import org.slf4j.MDC; public class MDCInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { M..
[JPA] Hibernate + MariaDB : count(*)의 매핑이 BigInteger로 되는 이유는? 회사의 수지님이 퇴근 전 물어보아 찾아보게 된 MaraiDB의 JDBC 드라이버. EntityManager 를 통해 NativeQuery를 수행하는데 반환되는 타입이 Long으로 생각했는데 BigInteger 타입으로 반환되어 ClassCastException 가 발생했다고 한다. 간략하게 코드로 보면 아래와 같다. @Service public class CountService { private final EntityManager entityManager; @Autowired public CountService(EntityManager entityManager) { this.entityManager = entityManager; } public Long countIssue() { Query query =..
[JPA] N+1 문제 면접 때 자주 나오는 단골 문제 N+1 Ploblem이다. 내가 맡고 있는 팀은 그동안 테이블을 비정규화 해서 사용을 하고 있었기에 엔티티가 관계를 맺고 있지 않아서 이 문제를 만날 일이 없었다. 이번에 현금영수증 관련 기능을 개발하면서 그동안 중복저장하던 데이터를 좀 효율적으로 사용하기 위해 정규화를 해서 테이블을 쪼갰다. 드디어 N+1 문제를 만났다. EntityA, EntityB 가 있는데 EntityB 안에 EntityA를 포함하고 있다고 치자. FetchType이 EAGER 라면 EntityB를 조회하면 자동으로 EntityA 를 조회하는 쿼리까지 수행이된다. 조회하는 EntityB의 개수가 10개라면 각각 관련된 EntityA까지 추가로 +10회 조회가 되어 총 11회의 조회가 발생한다. 그렇..