본문 바로가기

전체 글102

Serializable를 사용하는것인가? 스터디를 진행하면서 갑자기 Serializable가 생각났다. 현재 프로젝트에는 implements Serializable를 진행하고 있지 않다. 하지만 이전 회사에서 한번 사용했던 기억이 있었기에 언제 사용하고 언제 사용안하는지에 대해서 궁금증이 생겼다. 우선 Serializable은 직렬화로 해석된다. JPA 표준에서는 Entity class는 Serializable를 반드시 implements 할 것을 요구한다. JPA를 사용하면서 Serializable를 사용하는 경우는 domain 객체를 DTO, VO를 생성하지 않고 보낼대 implements를 진행한다. Serializable를 상속 받아 caching/optimization을 목적으로 HttpSession 값을 저장할 수 있다고 한다. ht.. 2022. 11. 16.
JPA + Postgres 사용시 주의할 @Lob 프로젝트로 Entity 작성시 평소와 같이 @Lob를 사용하고 있었다. Postman을 통해서 등록 메소드를 테스트 하는 상황에서 문제가 발생했다. title, contents의 값이 의도와 다르게 contents에 이상한 숫자가 들어간 상황이다.... 왜지...? 왜지...? 처음에는 request model에 담기면서 값이 달라지나? 라고 생각했지만 아닌것을 확인 자세히 기억해보면 그동안 JPA를 사용하면서 이용했던 DB는 h2 mysql 정도라는 것을 기억해냈다. 지금 Postgres를 사용하면서 이런 문제가 생긴것을 생각하고 알아봤다. 결론은 @Lob말고 @Column(nullable = false, columnDefinition="TEXT") 으로 변경하면 TEXT가 들어가는 것을 확인할 수 있.. 2022. 11. 15.
[Postges] Spring Boot + Postgres 설정하기 이 작업은 Spring Boot[Gradle] + Postgres + JPA를 기반으로 작업한 게시글입니다. Postgres 설치는 아래 링크로 https://postgresapp.com/ Postgres.app – the easiest way to get started with PostgreSQL on the Mac Postgres.app is a full featured PostgreSQL installation packaged as a standard Mac app. postgresapp.com 설치후 실행해주면 위와 같은 코끼리가 우리를 반겨준다. 사용할 디비로 이동하면 터미널창이 나오는데 해당 터미널 창에서 사용자 추가와 사용할 데이터 베이스 생성을 진행해주자. \du 명려어를 통해서 현재 존재.. 2022. 11. 15.
자바 flatMap 이해하기 자바 Stream API에서 map 사용은 익숙하지만 flatMap은 조금 생소한 상황이다. flatMap을 스트림 평면화로 설명해준다. 설명만으로 이해가 어렵기에 코드로 보는걸로 1차 배열 2차 배열 중복 구조로 되어있는 리스트를 하나의 스트림 처럼 다룰 수 있다. 2022. 11. 3.
Real MySQL 8.0 [ING] http://www.yes24.com/Product/Goods/103415627 Real MySQL 8.0 (1권) - YES24 『Real MySQL 8.0』은 『Real MySQL』을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 www.yes24.com 1장 MySQL 소개 ... 2장 설치와 설정 MySQL에서 시스템 변수를 변경할 상황이 발생할때가 있다. MyySQL 서버의 시스템 변수는 서버가 기동 중인 상태에서 변경 가능한지에 따라 동적 변수/정적 변수로 구분된다. 현재 시스템 변수의 상태는 show 명령어로 확인 가능하다. 위의 설정 값들은 set으로 변경 .. 2022. 10. 31.
트랜잭션 Isolation levels 우선 위의 개념을 이해하기 앞서 두가지를 이해하고 넘어가자 isolation의 사전적 의미 : 격리 transaction의 ACID A (Atomicity) : 원자성 - All or Nothing, 작업 단위에서는 성공 또는 실패만 존재한다. C (Consistency) : 일관성 - 작업 이전과 같은 상태 유지, 서로 다른 타입에 다른 값이 들어가지 않게 하는것 I (Isolation) : 격리성 - 한 동작을 진행하는 중에는 다른 작업이 끼어들지 못하도록 보장하는 것 D (Durability) : 지속성 - 작업 완료 > commit 된 작업은 영구적으로 유지 되어야 하는것 Isolation Level 위의 ACID의 원칙들을 타이트하게 지키면 동시성 즉 사용자들이 다수 한번에 접근하는 상황에서는 .. 2022. 10. 14.