dev-log
close
프로필 배경
프로필 로고

dev-log

  • 전체글 (50)
    • Java (11)
    • Spring (7)
    • JPA (2)
    • SQL (6)
    • DevOps (3)
      • docker (3)
    • Project (1)
    • Study (1)
    • Front (1)
    • 기타 (15)
    • CS공부 (3)
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
빌더패턴(Builder Pattern)의 장점

빌더패턴(Builder Pattern)의 장점

빌더를 사용하는 장점은 무엇인가?1. setter 방식의 단점기존의 자주 사용하던 자바빈즈 패턴(= setter) 의 경우, 객체 하나를 만드려면여러개의 메서드를 호출해야 하고, 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다.(=객체의 불변성이 깨진 상태)멀티 스레드 환경에서 안정성을 얻으려면 추가 작업을 해줘야 한다.예) 여러개의 스레드가 Student라는 객체에 접근했을 때1번 스레드는 Student에 아무 값이 없는 빈 객체일수도 있고 2번 객체는 이름과 나이가 setter로 설정된객체일 수도 있다. 하지만 setter를 제거하고 애초에 처음 만들때 값을 가진 객체로 생성하고그 값이 불변하다면 Thread-safe 하다고 말할 수 있다.2. 불변 객체(1) 생성자그럼 객체를 불..

  • format_list_bulleted Java
  • · 2022. 4. 18.
  • textsms

배열, List, EnumSet 인자들 comma 찍어서 console에 출력하기

예를들어 apple, banana, grape 가 있으면 보통 for문으로 돌려서.. 마지막 콤마는 빼는 로직을 사용했었다. 이거보다 더 좋은 방법이 있을 거 같았는데 도저히 생각이 안났는데 ㅎ.. 쉬운 방법을 놓고 돌아가고 있었네.. Java8에 추가된 String.join() 메서드 List, Array List fruits = Arrays.asList("apple","banana", "grape"); String result = String.join(",", fruits); EnumSet EnumSet.allOf(Topping.class).stream().map(Enum::toString).collect(Collectors.joining(", "));

  • format_list_bulleted Java
  • · 2021. 10. 26.
  • textsms
Wrapper Class

Wrapper Class

int 와 Integer의 차이 int (Primitive 자료형) '자료형' 을 의미한다. (int, float, long, double 와 같은 하나의 primitive 자료형을 의미합니다.) '산술 연산'이 가능합니다. null 로 초기화 불가능합니다. (0으로 초기화 가능합니다.) Integer (Wrapper 클래스-객체) Wrapper 클래스입니다. Unboxing 을 하지 않으면 산술 연산이 불가능하지만, null값은 처리할 수 있습니다. null값 처리가 용이해서 SQL 과 연동할 경우 처리가 용이. 직접적인 산술연산은 불가능합니다. Wrapper 클래스란? Wrapper 클래스란 자바 기본형을 클래스화 시킨 것으로 기본 데이터형을 값이 아닌 객체로 사용할 수 있는 방법을 제공한다. Jav..

  • format_list_bulleted Java
  • · 2021. 8. 3.
  • textsms
JPA native query 작성방법

JPA native query 작성방법

상황 pagination 구현해야함 entity가 아닌 DTO 로 받아야함 union all 사용 → @Query 사용해서 구현 페이지네이션 사용 @Query( value = "SELECT * FROM Users ORDER BY id", countQuery = "SELECT count(*) FROM Users", nativeQuery = true) Page findAllUsersWithPagination(Pageable pageable); parameter에 pageable을 넣으면 알아서 offset, limit 설정해줌 ※ 2.0.4 이전의 SpringData JPA 버전 → \n-- #pageable\n ← 이거 추가 단, 이후 버전인데 이걸 추가하면 실행이 안됨.. 주석이라 상관 없을 줄 알고 추..

  • format_list_bulleted Java
  • · 2021. 7. 6.
  • textsms
enum으로 legacy code 와 신규 코드 매핑

enum으로 legacy code 와 신규 코드 매핑

enum으로 legacy code 와 신규 코드 매핑 📌갓블로그 참고 Legacy DB의 JPA Entity Mapping (Enum Converter 편) - 우아한형제들 기술 블로그 1. 기존 코드와 Scrapping 시 보내주는 코드 기존 코드 01, 02, 03... 같은 숫자 코드. 스크래핑시 보내주는 코드는 한글 이름으로 보내줌. ex) 계산서, 수정계산서 2. 신규 코드 enum으로 정의 public enum TaxBillType implements CommonType { @JsonProperty("세금계산서") TAX_A("세금계산서", "01"), @JsonProperty("수정세금계산서") TAX_B("수정세금계산서", "02"), @JsonProperty("계산서") TAX_C("계산..

  • format_list_bulleted Java
  • · 2021. 7. 6.
  • textsms

java, split과 tokenizer의 차이점

String str = "홍길동--2001/03/14-서울시"; String split[] = str.split("-"); for (int i = 0; i >차이점 * split : null 문자를 같은 데이터 인정 * StringTokenizer : null문자를 같은 데이터 인정하지 않음 StringTokenizer st = new StringTokenizer(str, "-"); int len = st.countTokens(); System.out.println("len = " + len); System.out.println(st.nextToken()); Sy..

  • format_list_bulleted Java
  • · 2017. 11. 14.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 전체글 (50)
    • Java (11)
    • Spring (7)
    • JPA (2)
    • SQL (6)
    • DevOps (3)
      • docker (3)
    • Project (1)
    • Study (1)
    • Front (1)
    • 기타 (15)
    • CS공부 (3)
최근 글
인기 글
최근 댓글
태그
  • #nativequery
  • #Java
  • #modelmapper
  • #tomcat
  • #JPA
  • #nginx
  • #docker
  • #intellij
  • #list
  • #spring
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바