YAML https://yaml.org YAML 이란 YAML은 사람이 읽을 수 있는(human-friendly) 데이터 직렬화 언어 입니다. 모든 프로그래밍 언어 사이에서 호환 됩니다. 서로 다른 시스템 간에 데이터를 주고 받기 위해서는 데이터 직렬화 뿐만 아니라, 데이터 포맷에 대한 약속이 필요한데요, 우리가 흔히 사용하고 있는 XML 이나 Json 등도 그 중 일부 입니다. 이전까지 xml이 많이 쓰였지만, json이 뜨면서 xml은 대부분 사장되었는데요, 아무래도 xml이 json 형태에 비해 굉장히 거추장 스럽고 한눈에 들어오지도 않았기 때문 이라고 생각합니다. XML에서 JSON으로 발전 한 것 처럼, YAML은 json 보다도 더 비교적 직관적이고 읽기 편리합니다. XML, JSON과의 비교..
전체 글 480
save(object) 메서드 먹통 문제 dao.save(object)를 아무리 호출해도 저장이 되지 않아 테스트 케이스를 통과 하지 못하던 에러. 저장만 안되고, 기존에 이미 있던 DB를 조회 하거나 수정 하는데는 문제가 없어서 당황스러웠다. 원인 Spring Data JPA를 사용할때는 save 메서드를 당연하게 사용했는데, 이번에는 다중 쓰레드에서의 DB 커넥션을 관리해줘야 하는 상황이다 보니, Hibernate가 제공하는게 아닌 다른 구현체를 상속해서 데이터 접근 객체를 만들어 사용하고 있었다. 하다 하다 안되어서 메서드 목록을 보니 create 메서드가 따로 있기에, 그럼 save와 어떤 식으로 차이가 있는지 살펴보려고 코드를 타고 들어가니.. public abstract class Abstra..
압축파일 생성 java에서도 파일을 압축 하고 압축을 해제 할 수 있습니다. 심지어 java.util.zip 에 기본적으로 포함 되어 있기 때문에 외부 라이브러리를 사용하지 않고도 손쉽게 구현 할 수 있습니다. 아주 간단한 예제를 만들어서 실습 해 보겠습니다. 사전준비 사실 준비라고 할 것도 없고, 그냥 압축 할 파일을 몇개 준비시켜 둡니다. Terminal 을 켜서 파일들의 경로도 미리 확인을 해 둡니다. 코드작성 세개의 파일을 토대로 File 객체를 생성 한 후, ArrayList에 담아서 순회하고, 압축파일을 생성하는 코드를 작성 해 보았습니다. 딱히 어려운 내용이 없으니 코드를 보면 내용들이 이해 되실거에요. package com.tistory.shanepark.file.zip; import ja..
1. Apple TV 구매를 결정한 이유 1) 뉴질랜드 오랫동안 Apple TV와 Apple HomePod은 국내에 출시되지 않아왔습니다. 저는 오랫동안 구글의 Chrome Cast 를 사용 해 왔습니다. 해외에서 몇년씩 지낼때도, 혹은 한 두달씩 해외로 배낭 여행을 떠날 때에도 크롬캐스트는 꼭 가지고 다녔었는데요, 큰 화면으로 내가 보고 싶은 영상을 보는건 정말 인생을 풍요롭게 만들어줍니다. 뉴질랜드에서 근무하던 때, 잠깐 3달정도 지냈던 집에 Apple TV가 있었는데요, 그걸 사용해보며 크롬캐스트와는 결이 다른 강력한 사용성에 반해 너무나도 사고 싶었습니다. 하지만 국내에는 정식으로 발매되지 않아 그 사용성이 너무나도 제한적이기에 고민은 많이 했지만 실제 구매로 이어지지는 않았었습니다. 2) 귀국 ..
문제 Multipart 요청을 비동기로 다른 API 서버에 보내려고 하는데 에러가 발생했습니다. 사용자가 업로드 한 파일에 문제가 있는지 (금지 단어 포함 등) 를 확인 하기 위해 어플리케이션 내부에서 해당 파일을 또 다른 어플리케이션(파일 검사API)으로 보내는 로직을 수행하도록 구현을 하고 있었습니다. 사용자에게서 받은 Multipart file을 그대로 다시 API 서버로 전송을 하는데, Single Thread로 수행 했을 때는 문제가 없었습니다. 하지만 Single Thread로 수행 시, 요청한 사용자 입장에서는 파일 업로드에 걸리는 시간이 사용자 -> 어플리케이션서버 -> 검증API서버 이렇게 이렇게 두배로 늘어나게 됩니다. 그래서 어플리케이션 내부에서 검증 서버로의 전송은 비동기 요청으로 ..