'org.springframework.boot' version '2.7.0' 끝이 0으로 끝나는 버젼은 마이너 버전이라고 한다. 마이너 버전은 사용 추천하지 않는다.
Mysql 스토리지엔진, InnoDB 와 MyISAM
·
Database/MySQL
InnoDB 가 무엇이고, 다른 DB 엔진과 차이 알아보기 InnoDB란 무엇인가 Storage Engine : 데이터베이스에서 데이터를 접근하는 방식 frm 파일에 접근하는 속성을 설정 스토리지 엔진은 DB에서 데이터를 어떤 방식으로 저장하고 접근할 것인지에 대한 기능을 제공합니다. 스토리지 엔진에 따라 데이터 접근 속도, 안정적인지, 트랜잭션 기능을 제공하는지 등의 차이가 발생합니다. InnoDB란 무엇 스토리지 엔진의 한 종류 스토리지 엔진 스토리지 엔진은 데이터 읽기/쓰기 작업을 처리한다. 데이터를 디스크로 저장하고 읽어오는 역할 담당. 데이터를 디스크로 저장하고 읽어오는 역할을 담당하는 스토리지 엔진은, 데이터를 물리적 디스크에 저장하는 방식을 클러스터드 인덱스 방식과 넌 클러스터드 인덱스 방식..
process command finished with non-zero exit value 1
·
Intellij
인텔리제이 실행 에러 처음 프로젝트 셋팅하고 인텔리제이 실행 에러가 나는데 이럴때가 가장 난감하다. 왜인지는 나중에 정리해놓더라도 발생한 실행 에러와 해결 방법은 적어두자. 에러 메시지 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..
rename the root module , java project in 인텔리제이
·
Intellij
인텔리제이에서 자바프로젝트 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..
반찬가게 프로젝트 - 공식문서 읽는 법, 유의미한 삽질
·
Essay/Learning Essay
2주간 프로젝트를 진행하면서 배운 것들을 적어보았다. 사용기술 Spring Data JDBC [△] OAuth [] nginx를 통해 java application tomcat서버와 통신 셋팅 [] 배포 프로젝트 때 배운 점 Spring Data JDBC 자료가 별로 없어서 공식문서를 보면서 기술을 익힐 수 있는 기회가 되었고 , 막연하고 읽기 힘들었던 공식문서 읽는 방법을 감을 잡은 것 같아 뿌듯했다. 새로운 기술을 적용하면서 기술과 상관없는 것들을 삽질하는 일도 많았고, 그 과정들을 적어보려고 한다. 내가 파악한 공식문서 읽는 법 1 먼저 근간이 되는 개념을 알기 그래야 전체적인 흐름을 잡을 수 있는데 근간이 되는 개념이 무엇인지 어떻게 알 수 있는가? 그것 또한 공식 문서에 나와 있었다. All S..
WebMvcConfigurer
·
Spring Framework/Spring
org.springframework.web.servlet.config.annotation.WebMvcConfigurer WebMvcConfigurer 스프링프레임워크에서 제공하는 config 관련 interface이다. 구현클래스 WebMvcConfigurerAdapter deprecate 되었다. 이유 알아보기 공부했던 이유 메세지 컨버터, objecMappter에 대해 알아보고 싶었다. API request, response 속성들의 데이터 타입이라던지, 속성의 맵핑 시, 잘 되지 않았을 때 무엇을 봐야 하고 해결을 해나가기 위해 공부하고 싶었다. 공부해보니 스프링의 동작원리를 알아야 했으며 그래서 키워드로 검색해 이해하기엔 한계가 있었다. 그래도 토비의 스프링은 설명이 워낙 자세해서 제일 유용한 자..
Todo만들기 - 회고
·
Essay/Learning Essay
Todo 프로젝트가 끝나고 다른 사람의 코드를 보면서 내 코드를 다시 확인하고 있다. 내가 남의 코드를 보는 방식은 맨 처음 사람 코드는 기술 지식을 이해하는데 노력을 많이 하는 사람 것을 처음 보고 그 코드는 꽤 자세히 보는 편이다. 그러면서 내 코드를 다시 보는데.. '몇 일전의 나야.. 왜 이렇게 했니..' 이불킥하고 싶은 코드를 적어본다. 이렇게 잘못된 코드를 작성한 이유는 기초지식을 간과한 부분 때문이라 생각해서 정리해 놓는다. setter에 객체 자신을 매개변수로 넣기 그러면서 메서드 이름도 그냥 setter인게 좋다고 생각하는데, 그 이유는 그래야 더 명확하게 이게 setter인지 알 수 있지 않을까?해서이다. 그래도 결국은 내가 이해하기 편하게 insert라 했는데 다시 봐도 setter가..
NoSuchElementException
·
Java
Exception 종류 - NoSuchElementException 순차적 검색이 가능한 데이터프레임 안에 담긴 자료를 가져올 때 next() 메서드를 써서 데이터를 가져오는데, 이때 하나의 값에 대해서 next가 두 번 나오게되면 발생하는 오류이다.
Objects.requireNonNull() - java.util.Objects
·
Java
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-..
static
·
Java
정적 멤버(클래스 멤버) : static 변수, static 메서드 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나는 즉시 사용할 수 있다. 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버
로깅 라이브러리 Logging Library
·
Java
자바 로깅 System.Logger의 구현체로 무엇을 사용할까? 현장에서 사용하고 있는 자바 로깅의 변화 log4j -> logback -> log4j2 최근에는 다시 log4j2를 사용하고 있는 추세라고 한다. 읽어보기 logback을 사용해야 하는 이유 Log4j2 사용 Logging을 구현하고 있는 구조를 알지 못하면 이해 하기 힘든 글인 것 같다. Logger 이해하기 Logger는 꽤 다양한 것을 묶어 사용하게 되어 있는 것 같았다. 자세하게 공부하지는 못했지만 위 2개 url 먼저 보는 것도 좋다. SLF4J SLF4J는 로깅구현체가 아닌 , Logging 라이브러리에 대한 Facade 역할을 한다. 즉, 로깅 라이브러리를 변경하는 경우(log4j -> logback) 소스 코드에 대한 수정을..
정적팩토리 메서드
·
Java
정적팩토리 메서드 특징 추상 팩토리 패턴, 팩토리 메서드 패턴과 무관하다 단순하게 인스턴스를 만들어서 리턴하는 팩토리 역할을 하는 메서드이다. 생성자대신 정적 팩터리 메서드 사용 고려 객체의 인스턴스 생성 시, 이름을 부여할 수 있다. 생성자의 시그니처가 동일할 때 선언부를 동일하게 판단. 매개변수의 위치를 바꾸거나해서 우회적으로 생성자를 다르게 표현. 하지만 생성자는 이름이 고정되어 있어 서로 다른 이유를 명칭하지 못한다. 정적팩토리 메서드는 이름을 사용하여 객체의 인스턴스를 만들어주는 메서드를 만들 수 있다. 인스턴스를 통제할 수 있다. 생성자를 private으로 하여 외부에서 객체를 생성할 수 없게 한다. 정적팩토리 메서드를 통해 객체를 사용하게 한다. 이렇게 하면 여러 개의 인스턴스를 만들 수 없..