본문 바로가기

전체 글69

MySQL 초단위 precision 자릿수 넘어갈 경우 MySQL은 초단위 precision 자릿수 지정 SELECT COUNT(1) FROM mydate WHERE created_at BETWEEN '2022-05-27T00:00:00.000000' AND '2022-05-27T23:59:59.9999999'; 이렇게 조회하면 2022년 5월 28일 00시 00분 row가 DB에 들어가 있는 경우에, 나올 수 있다. 이유 해당 내용은 초단위 precision의 단위가 넘어갔을 때, 다음 시간을 표현하는 2022년 5월 28일 00시 00분이 포함되기 때문. ToDo 해당 내용은 조금 더 정리해보자 2022. 6. 3.
Mysql 날짜관련 data type, datetime과 timestamp 차이 datetime과 timestamp의 차이 timestamp mysql은 저장할 때 현재 타임존에서 UTC로 변환하고, 조회할 때 UTC에서 현재 시간대로 변환한다. 타임존 변경 작업시 부하가 발생할 수 있다. 하지만 요즘 트렌드는 timestamp를 사용하는 것이라고 한다. 그정도 부하는 허용 가능한가보다. 기본으로 각 연결의 타임존은 서버의 시간이고, 타임존은 connection별로 설정할 수 있다. Mysql에서 사용할 time zone 셋팅 방법은 여러가지이다. 시스템 변수의 time_zone 값을 사용할 수 있다. mysql서버 시작 시 --timezone 옵션 값을 줄 수 있다. 등 다른 방법도 있다. 1970-01-01 00:00:01부터 2038-01-19 03:14:07까지 지원 [확인].. 2022. 6. 2.
스프링부트 버젼 - 마이너 버전 'org.springframework.boot' version '2.7.0' 끝이 0으로 끝나는 버젼은 마이너 버전이라고 한다. 마이너 버전은 사용 추천하지 않는다. 2022. 6. 1.
Mysql 스토리지엔진, InnoDB 와 MyISAM InnoDB 가 무엇이고, 다른 DB 엔진과 차이 알아보기 InnoDB란 무엇인가 Storage Engine : 데이터베이스에서 데이터를 접근하는 방식 frm 파일에 접근하는 속성을 설정 스토리지 엔진은 DB에서 데이터를 어떤 방식으로 저장하고 접근할 것인지에 대한 기능을 제공합니다. 스토리지 엔진에 따라 데이터 접근 속도, 안정적인지, 트랜잭션 기능을 제공하는지 등의 차이가 발생합니다. InnoDB란 무엇 스토리지 엔진의 한 종류 스토리지 엔진 스토리지 엔진은 데이터 읽기/쓰기 작업을 처리한다. 데이터를 디스크로 저장하고 읽어오는 역할 담당. 데이터를 디스크로 저장하고 읽어오는 역할을 담당하는 스토리지 엔진은, 데이터를 물리적 디스크에 저장하는 방식을 클러스터드 인덱스 방식과 넌 클러스터드 인덱스 방식.. 2022. 6. 1.
process command finished with non-zero exit value 1 인텔리제이 실행 에러 처음 프로젝트 셋팅하고 인텔리제이 실행 에러가 나는데 이럴때가 가장 난감하다. 왜인지는 나중에 정리해놓더라도 발생한 실행 에러와 해결 방법은 적어두자. 에러 메시지 process command finished with non-zero exit value 1 > Process 'command 'java.exe'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. 해결 방법 File/Se.. 2022. 5. 4.
rename the root module , java project in 인텔리제이 인텔리제이에서 자바프로젝트 root module이름 변경 하는 법 You can rename the root module of your java project, following these steps: Go to Project Structure (Ctrl+Alt+Shift+S) → Project Settings / Project → Project name: Project name: Open the settings.gradle file and rename the rootProject.name rootProject.name Once done, delete the .idea folder from your root project folder, rename your project folder on your sys.. 2022. 5. 3.
반찬가게 프로젝트 - 공식문서 읽는 법, 유의미한 삽질 2주간 프로젝트를 진행하면서 배운 것들을 적어보았다. 사용기술 Spring Data JDBC [△] OAuth [] nginx를 통해 java application tomcat서버와 통신 셋팅 [] 배포 프로젝트 때 배운 점 Spring Data JDBC 자료가 별로 없어서 공식문서를 보면서 기술을 익힐 수 있는 기회가 되었고 , 막연하고 읽기 힘들었던 공식문서 읽는 방법을 감을 잡은 것 같아 뿌듯했다. 새로운 기술을 적용하면서 기술과 상관없는 것들을 삽질하는 일도 많았고, 그 과정들을 적어보려고 한다. 내가 파악한 공식문서 읽는 법 1 먼저 근간이 되는 개념을 알기 그래야 전체적인 흐름을 잡을 수 있는데 근간이 되는 개념이 무엇인지 어떻게 알 수 있는가? 그것 또한 공식 문서에 나와 있었다. All S.. 2022. 4. 30.
WebMvcConfigurer org.springframework.web.servlet.config.annotation.WebMvcConfigurer WebMvcConfigurer 스프링프레임워크에서 제공하는 config 관련 interface이다. 구현클래스 WebMvcConfigurerAdapter deprecate 되었다. 이유 알아보기 공부했던 이유 메세지 컨버터, objecMappter에 대해 알아보고 싶었다. API request, response 속성들의 데이터 타입이라던지, 속성의 맵핑 시, 잘 되지 않았을 때 무엇을 봐야 하고 해결을 해나가기 위해 공부하고 싶었다. 공부해보니 스프링의 동작원리를 알아야 했으며 그래서 키워드로 검색해 이해하기엔 한계가 있었다. 그래도 토비의 스프링은 설명이 워낙 자세해서 제일 유용한 자.. 2022. 4. 18.
Todo만들기 - 회고 Todo 프로젝트가 끝나고 다른 사람의 코드를 보면서 내 코드를 다시 확인하고 있다. 내가 남의 코드를 보는 방식은 맨 처음 사람 코드는 기술 지식을 이해하는데 노력을 많이 하는 사람 것을 처음 보고 그 코드는 꽤 자세히 보는 편이다. 그러면서 내 코드를 다시 보는데.. '몇 일전의 나야.. 왜 이렇게 했니..' 이불킥하고 싶은 코드를 적어본다. 이렇게 잘못된 코드를 작성한 이유는 기초지식을 간과한 부분 때문이라 생각해서 정리해 놓는다. setter에 객체 자신을 매개변수로 넣기 그러면서 메서드 이름도 그냥 setter인게 좋다고 생각하는데, 그 이유는 그래야 더 명확하게 이게 setter인지 알 수 있지 않을까?해서이다. 그래도 결국은 내가 이해하기 편하게 insert라 했는데 다시 봐도 setter가.. 2022. 4. 17.
NoSuchElementException Exception 종류 - NoSuchElementException 순차적 검색이 가능한 데이터프레임 안에 담긴 자료를 가져올 때 next() 메서드를 써서 데이터를 가져오는데, 이때 하나의 값에 대해서 next가 두 번 나오게되면 발생하는 오류이다. 2022. 4. 16.
Objects.requireNonNull() - java.util.Objects Objects.requireNonNull() 사용 이유 Objects.requireNonNull() 메서드 코드 public static T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; }당연하게 느껴지는 코드이고, null일 때 당연히 NPE가 발생하는데 왜 사용해야 할까? 명시성 explicity null이 아니어야 함을 명시적으로 표현할 수 있다. 따라서 과거에 짠 코드가 미래에 사용될 때 해당 객체가 null이면 안된다는 것을 개발자가 명시적으로 알 수 있다. card.setId(Objects.requireNonNull(keyHolder.getKey()).longValue());fail-.. 2022. 4. 16.
static 정적 멤버(클래스 멤버) : static 변수, static 메서드 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나는 즉시 사용할 수 있다. 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버 2022. 4. 13.