분류 전체보기231 MySql char varchar text 정리 개발을 하던 중 히스토리성 데이터를 디비에 저장해야 될 일이 있었는데 그 중에 파라미터에 관련된 데이터를 저장해야되는 필드가 있었다. 동적인 데이터이기 때문에 가변성 타입인 varchar 타입으로 한 후 길이를 설정하려고 하는데 이게 상황에 따라서 길수도 있고 짧을 수도 있어 고민에 빠졌다. 정말 간단하게는 text 타입을 쓰게되면 이런 길이 고민은 할 필요 없어지지만 성능에 영향을 미치기에 최대한 신중히 고민 후 선택하기로 했다. 그 과정에서 알게된 내용을 정리한다. MySql char varchar text 정리 먼저 각각의 대해서 기본개념에 대해서 정리한다. char 고정 길이이다. 0~255까지 길이를 저장 가능하다. 고정 길이 만큼 디스크 공간을 차지한다. 저장 후 남은 공간을 채우기 위해 남은.. 2022. 10. 11. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-1) 객체 지향 쿼리 언어 JPQL / Criteria / QueryDSL / 네이티브 SQL / JDBC 직접 사용 / SQL 매퍼에 대한 개념을 정리한다. 10강은 내용이 많아 1편과 2편으로 나눠서 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-1) 객체 지향 쿼리 언어 10.1 객체지향 쿼리 소개 ORM을 사용하면 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하여 만들어진 것이 JPQL JPQL 특징 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. JPA는 JPQL 뿐만 아니라 다양한 검색 방법 제공 JPA가 공식 지원하는 기능 JPQL (Java Pe.. 2022. 10. 5. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (9) 값 타입 JPA에서 다루는 값 타입에 대한 개념을 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (9) 값 타입 값 타입 9.1 기본값 타입 Member -> id -> 식별자 값 // name, age 속성은 식별자 값도 없고 생명주기도 Member 엔티티에 의존함. 엔티티 인스턴스를 제거하면 name, age 값도 제거되므로 값 타입은 공유하면 안됨 9.2 임베디드 타입 (복합 값 타입) JPA에서 임베디드 타입이란 새로운 값 타입을 직접 정의해서 사용하는 것 직접 정의한 임베디드 타입도 int, String과 같이 값 타입이다. 회원 엔티티 정보에서 예를들어 근무 시작일과 우편번호는 서로 아무 관련이 없음 이럴때 @Embedded 을 사용하여 더욱 의미있고 응집력 있게 변경 할 수 있다... 2022. 9. 18. 아파치와 톰캣 및 WAS와 WebServer 서버에 관한 공부를 할때 헷갈릴 수 있는 내용인 아파치와 톰캣의 관한 차이점과 웹서버와 와스(WAS)에 대한 차이점을 정리한다. 아파치와 톰캣 및 WAS와 WebServer 아파치(apache) & 톰캣(tomcat) 먼저 아파치란, 웹 서버 중 하나이며, 아파치 소프트웨어 재단에서 관리하는 HTTP WEB SERVER이다. HTTP서버로써 다양한 기능 제공과 더불어 구축이 쉽다는 장점을 가지고 있어 많이 사용한다. 추가적으로 대부분의 중소기업들은 무료로 사용이 가능하여 많이 사용된다. 톰캣이란, 아파치 소프트웨어 재단의 WEB APPLICATION SERVER(WAS)이다. 자바 서블릿을 실행 시키며 JSP 코드가 포함되어 있는 웹 페이지를 만들어준다. 즉, 톰캣은 웹 서버에서 넘어온 동적인 페이지를 .. 2022. 9. 15. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (8-2) 프록시와 연관관계 관리 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (8-2) 프록시와 연관관계 관리 들어가며 8강은 1편과 2편으로 나눠 진행하였다. 8.3 지연 로딩 활용 연관된 관계 끼리 자주 함께 사용 -> 즉시 로딩 설정 가끔 사용 -> 지연 로딩 설정 8.3.1 프록시와 컬렉션 래퍼 지연 로딩 설정 시 실제 엔티티 대신 프록시 객체를 사용하며, 프록시 객체는 실제 자신이 사용될 때까지 데이터베이스를 조회하지 않음 하이버네이트는 엔티티를 영속 상태로 만들 때 엔티티에 컬렉션이 있으면 컬렉션을 추적하고 관리할 목적으로 원본 컬렉션을 하이버네이트가 제공하는 내장 컬렉션으로 변경하는데 이것을 컬렉션 래퍼라 함. (출력 결과를 보면 org.hibernate.collection.internal.PersistentBa.. 2022. 9. 10. @RestControllerAdvice를 활용한 예외처리 예외를 처리할때 각각의 메서드에서 try-catch를 이용해서 처리하게 되면 코드의 라인이 길어지고 더불어 가독성도 떨어지게된다. 이렇게 되면 같이 협업하는 동료 입장에서도 업무 효율이 떨어지게 된다. 이럴때 사용할 수 있는 것이 공통 예외 핸들러를 통해서 관리하는 방법이다. @RestControllerAdvice를 활용한 예외처리 @ControllerAdvice 먼저 @ControllerAdvice는 @ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들에 AOP를 적용하여 컨트롤러단에 적용하기 위해 고안된 어노테이션이다. 해당 어노테이션을 통해 모든 @Controller에 대해서 전역적으로 발생할 수 있는 예외를 잡아서 처리할 수 있다. @RestCo.. 2022. 9. 6. 이전 1 ··· 6 7 8 9 10 11 12 ··· 39 다음