본문 바로가기

전체 글

(145)
DNS Cache TTL(Time To Live) failover 관련된 학습을 하면서 추가로 공부한 설정값이다. DNS는 도메인 이름과 매핑된 IP 주소를 저장해 놓고 요청이 오면 해당 도메인에 맞는 IP를 반환해 주는 역할을 한다. (CNAME으로 도메인과 도메인을 매핑해주기도 함) 그리고 어플리케이션에서는 도메인에 해당하는 IP를 가져오기 위해 DNS 에 요청을 보내고 이 과정을 dns lookup 이라고 한다.IP를 가져오는 과정은 비용이 많이 들기 때문에, JVM의 경우 가져온 IP를 캐싱하고 있는데, 이 캐싱 유지 시간을 DNS Cache TTL 이라고 한다.AWS 에서는 캐싱 시간을 5초 정도로 설정해 둘것을 권장하고 있다. (https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/developer-..
Typescript 잡지식 정리 NULL, undefined check// null, undefined checkif (x == null) {}// null checkif (x === null) {}https://stackoverflow.com/questions/28975896/is-there-a-way-to-check-for-both-null-and-undefined
pnpm 버전 관리 이슈 pnpm 을 사용하는데 8 버전대라서 9버전으로 업그레이드 해야하는 일이 있었다.간단하게 할 수 있을줄 알았는데, 구글링해서 찾은 이런저런 명령어를 다 따라 쳐봐도 삭제가 안되는 문제가 있었다. npm install -g pnpmnpm -g ls위 명령어를 사용해 pnpm 최신 버전이 설치되어있는걸 확인했다. 그런데도 pnpm -v로 확인하면 8버전대가 보이는 문제가 계속 발생했다.which pnpm으로 확인해보니 nvm에 있는 pnpm을 사용하고 있는게 문제였다. 기존에 nvm으로 노드 20.11 버전대를 사용하고 있었는데, 이 때 pnpm이 8버전대로 자동 설치되어 있고 이 pnpm에 환경변수?가 연결되어 있어 아무리 설치해도 8버전대가 보이는 것이었다. 노드 버전도 업그레이드 해야하기 때문에 노드 ..
[spring boot] post request에 DTO 사용할때 데이터 넣어도 null 발생 @PostMapping public ResponseEntity saveGame(@Validated @RequestBody GameDto.Request gameDto) { gameService.saveGame(gameDto); return ResponseEntity.status(HttpStatus.CREATED).build(); }위와같이 컨트롤러를 구현한 뒤 postman을 사용해 post request를 요청해 주었는데, 자꾸 데이터가 null로 나오는 문제가 발생했다. 도대체 왜이러나 하면서 빼먹은 부분이 있는지 생각해봤다. 이유는 바로 DTO에 setter가 없었던 것이였다. 데이터를 setter를 이용해 객체를 넣기 때문에 setter가 없으면 값을 할당하지 못해 null이 나오는 것으로 생각..
[C++] 센서 (2212번) https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 문제풀이 사고력이 필요한 문제다. 문제를 간단히 요약해보면, N개의 센서가 정수 좌표이 있으며 중복해 있을 수 있다. K개의 집중국이 있고 집중국은 아무데나 놔도 되고 모든 센서를 수신하면서 수신 가능영역이 최소인 위치에 놓아야 한다. 문제 접근은 이런 방식으로 해 보았다. 센서가 이리저리 놓여있을 텐데, 어느 지점 마다 끊어서 집중국을 설치해야 할까? 센서 사이의 거리가..
removeIf 반복문을 사용하지 않고 removeIf 를사용하면 코드를 얼마나 줄일 수 있는지 알아보자. 리스트가 주어졌을 때 리스트의 원소를 삭제하기 위해 아래와 같은 방법으로 작성하는 경우가 많다. 아래 예시는 referenceCode의 맨 앞자리가 정수인 객체를 삭제한다. class Transaction { String referenceCode; public Transaction(String referenceCode) { this.referenceCode = referenceCode; } public String getReferenceCode() { return referenceCode; } @Override public String toString() { return referenceCode; } } 반복을 돌..
mybatis에서 ENUM 받아 사용하기 사용자에게 데이터를 받을 때 DTO의 필드에 ENUM이 존재하는 경우가 있다. ENUM을 이용해 동적쿼리를 작성하는 방법을 알아보자. 자동차를 갖고 있다면 자동차 종류를 ENUM으로 사용해 관련된 쿼리를 작성하고 싶을 수 있다. Mapper.java List selectCars(Car car); Car가 Enum이다. Car.java public enum Car { truck, racing, sport; } Mapper.xml ... ... ... ... 이런식으로 하면 된다. 쌍따옴표와 따옴표는 서로 위치가 바뀌어도 상관없다. name 대신 toString을 사용해도 된다. ENUM은 참고 https://stackoverflow.com/questions/12933813/using-enum-parame..
Mybatis에서 Pageable 사용하기 Mybatis를 사용하면서 Pageable을 사용할수는 없을지 알아보았다. 나도 찾아보기 전까지는 JPA에서만 사용할 수 있을줄 알았는데 그게 아니였다. Mybatis에서 Pageable을 사용하는 과정을 정리해 보았다. implementation 'org.springframework.data:spring-data-commons' JPA를 implementation 하지 않고 위 data commons를 이용하면 Pageable을 사용할 수 있다. 게시글 목록 조회에 Pageable을 적용해 보았다. Service public Page getBoards(Pageable pageable) { ... Page page = new PageImpl(ResponseDtoList, pageable, count); ..