URLConnection 기본 JDK에 포함 HTTP 외 여러 프로토콜 제공 다른 라이브러리와 달리 직관적으로 HTTP Method에 대응되지 않음 HttpClient org.apache.http.client에서 제공하는 라이브러리 timeout 설정 가능 오직 HTTP 클라이언트 코드를 위한 컴포넌트. 서버측 프로세스는 지원하지 않음 HTTPS와 Proxies을 이용한 연결을 지원한다 Cookie 핸들링 지원 HttpComponent 4.x 부터는 Thread 안정적 기능을 제공 RestTemplate spring 3부터 지원 boilerplate code를 줄여준다 HttpRequest를 효과적으로 구현한 것이다 RestTemplate의 Converter는 내장 messageConverter와 더불어..
문제: Repo로 가져올 때는 배열이 초기화가 되는데, Builder로 직접 생성할 때는 초기화가 안됨 이유: Builder 생성자에 초기화되는 필드가 있으면 아마 null로 설정하고 만들어주는듯 방법 @Builder.Default를 필드에 붙이기 → 안 쓰는 게 좋다는 얘기가 있음 또한, 디폴트 애너테이션을 붙이지 않는 경우와 반대로, 그냥 생성자로 생성했을 때 초기화 안 됨 @Builder 를 생성자 메서드에 붙이고 그 안에서 초기화하는 방법 → 내부적으로 자체 초기화. 이 방법 선택 https://stackoverflow.com/questions/47883931/default-value-in-lombok-how-to-init-default-with-both-constructor-and-builder
Item 26. raw type은 사용하지 마라 ✅ 제네릭 클래스, 제네릭 인터페이스 (generic interface) 클래스와 인터페이스 선언에 타입 매개 변수가 쓰인 것. 이를 합쳐 generic type이라고 한다. ✅ raw type 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때를 말한다. 로 타입은 사용하지 말자. 예를 들어 List를 List로만 사용하는 것이다. 로 타입은 이전 자바 버전 호환성 땜에 사용가능하지만, 사용 안하는 게 좋다. 단 예외 2가지가 있다. class 리터럴 List.class는 사용할 수 없고, List.class만 가능하다. instanceof ✅ unbounded wildcard type ?로 쓴다. 어떤 타입인지 신경쓰지 않을 때, 어떤 타입도 담을 ..
Generic method public T method1 (T t){} Integer i = method1(new Integer(1)); 제한된 타입 파라미터 public int method2 (T t1, T t2){} T는 Number 와 그 하위 클래스 타입까지만 가능하다. R로 표시된 건 상위 클래스가 되는데 인터페이스도 가능하다. 제한된 타입 파라미터 public int method3 (T t1, T t2){} 과 반대로 하위 클래스 타입을 제한한다. 와일드카드 타입
자바 코딩 규칙 [https://www.oracle.com/java/technologies/javase/codeconventions-contents.html](번역본: http://kwangshin.pe.kr/blog/java-code-conventions-%EC%9E%90%EB%B0%94-%EC%BD%94%EB%94%A9-%EA%B7%9C%EC%B9%99/) [코딩규칙] 자바 코딩 규칙(Java Code Conventions)[코딩 규칙] 자바코딩 규칙(Java Code Conventions) 자바 프로그래밍 언어 코딩 규칙 원문 : Oracle / Code Conventions for JavaTM Programming Language / 1999-4-20 번역 : Kwangshin's Positive..
의존 객체 : 특정 작업을 수행할 때 필요한 객체. 예를 들어, DB로부터 값을 가지고 올 때 필요한 DAO를 말한다. 이러한 관계를 Dependency라고 한다. 의존 객체를 관리하는 세 가지 방법 1. 사용하는 곳에서 직접 생성 public void deGet(HttpServletRequest request, HttpServletReponse response) throws ServletException, IOException{ try{ ServletContext sc = this.getServletContext(); Connection conn = (Connection)sc.getAttribute("conn"); //DAO 객체 직접 생성 MemberDao memberdao = new MemberDa..
Primitive 타입의 클래스는 모두 ValueOf() 함수를 갖는다. 그렇다면 ValueOf와 new 생성자로 만드는 인스턴스의 차이는 무엇일까? Integer, Boolean과 같은 Primitive 클래스는 Wrapper 클래스이다. 그리고 그 안에는 IntegerCache와 같은 내부 클래스를 갖는다. 따라서 valueOf를 호출하면 내부 클래스에서 관리하고 있는 캐싱된 인스턴스를 반환한다. 새로 메모리를 할당하지 않아서 여러 번 사용하는 객체의 경우 메모리 관리 관점에서 유용하다. 그에 반해 new는 메모리를 새로 할당한다.
멤버 변수 클래스 영역에 선언된 변수를 말한다. 따라서 클래스 변수와 인스턴스 변수를 통칭하는 말이다. 어디에 선언하는지에 따라 클래스 변수 / 인스턴스 변수 / 지역 변수가 나뉜다 클래스 변수 클래스 변수는 클래스가 메모리에 로딩될 때 생성된다. 인스턴스 변수와 달리 모든 인스턴스가 공통된 저장공간을 공유하게 된다. 따라서 클래스를 생성하지 않고도 사용할 수 있고 전역 변수의 성질을 갖는다. 인스턴스 변수 클래스의 인스턴스를 만들 때 메모리에 올라가게 된다. 따라서 인스턴스를 생성한 후에 사용가능하다. 메서드 클래스 메서드 메서드 이름 앞에 'static'을 붙이면 클래스 메서드이다. 클래스 메서드는 클래스 변수와 같이 인스턴스를 생성하지 않고도 호출 가능하다. 따라서 인스턴스 변수를 사용하지 않는다면..
배열 선언 int[] int_arrays; int int_arrays[]; 배열 생성 int[] array; array = new int[5];// 0으로 초기화. 참조형 배열은 null로 초기화 OR int[] array = new int[]{1,2,3,4,5}; OR int[] array = {1,2,3,4,5}; JAVA 에서의 배열의 특징 1) Java에서는 길이가 0인 배열도 생성할 수 있다. int[] arr = new int[0]; 2) JVM이 모든 배열의 길이를 별도로 관리. read-only라서 수정할 수는 없다. arr.length 3) 배열의 이름 변수에는 배열의 할당된 시작 주소가 저장되어 있다. 따라서 함수의 파라미터로 받는 경우 메모리 할당을 한 후에 넘겨주어야 한다. int ..
- Total
- Today
- Yesterday
- ASCII
- SQL 전문가 가이드
- 코테 log
- 사고..
- aws
- fetchResults
- DesignSystem
- point
- Spring-Boot
- annotation
- ActiveAdmin
- Generic
- querydsl
- IntelliJ
- TroubleShooting
- WebClient
- Java
- 실용주의
- 이벤트스토밍
- 이펙티브자바
- Lombok
- ruby
- sort algorithm
- SHA
- gitignore
- effective-java
- 메모리 릭
- Git
- Encoding
- 암호화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |