일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 이팩티브 자바
- AWS RDS
- 인프런백기선
- 이펙티브 자바
- 알고리즘
- 네트워크
- jpa
- 혼공SQL
- 클린코드
- 인프런김영한
- MariaDB
- CleanCode
- 기술면접
- 인덱스
- SQL쿡북
- 자료구조
- AWS
- mysql
- vue.js
- aop
- 이펙티브자바
- 자바스터디
- 알고리즘분석
- 자바예외
- java
- 스프링부트와AWS로혼자구현하는웹서비스
- 도메인 주도 개발 시작하기
- 자바
- react
- DDD
- Today
- Total
목록JAVA (53)
기록이 힘이다.
Finalizer 공격 import java.math. BigDecimal; public class Account { private String accountId; public Account(String accountId){ this.accountId = accountId; if(accountId.equals("푸틴")){ throw new IllegalArgumentException("푸틴은 계정을 막습니다."); //finalizer를 통해 보낼 수 있다 } } public void transfer(BigDecimal amount, String to){ System.out.printf("transfer %f from %s to %s\n", amount, accountId, to); } } public..

-문자열 -사실상 동일한 객체라서 매번 새로 만들 필요가 없다. -new String("자바")을 사용하지 않고 문자열 리터럴 ("자바")을 사용해 기존에 동일한 문자열을 재사용하는 것이 좋다. public class Strings { public static void main(String[] args) { String hello = "hello"; //TODO 이 방법은 권장하지 않습니다. String hello2 = new String("hello"); String hello3 = "hello"; System.out.println(hello == hello2); //false System.out.println(hello.equals(hello2)); //true System.out.println(he..

p29, 이 패턴의 쓸만한 변형으로 생성자에 자원 팩터리를 넘겨주는 방식이 있다. p29, 자바 8에서 소개한 Supplier 인터페이스가 팩터리를 표현한 완벽한 예다. p29, 한정적 와일드카드 타입을 사용해 팩터리의 타입 매개변수를 제한해야 한다. p29, 팩터리 메소드 패턴 p30, 의존 객체가 많은 경우에 Dagger, Guice, 스프링 같은 의존 객체 주입 프레임워크 도입을 고려할 수 있다. -팩터리 메소드 패턴 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다. 새로운 product를 제공하는 팩토리를 추가하더라도, 팩토리를 사용하는 클라이언트 코드는 변경할 필요가 없다. -스프링 Ioc

1.private 생성자 + public static final 필드 간결하고 싱글턴임을 API에 들어낼 수 있다. // 싱글톤을 사용하는 클라이언트 테스트하기 어려워진다. 2. private 생성자 + 정적 팩터리 메서드 API를 바꾸지 않고도 싱글턴이 아니게 변경할 수 있다. 3. 열거 타입 가장 간결한 방법이며 직렬화와 리플렉션에도 안전하다. 대부분의 상황에서는 원소가 하나뿐인 열거 타입이 싱글턴을 만드는 가장 좋은 방법이다.

Java 프로그래밍 언어에는 확인되지 않은 예외( , 및 해당 하위 클래스)를 포착하거나 지정하는 메서드가 필요하지 않기 때문에 프로그래머 RuntimeException는 Error확인되지 않은 예외만 발생시키는 코드를 작성하거나 모든 예외 하위 클래스가 에서 상속되도록 만드는 유혹을 받을 수 있습니다 RuntimeException. 이 두 가지 바로 가기를 사용하면 프로그래머는 컴파일러 오류에 신경 쓰지 않고 예외를 지정하거나 포착하지 않고도 코드를 작성할 수 있습니다. 이것은 프로그래머에게 편리해 보일 수 있지만 catch또는 specify요구 사항의 의도를 벗어나 클래스를 사용하는 다른 사람에게 문제를 일으킬 수 있습니다. 디자이너가 해당 범위 내에서 발생할 수 있는 모든 확인되지 않은 확인된 예외..
https://developer0809.tistory.com/112 [#. SpringBoot] IntelliJ에서 SpringBoot 실행 시, finished with non-zero exit value 에러 해결 어쩌다 보니 backend를 SpringBoot로 돌려야 하는 일이 생겼다 일단 IntelliJ를 설치했고 git에서 코드를 clone 해왔다 ① git clone git 주소를 입력한다 ② build.gradle => Build Module 이때, 에러가 발생한다 @ finis developer0809.tistory.com
https://velog.io/@jollypyun/%EC%98%A4%EB%A5%98-%EA%B8%B0%EB%A1%9DCould-not-resolve-org.springframework.bootspring-boot-gradle-plugin3.0.1 [오류 기록]Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.1. 현재 spring 프로젝트를 생성하면 boot는 3.0.1이 생성이 기본으로 설정되어 있다.그러나, 이는 Java 17에서 지원을 하는 것이고 Java 11에서는 지원을 하지 않는다.Java 17 를 사용하고 싶다면 boot 3.x번대 velog.io

p9, 열거 타입은 인스턴트가 하나만 만들어짐을 보장한다. p9, 같은 객체가 자주 요청되는 상황이라면 플라이웨이트 패턴을 사용할 수 있다. p10, 자바 8부터는 인터페이스가 정적 메서드를 가질 수 없다는 제한이 풀렸기 때문에 인스턴스화 불가 동반 클래스를 둘 이유가 별로 없다. p11, 서비스 제공자 프레임워크를 만드는 근간이 된다. p12, 서비스 제공자 인터페이스가 없다면 각 구현체를 인스턴스로 만들 때 리플렉션을 사용해야 한다. p12, 브리지 패턴 p12, 의존 객체 주입 프레임워크 완벽 공략 1. 열거 타입 Enumeration -상수 목록을 담을 수 있는 데이터 타입. -특정한 변수가 가질 수 있는 값을 제한할 수 있다. 타입-세이프티(Type-Safety)를 보장할 수 있다. -싱글톤 패..