일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- yml
- AuditingEntityListener
- EmbeddedId
- load order
- sendFractionalSeconds
- createEntityGraph
- fractional seconds
- 오블완
- 운동해서 광명찾자
- apatch poi
- 1*1000
- mysql equal null
- 버전 문자열 비교
- 티스토리챌린지
- https
- getDateCellValue
- MYSQL
- RootGraph
- spring boot
- Protecle
- @EntityListeners
- @CreateDate
- NamedEntityGraph
- +9:00
- deserializer
- mysql =
- MSSQL
- pooled-lo
- getEntityGraph
- mysql not equal null
- Today
- Total
목록전체 글 (95)
Hello
모던 자바 인 액션 10장 람다를 이용한 도메인 전용 언어(DSL)에서 Jooq를 알게되어 공부한 내용을 정리해보려고 합니다. DSL(Domain Specific Language) 이란 특정 영역에 특화된 언어를 말합니다. 내부 DSL : DSL 코드와 범용 코드를 동일한 프로그램 파일에 혼합하는 것으로, 예를 들어 자바로 구현한 DSL을 내부 DSL 이라고 할 수 있습니다. ex) QueryDSL, Jooq (자바 SQL DSL) 외부 DSL : 프로젝트에 DSL 추가. DSL 코드와 일반 코드를 별도의 파일에 보관하는 것으로, DSL 코드는 자동 코드 생성기를 통해 프로그래밍 언어 코드로 변환되거나 해당 생성기에 도메인별 코드로 로드되어 실행됩니다. ex) SQL Jooq(Java Object Ori..
예전에 redis pub기능을 사용했는데 오늘 pub / sub 사용하는 방법을 간단히 정리하려고 한다. Redis Publish/Subscribe - 특정 subscribe에게 메시지를 보내는 개념이 아니며 구독자 있는지, 없는지, 누구인지 알지 못한 채 채널로 메시지를 publish 합니다. - 푸시된 메시지를 따로 보관하지 않는다. - 구독자가 메세지를 받는 것을 보장하지 않아, subscribe 대상이 없는 상황에서 메시지를 publish하면 메시지는 publish 되고 보낼 곳이 없어 버려진다. 전송 보장을 하지 않는다. spring-boot-starter-data-redis dependency를 사용해 redis pub/sub 하는 방법 RedisAutoConfigration 에서 자동으로 R..
ajax 통신 할 때 json 구조를 사용하는 경우가 자주 있다 이때, string to enum, string to date, number to boolean 등 데이터 타입 변환이 필요한 경우가 있습니다. 이 때 상황에 따라 개발자는 custon serializer, deserializer를 작성해서 사용할 수 있습니다. pom.xml com.fasterxml.jackson.core jackson-databind 아래 abstract class를 구현해 사용할 수 있습니다. com.fasterxml.jackson.databind.JsonSerializer com.fasterxml.jackson.databind.JsonDeserializer number to boolean 예시 Serializer im..
Java8 기준 MultipartFile을 받아 InputStream으로 문자열로 변환하는 방법을 정리 1. InputStream의 read()를 사용해 문자열로 변환하는 방법 -available() 현재 읽을 수 있는 바이트 수 -read(byte[]) byte[]만큼의 데이터를 읽어서 매개변수에 저장하고 읽은 바이트 수 반환 private String readFileToContents(MultipartFile file) throws IOException { try (InputStream is = file.getInputStream()) { byte[] buf = new byte[is.available()]; int read = is.read(buf); return new String(buf, 0, r..
Blob 작업을 처리한 후 관련해서 업데이트 된 내용이 있는지 확인해 보았는데 Azure SDK V12가 지원되는 것을 알게되었다. V12 업그레이드 된 이유는 링크를 달아 두었으니 확인해 보면 될 것 같다. 나는 V8을 사용하고 있어 V12 내용을 확인하며 기존에 사용하던 방법과 다른 점에 대해서 간단히 정리하려고한다. dependency v8 v12 com.microsoft.azure azure-storage 8.4.0 com.azure azure-storage-blob 12.0.0 package v8 v12 com.microsoft.azure.storage com.azure.storage.blob 변경된 핵심 클래스 기존 동기 클래스가 변경 되었으며, 비동기 클래스가 추가됨. 연결문자열 구성 V8 ..
서킷 브레이커 란 예상치 못한 장애(네크워크 이슈, 서버 다운 등)가 발생해 어떤 원격 서버 하나가 요청에 응답하지 못하는 상태일 때 클라이언트는 Timeout이 될 때 까지 응답을 기다리거나 무의미한 요청을 보내며 자원을 낭비하게 될 것입니다. MSA(Microservice Architecture)에서는 이 클라이언트가 또 다른 누군가의 서버가 될 수도 있는데요. 그렇다면 이 서버의 클라이언트 역시 똑같은 문제를 겪게 될 것입니다. 이렇게 장애가 계속 전파되며 한 원격 서버에서 발생한 장애가 모든 시스템에 큰 영향을 줄 수 있습니다. 이런 문제를 해결하기 위해 등장한 개념이 바로 '서킷 브레이커(circuit breaker)'입니다. 서킷 브레이커 패턴은 Michael Nygard의 저서 Release..
@Embeddable, @EmbeddedId를 사용해 일대일 조인테이블 Entity 만드는 방법을 간단하게 정리합니다. @Entity public class Buff { @Id @GeneratedValue private Integer id; private Integer type; private Integer value; } @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; } @Entity public class BuffUser { @EmbeddedId private BuffUserPk id; @MapsId("userId") @ManyToOne @JoinColumn(name ..
Azure App Service slot 추가 후 DevOps를 통해 슬롯 배포하는 방법을 간단하게 정리하려고 합니다. azure DevOps Pipelines -> Releases -> New -> New Release Pipeline -> Stages Add -> Azure App Service deployment 선택 stage name 작성 후 stage 생성 완료 생성된 stage 설정 페이지 이동 후 - Azure subscription, App type, App service name 선택 나는 linux 서버를 사용하고 있어 startup command 도 작성을 해 두었다. Deploy Azure App Service 선택 후 상세 설정 페이지 이동 - Deploy to Slot or A..
저희 팀에서 사용하는 서버에서 시간 처리를 했을 때 3-4분 지연된 시간으로 처리된다는 이슈를 전달 받아 확인해 보니, 서버시간이 느려 발생한 이슈임을 확인했습니다. 인프라팀에 서버시간 동기화 요청 후 이슈를 해결 했으며, 동기화 방법에 대해 정리하려고합니다. 원격타임서버로 시간을 받아와 동기화시켜주는 방법 중 NTP를 사용해 서버시간을 설정하고있습니다. NTP 설치 yum install ntp 동기화할 서버 주소 설정 vi /etc/ntp.conf 동기화할 서버(ip or domain) server 127.0.0.1 server kr.pool.ntp.org 실행 서비스 시작 systemctl start ntpd 서비스 자동 실행 systemctl enable ntpd timedatectl의 명령어를 통..
다량 조회 시 기존에는 이슈가 없었는데 에러가 난다는 확인 요청이 들어왔습니다. 에러를 확인해 보니 sql server는 최대 2100개 매개변수를 지원하는데 그 이상 바인딩 되었다는 에러였습니다. 해당 프로젝트는 sql server를 사용하지 않는 것으로 알고 있었는데 소스를 확인해 보니 동료분이 요청사항을 반영해 sql server를 사용 하고 있었습니다. 아래 공식 문서의 일부입니다. sql server 2008에서 최대 2100개의 매개변수를 가질 수 있다는 내용을 확인 할 수 있었습니다. 참고 : https://stackoverflow.com/questions/656167/hitting-the-2100-parameter-limit-sql-server-when-using-contains https..