현재 재직 중인 회사는 사실 아직 무중단 배포 환경이 아니다. 빌드 후 생성된 jar나 war를 직접 수동으로 배포하기 위해 서비스의 중단이 필연적인 상황이다. 서비스 이용자가 늘어나고 비즈니스 로직 추가 및 수정에 빈번하게 일어나며 무중단 배포에 대한 필요성을 더욱 절실히 느끼고 있다. 기회가 된다면 무중단 배포 환경을 만들어보고 싶은데..우선 공부를 해야한다.(당연히) 우선 무중단 배포에 대해서 알아보자. 무중단 배포란? 무중단, 말 그대로 서비스의 중단 없이 새로운 버전의 소프트웨어를 배포하는 것을 말한다. 앞서 말했듯 서비스를 운영 중일 때 새로운 버전을 배포하기 위해서는 기존의 서비스를 종료하고 새로운 서비스를 시작하는 과정이 필요하다. 이렇게 서비스가 중단되는 시간, 즉 시스템을 이용할 수 없..
전체 글
백엔드 개발자 토발자입니다.개발을 하며 MySQL의 Timestamp가 이상하게 조회되는 상황에 맞닥뜨렸다. 발생한 이슈와 원인, 해결한 방법 순서대로 기록해둔다. 이슈 발생 간단하게 정리하면 데이터 조회 시 특정 일자의 하루 동안 저장된 데이터를 조회해야 했고, 이를 위해서 특정 일자의 시작 시간(yyyy-MM-dd 00:00:00)과 끝 시간(yyyy-MM-dd 23:59:59)을 Timestamp 타입으로 만들었다. 예를 들어 일자별 회원가입 현황을 데이터테이블로 산출하려고 한다. 조회 시에는 JPQL을 사용했고, 테스트 용으로 아주 간단하게만 구현해두었다. /** * 일자별 회원가입 현황 * @param * @return */ public List getDailySignUp(Integer start, Integer leng..
새로운 프로젝트에서 Java 17, Spring Boot 3를 사용하고 있다. 기존에 Spring Boot 2에서는 발생하지 않던 에러가 발생해 기록해둔다. 에러 발생 JPA에서 네이티브 SQL 구현 중이었는데 (query, Attendance.class) 부분에 빨간 밑줄이 생기며 에러가 발생했다. public List findAttendance(Long idx){ String queryStr = "SELECT ~~~ "; queryStr += "FROM ~~~ "; queryStr += "WHERE AI.IDX = :idx "; queryStr += "GROUP BY DATE(BEGIN_DT)"; JpaResultMapper resultMapper = new JpaResultMapper(); Quer..
Integer ArrayList을 int 배열로 변환하는 방법에 대해 알아보자. 사실 자꾸 까먹어서 기록해둔다. String 타입의 List를 배열로 변환할 때 toArray()를 사용하면 된다. List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); // 1. toArray() - 배열 선언과 동시에 할당 String[] arr = list.toArray(new String[0]); // ["a", "b", "c"] // 2. toArray() - 배열 선언 후 값 할당 String[] arr2 = new String[list.size()]; list.toArray(arr2); // ["a", "b", "c"] 하지만 int형..
이진 트리 자료구조와 재귀 알고리즘 문제에 대한 문제이다. 문제 링크 : https://www.acmicpc.net/problem/1991 문제 참고 참고로 전위 순회, 중위 순회, 후위 순회에 대한 정리가 먼저 필요하다면 아래 게시글을 참고하면 된다. [자료구조] Tree 순회 방법 - 전위/중위/후위 순회 & Java 예시 코드 자료 구조 중 트리가 있다. 트리 구조를 순회하는 방법에는 세 가지 방법이 있다. 전위 순회(Pre-order) 중위 순회(In-order) 후위 순회(Post-order) 이러한 순회 방법은 트리 내의 모든 노드를 방문하는 hoehen-flug.tistory.com 사실 전위/중위/후위 순회를 예시 코드를 통해 이해했다면 이 문제를 푸는 데에도 오랜 시간이 걸리지는 않을 것..