Pug 소개
·
language/pug
Pug란?pug는 HTML 전처리기이며 템플릿 엔진으로, 태그를 사용하는 HTML과 달리 인덴트(들여 쓰기)를 이용해 문서를 작성하도록 도와줍니다.2015년 Jade에서 Pug로 개명되었으며, NodeJS에서 사용되는 기술입니다.doctype htmlhtml(lang="ko") head title= pageTitle body h1.primary-header #{greeting} ul#menu each item in menuItems li: a(href=item.url)= item.labelpug의 예시 코드 Pug의 특징1️⃣ 간결한 문법pug는 들여쓰기로 자식 요소를 포함하므로 닫는 태그가 필요하지 않습니다.HTML에서는 자식 요소가 많아질수록 닫는 태그 또한 ..
java의 불변 리스트 (Arrays.asList vs. List.of)
·
language/java
정말 많이 사용되지만 혼동하기 쉬운 Array.asList와 List.of에 대해 정리해보려 합니다. 불변 리스트불변 리스트는 생성한 후 수정할 수 없는 리스트를 의미합니다. 말 그대로 불변성을 가진 리스트를 말하는데요.불변 리스트는 값이 변경되지 않기 때문에 일반적인 리스트에 비해 안정성이 높습니다. 여러 쓰레드에서 동시에 리스트에 접근하더라도 읽기 작업만을 할 수 있기 때문에 동기화를 신경 쓸 필요가 없고, 의도치 않은 변경을 막을 수 있습니다. java에서는 크게 3가지 방법을 이용해 불변 리스트를 만들 수 있습니다.Arrays.asListList.ofunmodifiableList순서대로 하나씩 사용 방법에 대해 알아봅시다. 가짜 불변 리스트: Arrays.asList// 인자를 하나씩 전달List..
Lombok의 @Builder와 @SuperBuilder
·
language/java
lombok 라이브러리는 반복되는 패턴을 줄여주어 코드의 간결성과 유지보수성을 크게 높여줍니다.lombok은 Builder 패턴을 편리하게 사용할 수 있도록 @Builder 애노테이션을 제공해줍니다.애노테이션 중에는 @Builder 외에도 @SuperBuilder 애노테이션이 존재합니다.그렇다면 @SuperBuilder는 무엇일까요?@Builder 애노테이션과 @SuperBuilder 애노테이션의 차이에 대해 알아보려 합니다. @Builder@Builder는 lombok에서 제공하는 기본적인 빌터 패턴 구현 애노테이션입니다. 특정 클래스에 대해 빌더 클래스를 생성하여, 객체를 유연하게 생성할 수 있도록 도와줍니다. 주요 특징단일 클래스에서 사용@Builder는 상속 관계가 없는 단일 클래스 객체를 생성할..
Java Map의 동시성 문제 (HashMap vs. ConcurrentHashMap vs. Hashtable)
·
language/java
Map은 key-value 형태의 자료를 저장할 수 있는 컬렉션 자료구조 중 하나입니다.key-value 형태는 사람이 알아보기 쉽고, 제공되는 api 또한 간단하기 때문에 많이 사용되는 자료구조인데요.Map의 구현체 중 가장 많이 사용되는 구현체 중 하나로는 HashMap 자료구조가 있습니다.하지만, 멀티 쓰레드 환경에서는 동시성 문제가 발생할 수 있기 때문에 사용에 주의가 필요합니다. HashMap의 동시성 문제HashMappublic class MapExample { private final Map map; public MapExample() { this.map = new HashMap(); } public void add(String key) { ma..