본문 바로가기

분류 전체보기231

Spring - 서블릿과 디스패쳐서블릿 웹을 만들기 위해서 필요한 기술중에 하나인 서블릿에 대해서 정리하고, 스프링에서의 서블릿과 디스패쳐 서블릿 각각의 정의를 정리하고 차이점을 정리한다. 서블릿과 디스패쳐서블릿 서블릿? 자바를 사용하여 웹을 만들기 위해 필요한 프로그래밍 기술 요청에 대해 동적으로 처리해주는 역할로서 서버 사이드에서 작동함(WAS) HttpServlet이라는 자바의 클래스를 상속받음 서블릿 생명 주기 Servlet 객체 생성 (1회) init() 호출 (1회) service(), doGet(), doPost() 호출 (요청 시 매번) destory() 호출 (1회) 서블릿 컨테이너? 서블릿은 요청을 받거나 내보낼 때 자신이 알아서 하는 것이 아닌 서블릿을 실행시키는 주체인 서블릿 컨테이너라는 것을 이용 서블릿 컨테이너는 어떤.. 2022. 9. 4.
자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (8-1) 프록시와 연관관계 정리 들어가며 8강은 1편과 2편으로 나눠 진행하였다. 8.1 프록시 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 지연 로딩이라 한다. 그런데 지연 로딩 기능을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라 한다. JPA 표준 명세는 지연 로딩의 구현 방법을 JPA 구현체에 위임 -> 하이버네이트 하이버네이트는 지연 로딩을 지원하기 위해 프록시를 사용하는 방법과 바이트코드를 수정하는 두 가지 방법을 제공 8.1.1 프록시 기초 JPA 에서 식별자로 엔티티 하나로 조회할 때 find() 사용 -> 영속성 컨텍스트에 엔티티가 없으면 디비 조회 -> 이렇게 직접 조회하면 조회한 엔티티를 실제 사용하든 하지 않든 데이터베이스를 조.. 2022. 8. 27.
Kotlin - 코틀린에서의 Primitive Type (원시타입) 들어가며 원시타입의 정의와 코틀린의 원시타입은 자바에서의 원시타입과 어떤 차이가 있는지 알아본다. 원시 타입 먼저 원시 타입이란 정수, 실수, 문자 논리 리터럴등의 실제 데이터 값을 저장하는 타입을 말한다. 자바에서는 원시 타입과 참조 타입으로 나뉘며 참조 타입은 객체의 번지 즉 주소를 저장하여 참조하는 타입으로 메모리 주소 값을 통해 객체를 참조하는 타입이다. 코틀린에서의 원시 타입 코틀린에서는 원시 타입과 래퍼 타입을 따로 구분하지 않는다. 자바에서는 Integer와 Int를 구분해서 사용하는데 코틀린에서는 Int 하나만 존재한다. 그렇다고 코틀린에서 래퍼 타입이 존재하지 않는 것이 아니다. 코틀린의 타입은 컴파일 시 자바의 원시타입 또는 래퍼타입으로 자동으로 변환된다. 예를 들어 Int 타입은 자바.. 2022. 8. 27.
Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리 들어가며 자바에서 사용하였던 void와 코틀린에서의 Unit의 차이점을 알아보고 추가적으로 Nothing에 대해서도 정리한다. void와 Void 자바의 void는 알다시피 반환 타입이 없을 때 사용한다. 우리가 잘 아는 main 함수의 반환 타입도 void로 되어 있다. 추가적으로 Void로 앞에 대문자로 되어 있는 것은 void와 다르다. int와 Integer가 같지만 다른것과 마찬가지다. void는 기본형이고 Void는 참조형이다. 제네릭 사용 시 반환 타입을 명시해야하는데 이때 기본형인 void를 사용할 수 없고 Void를 사용해야한다. 의미는 void와 똑같고, 인스턴스 생성 불가 또는 참조값이 존재하지 않음을 나타낸다. Unit 코틀린에서 int 를 구분하지 않는 것과 같이 void도 두가지.. 2022. 8. 24.
자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (7-2) 고급매핑 들어가며 7강은 1편과 2편으로 나눠 진행하였다. 7.4 조인 테이블 디비 테이블의 연관관계를 설계하는 방법 크게 2가지 조인 컬럼 사용 (외래 키) 조인 테이블 사용 (테이블 사용) 조인 컬럼 사용 테이블 간에 관계는 주로 조인 컬럼이라 부르는 외래 키 컬럼을 사용해서 관리 예를 들어 회원과 사물함이 있을 때 회원이 사물함을 사용하기 전까지는 외래 키에 null을 입력해두어야 하고 이러한 외래 키에 null을 허용하는 관계를 선택적 비식별 관계라 함 선택적 비식별 관계는 외래 키에 null을 허용하므로 조인 시 외부 조인을 사용해야 한다. 실수로 내부 조인을 하면 사물함과 관계가 없는 회원은 조회되지 않는다. 그리고 회원과 사물함이 아주 가끔 관계를 맺는다면 외래 키 값 대부분이 null로 저장되는 단.. 2022. 8. 24.
MySQL - 특정 데이터 포함 확인 LOCATE / INSTR / LIKE 들어가며 MySQL을 통해 테이블에 문자열이 포함되어 있는지 확인하는 3가지 방법에 대해서 정리한다. INSTR 기능 MySQL의 LOCATE 함수를 사용하여 문자열에 특정 데이터가 포함되어 있는지 확인이 가능하다. LOCATE 함수는 LOCATE(substr, str)과 같이 두개의 인수를 사용한다. substr에는 문자열을 입력하고 str에 있는 문자열 substr의 검색 위치를 정수로 반환한다. 만약 substr에 str이 없다면 0을 반환한다. 추가적으로 LOCATE(substr, str, pos) 가 있는데 여기서 pos 위치로 예를들어 5를 적게 되면 문자열 5 이후에 주어진 str을 찾게 된다. 쿼리를 날려보면 다음과 같이 주어진 문자열을 포함을 하고 있다면 결과를 다 반환한다. INSTR .. 2022. 8. 19.