분류 전체보기(112)
-
[아이템3] 직렬화된 인스턴스를 역직렬화할 때마다 새로운 인스턴스가 만들어진다.
싱글턴 클래스는 생성자를 private으로 만들기 때문에 인스턴스를 하나로 유지할 수 있는 것인데 역직렬화는 생성자를 사용하는 것이 아니라 직렬화된 객체의 정보를 읽어 그대로 복원하는 것이기 때문에 별도의 조치를 취하지 않으면 새로운 인스턴스가 생기는 것을 막을 수 없음readResolve 메서드는 직렬화된 데이터를 역직렬화할 때 호출되는 특별한 메서드로, 해당 메서드를 사용하여 역직렬화된 객체를 임의로 대체하거나 수정할 수 있는 기능을 제공public class Elvis { private static final Elvis INSTANCE = new Elvis(); private Elvis() {...} public static Elvis getInstance() {return INSTANCE;}..
2024.07.01 -
[아이템1] 자바 8부터는 인터페이스가 정적 메서드를 가질 수 없다는 제한이 풀렸기 때문에 인스턴스화 불가 동반 클래스를 둘 이유가 별로 없다.
이펙티브 자바자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용하도록 내용 전반을 철저히 다시 썼다. 모던 자바가 여러 패러다임을 지원하기 시작하면서 자바 개발자들에게는 구체적인 모범 사례가 더욱 절실해졌고, 관련 조언을 이 책에 담아낸 것이다. 3판에는 자바 7, 8, 9에서 자바 언어와 라이브러리에 추가된 특성들을 녹여냈다. 특히 그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아본다. 람다(lambda)와 스트림(stream)만을 다룬 장을 포함하여 새로운 아이템도 많이 추가되었다. 새롭게 다루는 주제들 - 함수형 인터페이스, 람다식, 메서드 참조, ..
2024.07.01 -
세그먼트 헤더 찾기
궁금증 DB 버퍼 블록을 읽는 과정을 공부하면서 DBA를 해시 함수의 키 값으로 사용하여 읽으려는 데이터 블록이 캐싱되어 있는 위치를 찾아간다는 것을 알게 되었다. 그런데 DBA는 세그먼트 헤더에 있는 익스텐트 맵을 통해서 얻는 것으로 아는데, 익스텐트 맵을 얻기 위해서 세그먼트 헤더의 위치는 어떻게 찾으며, 세그먼트 헤더를 읽기 위한 디스크 I/O가 1번은 필수적으로 일어나야만 하는지에 대한 궁금증이 생겼다. 그 궁금증을 풀어나간 과정은 다음과 같다. 테이블 스캔 시 DBA 정보를 세그먼트 헤더에 저장되어 있는 익스텐트 맵을 통해 알 수 있다고 아는데 세그먼트 헤더는 어디에 저장되어 있는 걸까? 데이터베이스에서 세그먼트 헤더는 세그먼트에 대한 중요한 메타데이터를 저장하는 구조로, 주로 해당 세그먼트의 ..
2024.02.03 -
HTTP 헤더 2 - 캐시와 조건부 요청
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 함 인터넷 네트워크는 매우 느리고 비쌈 브라우저 로딩 속도가 느림 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 됨 비싼 네트워크 사용량을 줄일 수 있음 브라우저 로딩 속도가 매우 빠름 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를..
2023.10.25 -
HTTP 헤더 1 - 일반 헤더
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com HTTP 헤더 header-field = field-name ":" OWS field-value OWS field-name은 대소문자 구문 없음 용도 HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐 시 관리 정보... 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 분류 - RFC2616(과거) General 헤더 : 메시..
2023.10.25 -
HTTP 상태코드
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(Informational) : 요청이 수신되어 처리 중 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx(Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx(Server Error) : 서버 오류, 서버가 정상 요..
2023.10.25 -
HTTP 메서드 활용
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 클라이언트에서 서버로 데이터 전송 데이터 전달 방식 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 정적 데이터 조회 이미지, 정적 텍스트 문서 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML FORM을 통한 데이터 전송 회원 가입, 상..
2023.10.25 -
HTTP 메서드
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com API URI 설계 가장 중요한 것은 리소스 식별 행위는 모두 배제하고 대상을 리소스로 식별 회원 목록 조회이면 회원이 리소스 계층 구조상 상위를 컬레션으로 보고 복수 단어 사용 권장 행위에 대한 구분이 되지 않음 → HTTP 메서드로 HTTP 메서드 HTTP 메서드 종류 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스 대체, 해당 리소스가 없으면 생성 PATCH : 리..
2023.10.25 -
HTTP 기본
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com HTTP(HyperText Transfer Protocoal) 모든 것이 HTTP HTTP 메시지에 모든 것을 전송 HTML, TEXT Image, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/1.1 : 가장 많이 사용 RFC2068 → RFC2616 → RFC7230~7235 HTTP/2 : 성..
2023.10.25 -
URI와 웹 브라우저 요청 흐름
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com URI(Uniform Resource Identifier) URI : 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있음 URL : 리소스의 위치 URN : 리소스의 이름 URI 단어 뜻 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL, URN 단어 뜻..
2023.10.25 -
인터넷 네트워크
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 인터넷 통신 클라이언트와 서버 어떻게 통신? 인터넷 망을 통해 통신하는데 인터넷에는 수많은 노드 존재 IP(인터넷 프로토콜) 컴퓨터 간 통신이 가능하려면 먼저 IP 주소를 부여 받아야 함 IP 역할 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 패킷 정보 출발지 IP 목적지 IP 전송 데이터 기타… 클라이언트 패킷 전달 패킷을 인접 노드에 전달하면 패킷 정보에 따라 이동해..
2023.10.25 -
DCL
SQL 전문가 가이드 SQL 전문가 가이드는 SQL 자격검정 대비 수험서로 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 최적의 성능을 발휘할 수 있도록 SQL을 작성하고 데이터베이스 프로그램이나 응용 소프트웨어의 성능을 최적화하고 데이터베이스 개체의 설계와 구현을 위해 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등의 실무가이드로 구성되어 있다. 저자 한국데이터산업진흥원 출판 한국데이터산업진흥원 출판일 2021.03.15 1. DCL 개요 유저를 생성하고 권한을 제어할 수 있는 명령어 2. 유저와 권한 유저 생성과 시스템 권한 부여 CREATE USER 사용자명 IDENTIFIED BY 패스워드; GRANT CREATE USER TO 사용자명; GRANT CREATE S..
2023.10.25