목록전체 글 (13)
공부일지
바인딩 : 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위 바인딩의 종류 - 정적 바인딩 컴파일 시간(Complietime)에 결정 (프로그램이 실행되어도 변하지 않는다.) 오버로딩 (Overloading) 이 해당된다. 실행 속도에 영향을 주지 않는다. - 동적 바인딩 실행 시간(Runtime)에 결정 (실행 중에도 변할 수 있다.) 오버라이딩 (Overriding) 이 해당된다. 프로그램의 속도가 떨어지는 원인이 되지만 이점이 더 많기 때문에 사용한다. 캐스팅의 종류 - 업캐스팅 자식 클래스가 부모 클래스 타입으로 캐스팅 되는 것 공통적으로 할 수 있는 부분을 만들어 간단하게 다루기 위해 사용 캐스팅 연산자 괄호 생략 가능 자식 클래스의 속성과 메소드를 실행하지 못한다. - 다운..

@NoArgsConstructor : 매개변수가 없는 생성자를 생성한다. 필드가 final일 경우 에러 발생. @NoArgsConstructor(force=true) 로 강제 생성 가능 @RequiredArgsConstructor : 초기화 되지 않은 final 필드와 @NonNull인 필드를 매개변수로 생성자 생성한다. @AllArgsConstructor : 모든 필드를 매개변수로 생성자를 생성한다.

예시 문제 {1,2,3} 을 {3,2,1} 로 변환 int[] arr = {1, 2, 3}; public int[] reverseArr(int[] arr) { if(arr.length == 0) { return new int[]{}; } int[] head = Arrays.copyOfRange(arr, arr.length - 1, arr.length); // 가장 끝 인덱스 복사 int[] tail = reverseArr(Arrays.copyOfRange(arr, 0, arr.length - 1)); // 나머지 배열 복사 int[] result = new int[head.length + tail.length]; System.arraycopy(head, 0, result, 0, head.length); ..
목표 상기하기 현재 내가 학습을 통해 이루고자 하는 것은 무엇인가요? : 넓고 깊게 아는 개발자 되기, 하고자 하는 것에 있어서 정점 찍어보기 여러분이 현재 바라는 목표를 모두 이루었다면 나는 어떻게 변해 있을까요? : 꽤 만족스러운 삶을 살고 있을 것 같다. Keep, Problem 작성하기 목표를 달성하기 위해 했던 모든 노력 중 반드시 유지해야 할 것은 무엇인가요? : 포기하지 않는 정신력 유지하기, 항상 낙관적으로 생각하기 목표를 달성하기 위해 세웠던 계획 중 가장 유지하기 어려웠던 것은 무엇인가요? : 앉아서 하는 일이기 때문에 체력을 기르기 위한 운동 꾸준히 하기 Try 작성하기 목표를 달성하기 위해 계속해서 유지해야 할 노력이 있다면 무엇인가요? : 무언가를 배우는 것도 중요하지만 복습을 더..
ArrayList 선언 방법 ArrayList a = new ArrayList(); ArrayList a1 = new ArrayList(Arrays.asList("a","b","c")); //요소가 있는 ArrayList ArrayList b = new ArrayList(); ArrayList 객체 추가, 객체 검색, 객체 삭제 ArrayList a = new ArrayList(); /* 객체 추가 */ a.add("A"); a.add("B"); /* 객체 검색 */ a.get(0); // "A" /* 객체 삭제 */ a.remove(0); // "A" 삭제, "B"만 출력 HashMap 객체 선언, 객체 추가, 객체 검색, 객체 삭제 HashMap a = new HashMap(); HashMap a1 ..
싱글톤 패턴 : 객체의 인스턴스가 오직 1개만 생성되는 패턴 메모리 낭비를 유지시켜준다. 데이터 공유가 가능하게 해준다. 리펙토링 : 코드 결과의 변경 없이 구조를 재조정하는 과정. 가독성을 높여주고 유지보수를 편하게 해준다. DI (Dependency Injection) 의존성 주입 : 객체 외부에서 객체를 생성해서 넣어주는 방식 강한 결합을 느슨한 결합으로 만들어준다. field 주입 : 변수 선언부에 @Autowired setter 주입 : setter 메서드에 @Autowired constructor 주입 : 생성자에 @Autowired

캐시와 조건부 요청 캐시가 있으면 캐시 가능 시간동안 네트워크를 사용하지 않아도 되어서 로딩 속도가 빨라지고 네트워크 사용량을 줄일 수 있다. 검증 헤더 + 조건부 요청 ( Last - Modified ) + ( If - Modified - Since, If - Unmodified - Since ) 서버에 저장되어 있는 Last - Modified (데이터가 마지막에 수정된 시간) 를 웹 브라우저 캐시에 저장 캐시 시간이 초과되면 서버에 If - Modified - Since가 같은지를 조건부로 요청 Last - Modified 가 같으면 HTTP 바디 를 빼고 HTTP 헤더만 304 Not Modified 상태로 전송 (용량 작음) 다르면 HTTP 바디 + 헤더를 200 OK 상태로 전송 검증 헤더 +..
헤더의 용도 : HTTP 전송에 필요한 모든 부가정보 RFC2616 (과거 HTTP. 폐기됨) General 헤더 : 메시지 전체에 적용되는 정보 Request 헤더 : 요청 정보 Response 헤더 : 응답 정보 Entity 헤더 : 엔티티 바디 정보 RFC7230 ~ 7235 (최신) 엔티티 -> 표현 = 표현 메타데이터 + 표현 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 표현 Content-Type : 표현 데이터의 형식 ex) html, json Content-Encoding : 표현 데이터의 압축 방식 ex) gzip, identity Content-Language : 표현 데이터의 자연 언어 ex) ko, en-US Content-Length : 표현 데이터의 길이 (바이트..