Dev 33

[Spring Boot] mapstruct 적용 시 주의점

최근 객체 맵핑 라이브러리인 ModelMapper의 대안으로 MapStruct가 제법 사용 되는것 같아서 적용 시 문제가 생겼던 부분을 정리해 놓는다. ModelMapper : modelmapper.org/ ModelMapper - Simple, Intelligent, Object Mapping. Why ModelMapper? The goal of ModelMapper is to make object mapping easy, by automatically determining how one object model maps to another, based on conventions, in the same way that a human would - while providing a simple, refact..

Dev 2021.03.17

[k8s] Under proxy, Virtual Box 환경에서 도커 및 k8s 설치

준비 virtual box nat 네트워크 생성 -> ip는 적당히 부여, DHCP 사용 안함 호스트 네트워크 관리자 -> 호스트 네트워크 추가 생성 및 ip 확인, 각 머신별로 알맞게 ip 할당(그래야 ssh 접속 가능) 가상머신 키면 장치 -> 확장 설치 먼저 할것 -> 그래야 공유폴더 사용 가능 apt 프록시, 사내 인증서 설치 먼저 각 가상 OS 별 네트워크 1번 -> nat 네트워크, 2번 -> 호스트 어댑터 ubuntu ipv6 disable 설정 도커 설치 후 프록시 설정 추가 마스터와 워커노드들은 외부 인터넷이 연결된 상태여야함 -> curl -L google.com 설치 참고 사이트 bluesky10 -> blusky10.tistory.com/472?category=658752 mac 용..

Dev 2020.11.13

[Intellij] 사용자 지정 live template기능

intellij 에서 사용하는 자동 완성 기능 들은 모두 live template 에 등록이 되어있다. 예를들면 psvm(public static void main), iter(for each) 등... intellij Preferences -> live template 을 검색해 보면 java 쪽에 등록이 되어 있다. 사용자 정의가 필요한 것들은 직접 등록해서 쓰면 된다. 예를 들면 tdd 같은 경우 메소드 정의에 적을 것이 많은데 live template 로 만들어 두면 편하게 쓸 수 있다. 아래 Application in java 는 java 코드에서 어디에서 동작할지를 정의 한다. tdd 는 메소드 정의 이므로 아래와 같이 declaration 에 체크하면 된다. (iter 같은 경우는 for e..

Dev 2020.09.21

[Intellij] usages 단축키 외 사용법

그 동안 intellij 에서 사용처(usages)를 찾기 위해서는 주로 alt + f7 을 사용 했었는데 유용한 기능이 추가되어 남겨둠. intellij Preferences 에서 아래 code vision 을 검색 후 usages 를 체크해 주면 됨(처음엔 체크가 안 되어 있음) 그러면 아래와 같이 클래스나 메서드 상단에 몇 군데에서 사용하는지가 나오고 클릭하면 팝업으로 사용처가 뜬다. 추가로 사용처 팝업을 띄우는 방법은 위에 언급한 alt + f7 이외에 마우스 휠의 버튼을 누르면 동일한 팝업이 뜬다. 맥북같은 경우는 터치패드 깊게 누르기(깊게 누르면 2번 클릭 됨)를 하면 동일한 팝업을 띄울 수 있다. 위 내용의 출처는 백기선님의 유튜브 입니다. youtu.be/14l2iim-c00

Dev 2020.09.21

[gradle] dependency tree 보기

오픈소스 취약점이 발견되었는데 해당 라이브러리가 종속 관계에 있는경우, dependency tree 를 확인하여 parent 라이브러리를 확인해야 한다. gradle 을 사용하는 경우 # gradle dependencies 명령어를 사용하면 tree 를 console 창에 볼 수 있다. 그렇지만 어디에 있는지 찾기가 어려움.... 툴을 사용하자... intellij 에 gradel -> help 에 보면 동일한 명령어가 있다. 실행하면 동일한 결과를 intellij output 창에서 볼 수 있다. 추가로 gradle plugin 을 지정하면 다음과같이 report 를 생성할 수 있다. html 도 생성해 주니 htmp 에서 찾거나 txt 를 활용하면 편하게 찾을 수 있다.

Dev 2020.09.09

[vi] vi norm 블록 주석

vi에서 visual 모드를 이용해 주석을 치는 방법을 까먹을까봐 정리해둠. 아래와 같이 xml인 경우 //나 #은 주석으로 사용할 수 없기 때문에 이 필요하다. http://localhost:8080/hazelcast-mancenter 방법은 다음과 같음 1. vi로 열어 v로 블록 지정(visual 모드) 2. :norm i 으로 뒷부분 주석처리(공백은 구분을 위해 둠) 4. 주석을 해제하려면 블럭을 지정 후 :norm 4x 혹은 :norm xxxx(앞에서 부터 네칸을 지움) --> http://70.30.173.39:8080/hazelcast-mancenter --> --> 5. 뒤를 지우기 위해 블럭을 지정 후 :norm $xxx(뒤에서부터 3개 지움) http://70.30.173.39:8080..

Dev 2020.02.13

[JPA] 낙관적인 락과 비관적인 락 간단 정리

*아래 글은 김영한님의 '자바 ORM 표준 JPA 프로그래밍' 16장을 정리한 글입니다. http://acornpub.co.kr/book/jpa-programmig 낙관적인락 JPA에서 제공하는 버전관리 기능을 사용 -> 어플리케이션 레벨의 락 종류 READ -> OPTIMISTIC 과 같음(JPA 1.0 호환용) WRITE -> OPTIMISTIC_FORCE_INCREMENT 과 같음(JPA 1.0 호환용) NONE - 락 옵션을 적용안해도 엔티티에 버전 어노테이션 필드가 있으면 낙관적 락이 적용 - 수정 시 업데이트 쿼리에 버전 비교, 버전이 다른경우 예외 발생 - 두번의 갱신 분실 문제 해결 OPTIMISTIC - NONE + @Version은 업데이트시 버저 확인, OPTIMISTIC은 조회만 해..

Dev 2020.02.11

[Spring Boot] Transaction Propagation and Isolation 에 대한 정리

본 포스팅은 아래 사이트를 해석 및 정리한 글입니다. https://www.baeldung.com/spring-transactional-propagation-isolation Transaction Propagation and Isolation in Spring @Transactional | Baeldung Learn about the isolation and propagation settings in Spring's @Transactional www.baeldung.com 1. @Transactional 어노테이션이란? @Transactional을 사용하여 트랜잭션에 대한 전파, 격리, 시간 초과, 읽기 전용 및 롤백 조건을 설정할 수 있다. Spring은 프록시 생성 또는 클래스 바이트 코드를 조작하여..

Dev 2019.12.24