junhkang의 개발 블로그
close
프로필 배경
프로필 로고

junhkang의 개발 블로그

  • DEV (103)
    • Postgresql (47)
    • Linux (4)
    • AWS (4)
    • 운영체제(OS) (1)
    • Spring (19)
    • 네트워크 (3)
    • Java (4)
    • WEB (2)
    • Elastic Search (1)
    • 이펙티브 자바 (10)
    • 디자인패턴 (5)
    • GitHub (1)
    • LLM (2)
  • 홈
  • 태그
  • 방명록
[이펙티브 자바] 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

[이펙티브 자바] 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

1. 개념 단순히 정적 메서드와 정적 필드만을 담은 클래스를 생성하는 경우가 있다. 객체 지향적 사고하지 않는 이들이 종종 남용하지만 쓰임새는 분명히 존재한다. 단순히 정적 메서드와 정적 필드만으로 클래스를 생성하는 경우 기본 타입 값이나 배열 관련 메서드의 집합 ex) java.lang.Math, java.Util.Arrays 특정 인터페이스를 구현하는 객체를 생성해 주는 정적 메서드의 집합 ex) java.util.Collections final 클래스와 관련된 메서드의 집합 (final 클래스를 상속해서 하위 클래스에 메서드를 넣는 것은 불가능하기 때문) 해당 정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰기 위해 설계한 것이 아니지만 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성..

  • format_list_bulleted 이펙티브 자바
  • · 2024. 2. 18.
  • textsms
[디자인패턴] 추상 팩터리(Abstract Factory) 패턴의 개념, 예제, 장단점, 활용

[디자인패턴] 추상 팩터리(Abstract Factory) 패턴의 개념, 예제, 장단점, 활용

1. 추상 팩토리(Abstract Factory) 패턴 이란? 추상 - 구체적으로 어떻게 구현되는지 생각하지 않고 인터페이스(API)에만 주목하는 상태 공장 - 부품을 조립하여 제품 완성 추상 + 공장 패턴 : 추상적인 공장에서 추상적인 부품을 조합하여 추상적인 제품을 만든다. 부품의 구체적인 구현에 집중하지 않고 인터페이스에 주목, 인터페이스만 사용하여 부품을 조립하고 제품으로 완성한다. 다음 표를 보면 추상 팩토리가 어떤 구조로 이루어졌는지 확인할 수 있다. Abstract Factory : 최상위 공장, 메서드들을 추상화한다. AbstractProduct의 인스턴스를 만들기 위한 인터페이스를 결정한다. Concrete Factory : 서브 공장 클래스, 유형에 맞는 객체를 반환하도록 메서드들을 재..

  • format_list_bulleted 디자인패턴
  • · 2024. 2. 16.
  • textsms
[Linux] JDK 여러 버전 적용하기, 여러개의 패키지 관리하기 (update-alternatives)

[Linux] JDK 여러 버전 적용하기, 여러개의 패키지 관리하기 (update-alternatives)

1. 문제 상황 JDK21을 서버에 적용하면서, 기존 버전과 동시에 사용해야 하는 상황 발생 2. 해결 물론 빌드할 때마다 자바 홈 경로를 바꿔서 적용하거나, 각 톰캣의 catalina.sh에 echo JAVA_HOME=개별 JAVA경로 혹은 startup.sh 스크립트 상단에 개별 JAVA_HOME을 명시하는 방법도 있지만, 심볼릭 링크를 통해 여러 패키지를 관리하는 방식인 update-alternatives 를 통해 적용하였다. 개념은 심볼릭링크 (상세 내용은 아래 링크 참고) 2023.10.09 - [Linux] - [Linux] 심볼릭 링크 (Symbolic link) 설정하기 [Linux] 심볼릭 링크 (Symbolic link) 설정하기 1. 심볼릭 링크 (Symbolic link)란? 링크를..

  • format_list_bulleted Linux
  • · 2024. 2. 5.
  • textsms
[Spring] 스프링부트 3, 스프링 시큐리티 6, 로그인 세션 유지, 로그인 풀림

[Spring] 스프링부트 3, 스프링 시큐리티 6, 로그인 세션 유지, 로그인 풀림

1. 문제 상황 스프링 부트 3, 스프링 시큐리티 6 업데이트가 되며 기존에 사용 중인 WebSecurityConfigurerAdapter를 더 이상 지원하지 않기에 기존의 WebSecurityConfigurerAdapter를 상속받아 기능을 구현하는 대신 컴포넌트화 시켜서 구현해야한다. SecurityFilterChain으로 스프링 시큐리티를 구현 중 (antMacher -> requestMacher, dispatcherTypeMatcher설정 등 기본 Spring Security6.0 마이그레이션 가이드는 적용 완료 https://docs.spring.io/spring-security/reference/5.8/migration/index.html) Preparing for 6.0 :: Spring S..

  • format_list_bulleted Spring
  • · 2024. 2. 2.
  • textsms

[Spring] 스프링부트 3 jstl 적용(maven), (절대 URI인 [http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다.)

1. 문제 상황 스프링부트 3 버전 업데이트 중 jstl URI / 라이브러리를 찾지 못하는 현상 발생 http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. 2. 해결 타 라이브러리와 동일하게 javax -> jakarta 기반 jstl maven dependency를 추가해주면 된다. jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api 3.0.0 jakarta.servlet jakarta.servlet-api 6.0.0 jakarta.servlet.jsp jakarta.servlet.jsp-api 3.1.0 provided jakarta.el jakar..

  • format_list_bulleted Spring
  • · 2024. 1. 31.
  • textsms

[Spring] Java 21 롬복(lombok) 버전 설정 (java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid')

1. 문제 상황 JDK21 버전 업 중 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 라는 에러와 함께 빌드 실패 2. 해결 JDK21과 호환되지 않는 롬복(lombok) 버전 문제로 확인, (JDK21과 호환되는 최소 롬복(lombok) 버전은 1.18.30이다.) org.projectlombok lombok 1.18.30 provided 기존 사용 중인 구버전 롬복(lombok)을 작성일 기준 최신버전이자 JDK21 호환 최소 버전인 1.18.30으로 변경해 주면 정상적으로 빌드가 된..

  • format_list_bulleted Spring
  • · 2024. 1. 31.
  • textsms
  • navigate_before
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • ···
  • 18
  • navigate_next
전체 방문자
오늘
어제
전체
전체 카테고리
  • DEV (103)
    • Postgresql (47)
    • Linux (4)
    • AWS (4)
    • 운영체제(OS) (1)
    • Spring (19)
    • 네트워크 (3)
    • Java (4)
    • WEB (2)
    • Elastic Search (1)
    • 이펙티브 자바 (10)
    • 디자인패턴 (5)
    • GitHub (1)
    • LLM (2)
최근 글
인기 글
태그
  • #티스토리챌린지
  • #spring
  • #이펙티브자바
  • #Index
  • #오블완
  • #PostgreSQL
  • #test
  • #Effective Java
  • #AWS
  • #디자인패턴
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바