목록전체 글 (82)
호비시의 끄적끄적
Index 란? Index 란 단어로는 색인, 풀어서 설명하면 RDBMS에서 검색속도를 높이기 위한 하나의 기술이다. 특정 TABLE의 컬럼을 Index로 설정해두면, 검색 시 해당 TABLE의 레코드를 전체 스캔하는 것이 아니라 색인화 되어있는 Index 파일을 검색하여 속도를 빠르게 한다. Index 파일에는 Index 와 data가 들어가 있다. Index를 사용하기 위해선 항상 정렬된 상태를 유지해야 하기 때문에, 원하는 데이터를 찾는데는 빠르지만 새로운 값이 추가되거나, 수정, 삭제의 경우 쿼리문의 실행 속도가 느려진다. Index의 자료구조 B+ Tree 기존의 B- Tree는 특정 데이터의 검색은 효율적이지만, 모든 데이터를 한 번 순회하는 데에는 모든 노드를 방문해야 하므로 비효율적이다. ..
Stream? Stream 이란 JDK 8 부터 추가된 JAVA에서 사용 가능한 함수형 인터페이스이다. 이를 통해 JAVA를 함수형으로 프로그래밍 할 수 있게 해준다. Stream API는 자주 사용하는 함수들을 정의해 두었기 때문에 이를 잘 이용한다면, 가독성 좋은 코드를 작성할 수 있다. 특징 원본의 데이터를 변경하지 않는다. 일회용 내부 반복 Stream API의 3가지 단계 함수형 프로그래밍을 적용하기 위해 3가지 단계가 필요하다. 1. 생성 함수형 프로그래밍에서 말하는 INPUT x 를 만들어 주는 과정이다. 배열, 컬랙션 등등 다양한 자료형들을 stream으로 만들 수 있고, 이를 input x 라 볼 수 있다. 2. 가공 함수형 프로그래밍에서 말하는 FUNCTION F 를 만들어 주는 과정이..
SOLID란? 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다.SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. (출처 : 위키백과) 한 문장으로 정리하자면 객체 지향 프로그래밍 설계의 5가지 기본 원칙이다. SRP(Single Responsi..
Session 을 통한 로그인 관리 세션을 통해 사용자 인증 및 유지 로그인 관리를 할 때는 다음과 같은 절차를 거친다. 사용자가 로그인 할 때 ID 와 PW를 보낸다. DB에서 사용자의 계정 정보를 조회하여 일치하는지 확인한다. 일치한다면, 서버에 세션을 생성하고 생성된 세션 ID를 세션 저장소에 저장한다. 사용자에게 응답과 함께 세션ID를 보낸다. 위와 같은 과정을 통해 세션에 사용자가 로그인 한 상태인지를 저장한다. 인증한 이후에는 사용자가 요청을 보낼 때 세션 ID를 같이 보내고, 서버에서는 받은 세션 ID가 존재하는지, 유효한지를 확인한다. 옳다고 판단한 후엔 사용자가 보낸 요청을 처리한다. 장점 중요한 정보가 서버에 전부 있기 때문에 보안적으로 우수하다. 서버단에서 세션에 대한 통제가 가능하다..
Lombok 이란 Lombok 은 자바개발자에게 매우 중요한 프레임워크이다. 자바에서 자주 만들어 사용하는 getter, setter, 생성자 등 을 annotation 하나로 자동으로 만들어주는 편리한 친구다. 하지만 hibernate Entity를 사용할 때에는 주의할 점이 있다. @...Constructor Lombok은 Annotation 하나만으로 클래스에 필수적인 생성자를 자동으로 생성해준다. public class User1 { private String name; private String team; private int age public User1(String name, String team, int age){ this.name = name; this.team = team; this.a..