728x90

uninstall 이후 기존 플러그인 폴더에 가서 쓰레기 파일들을 지워야 하고 재 설치해야 된다.

https://github.com/qjebbs/vscode-plantuml/issues/290

uninstall plantuml in vscode

clean files rm -rf ~/.vscode/extensions/jebbs.plantuml-2.13.12

reinstall pluanuml ext in vscode


내저장소 바로가기 luxury515

'Back-end > 기타' 카테고리의 다른 글

AWS KMS 관련 세팅  (0) 2023.04.14
DI(Depandency Injection) 에 관하여  (0) 2023.04.14
gradle bootrun 작동 에러  (0) 2023.04.14
radius(레이디스)서버  (0) 2023.04.14
Optional 클래스(1) : 일반예시  (0) 2023.04.14
728x90
Task :npmNodeModuleSetup FAILED dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.68.dylib Referenced from: /usr/local/bin/node Reason: image not found

FAILURE: Build failed with an exception.

node_modules 삭제 후 npm 실행


내저장소 바로가기 luxury515

'Back-end > 기타' 카테고리의 다른 글

DI(Depandency Injection) 에 관하여  (0) 2023.04.14
plantUml preview 갑자기 작동안될때.  (0) 2023.04.14
radius(레이디스)서버  (0) 2023.04.14
Optional 클래스(1) : 일반예시  (0) 2023.04.14
tomcat m1 설정  (0) 2023.04.13
728x90

RADIUS는 Remote Authentication Dial-In User Service의 약자로 AAA 기능 구현을 위한 인증 프로토콜.

RADIUS는 ISP(Internet Service Provider)에서 사용하는 H/W 또는 S/W 등에 의한 원격 접속에 대한 인증용 서버를 지칭합니다. 즉, 원격의 사설 접속자 또는 무선 랜을 통한 접속을 그룹웨어, 무선 AP 등에 연결하기 전 사용자의 인증 및 인가를 하기 위한 서버 입니다.

Authentication인증망,시스템 접근을 허용하기 전에 사용자의 신원을 검증
Authorization인가검증된 사용자에게 특정 수준의 권한과 서비스를 허용합니다.
Accounting계정관리사용자의 자원에 대한 사용 정보를 수집하여 이에 대해 감사 및 보고를 수행합니다.

구성요소:

  • 사용자:

    실제 서비스 사용을 위해 서버에 접속하는 사용자

  • RADIUS 클라이언트 (인증 에이전트)

    VPN (Virtual Private Network): 가상 사설망, 사용자와 인터넷 사이의 보안 통신을 구축하는 개념  WLAN (Wireless Local Area Network): 전파를 통해 장비 간 네트워크를 구축하는 방식  AP (Access Point) / WAP (Wireless Access Point): 유선 LAN과 무선 LDAN을 연결하는 장치 (공유기 등)  NAS (Network Access Server): 인증을 처리하고 네트워크 지점 간 프로토콜 연결을 위한 장치

  • RADIUS 서버 (인증 서버)

    인증을 위한 주요 자격 정보를 저장 및 관리하는 서버

특징

중앙 통합 관리 분산되어 있는 클라이언트들의 정보, 사용자 정보를 중앙에서 관리할 수 있습니다.
표준 통합 관리 분산되어 있는 클라이언트들의 정보, 사용자 정보를 중앙에서 관리할 수 있습니다.
표준 기반 구조 구성 요소 간에 표준화된 프로토콜을 사용하여 호환성을 보장합니다.
서비스 확장 다수의 서비스 제공자와 다중 도메인 환경에서 동작할 수 있습니다.
UDP 통신 기본적으로 UDP 통신을 합니다. 인증/인가 포트: 1812 계정 관리 포트: 1813

구성:


내저장소 바로가기 luxury515

'Back-end > 기타' 카테고리의 다른 글

plantUml preview 갑자기 작동안될때.  (0) 2023.04.14
gradle bootrun 작동 에러  (0) 2023.04.14
Optional 클래스(1) : 일반예시  (0) 2023.04.14
tomcat m1 설정  (0) 2023.04.13
IPv6 와 IPv4 를 비교했을때 장점은 뭐지?  (0) 2023.04.13
728x90

뭐 제목은 거창하지만 내용은 별거 없을것 같다. 어로그 끌어서 미안하지만 …

일단 설명을 하자면 NPE를 방지하기 위한 노력은 예전부터 많은 JAVA 개발자들이 세세대대 이어져왔다.

아직도 개발도중에 NPE 은 우리를 항상 괴롭히기도 한다.

뭐 아시다싶이 apache Commons Utils 를 이용하여 String , Object 에 대한 null 체크를 대부분은 하고 있다. 하지만 오늘 얘기할 부분은 Optional 클래스에 위임하는 방식이니 이해하고 그냥 읽어만 달라.

가끈 팀프로젝트에서 해당 클래스를 이용해서 null 체크하라는 지시가 있을때 하려고하면 항상 까먹곤 하니 오늘 좀 자주쓰는 부분을 적어보자.

public OrderDto getOrderDto(Long orderId) {
    QOrder order = QOrder.order;
    QUser user = QUser.user;
    QItem item = QItem.item;

    OrderDto orderDto = queryFactory
        .select(Projections.constructor(OrderDto.class, order, user))
        .from(order)
        .leftJoin(order.user, user)
        .where(order.id.eq(orderId))
        .fetchOne();

    if (orderDto == null) {
        throw new NotFoundException("Order not found");
    }

    List<OrderItemDto> orderItemDtos = queryFactory
        .select(Projections.constructor(OrderItemDto.class, item))
        .from(orderItem)
        .join(orderItem.item, item)
        .where(orderItem.order.id.eq(orderId))
        .fetch();

    orderDto.setOrderItemDtos(orderItemDtos);

    return orderDto;
}

아래와 같이 개선 해보았다.

public OrderDto getOrderDto(Long orderId) {
    QOrder order = QOrder.order;
    QUser user = QUser.user;
    QItem item = QItem.item;

    OrderDto orderDto = queryFactory
        .select(Projections.constructor(OrderDto.class, order, user))
        .from(order)
        .leftJoin(order.user, user)
        .where(order.id.eq(orderId))
        .fetchOneOptional()
        .orElseThrow(() -> new NotFoundException("Order not found"));

    List<OrderItemDto> orderItemDtos = queryFactory
        .select(Projections.constructor(OrderItemDto.class, item))
        .from(orderItem)
        .join(orderItem.item, item)
        .where(orderItem.order.id.eq(orderId))
        .fetch();

    orderDto.setOrderItemDtos(orderItemDtos);

    return orderDto;
}

내저장소 바로가기 luxury515

'Back-end > 기타' 카테고리의 다른 글

gradle bootrun 작동 에러  (0) 2023.04.14
radius(레이디스)서버  (0) 2023.04.14
tomcat m1 설정  (0) 2023.04.13
IPv6 와 IPv4 를 비교했을때 장점은 뭐지?  (0) 2023.04.13
equals()와 hashCode() 에 대한 고찰  (0) 2023.04.13

+ Recent posts