자바

java

[effective java] 생성자에 매개변수가 많다면 빌더를 고려하자

빌더 패턴 정적 팩터리와 생성자에 선택적 매개변수가 많을 때 고려할 수 있는 방안 대안1: 점층적 생성자 패턴 또는 생성자 체이닝 • 매개변수가 늘어나면 클라이언트 코드를 작성하거나 읽기 어렵다. public class A{ int a; int b; int c; A(int a,int b) {}; //필요한 필드만 주입하여 생성하는 경우가 있다. A(int b){};//3개 필드 ->최대 2^3==8개의 생성자가 생성된다. ............ } 대안2: 자바빈즈 패턴 (기본 생성자로 생성 후, setter를 통해 필요한 의존관계를 주입) • 완전한 객체를 만들려면 메서드를 여러번 호출해야 한다. (일관성이 무너진 상 태가 될 수도 있다.) ex) A객체는 a,b,c 객체를 주입받아야 사용될 수 있는데..

Spring boot

자바 제네릭(generic)

제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미 제네릭의 장점 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다. 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다. 3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다. 아래와 같이, 클래스, 인터페이스, 추상 클래스 등을 정의할 때, 타입을 임의의 제네릭으로 둔 뒤, 사용 시점에서 타입을 정의하여 사용하는 것이 가능하다. // 제네릭 클래스 class SimpleClass { private E element;// 제네릭 타입 변수 void set(E element) {// 제네릭 파라미..

Spring boot

자바 익명함수와 람다식

익명 함수 먼저 익명 함수라는 것은 말 그대로 이름이 없는 함수를 말한다. 익명 함수를 사용하는 이유는 나중에 다시 부를 일이 없으므로 프로그램 안에서 일시적으로 한 번만 사용되고 버려져도 되는 객체일 때 사용하는 것이다. 일회성이기 때문에 메모리 관리에서 효과적이다. 이는 함수를 정의하고 해당 함수를 변수에 저장하여 다른 곳에서 사용할 수 있도록 하는 기능을 제공한다. 익명 함수는 주로 다음과 같은 상황에서 유용하다. 함수를 변수에 할당하고 재사용해야 할 때: 익명 함수는 함수를 변수에 할당하여 다른 곳에서 호출하거나 전달할 수 있습니다. 이는 코드의 중복을 줄이고 유지보수성을 향상시키는 데 도움이 됩니다. 또한 다른 함수의 파라미터로 전달할 수 도 있습니다. 이벤트 처리: 익명 함수는 이벤트 처리기로..

Spring boot

[JPA] Part 4 (값 타입)

*김영한님의 JPA 기본편을 기반으로 작성하였습니다. JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예)회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 기본값 타입 자바 기본 타입(int, double) • 래퍼 클래스(Integer, Long) String 임베디드 타입(embedded type, 복합 값 타입): 좌표값 등을 묶어서 값으로 쓰고 싶을 때, x,y좌표를 클래스로 묶어 값처럼 사용 컬렉션 값 타입(coll..

Spring boot

Spring 소셜 로그인 처리 [OAuth]

이 글은 앞서 포스팅한 아래의 글과 이어지는 글 입니다. https://codenme.tistory.com/58 Spring security란? 스프링 시큐리티를 통한 작업은 크게 2가지로 나눌 수 있다. 인증(Authentication): 해당 사용자가 본인이 맞는지를 확인 인가(Authorization): 인증된 사용자가 요청한 자원에 접근 가능한지 확인 유저가 codenme.tistory.com [OAuth] 서비스 제공 업체들이 각자 다른 방식으로 로그인하지 않도록 제공하는 공통의 인증 방식. 기존에 사용자와 관리자, 2가지의 ROLE로 유저가 구분되었지만, OAuth를 사용하면, 구글, 네이버 등의 소셜 로그인 서비스를 제공하는 제 3의 인물을 포함해야한다. 나는 Google의 소셜 로그인 서비..

코앤미
'자바' 태그의 글 목록