분류 전체보기 47

[JAVA] Optional- of 와 ofNullable의 차이, orElse와 orElseGet의 차이

문자열을 BigDecimal 형태로 바꾸는데 Optional을 사용하다가 of, ofNullable, orElse, orElseGet을 알게되었는데 이름도 비슷하고 아무거나 쓰면 되지 않을까 싶다가 좀 찾아보니 분명한 차이가 있었다. of VS ofNullable 먼저 of와 ofNullable의 차이는 null을 허용할수 있냐 없냐이다. of를 사용할때 null이 있으면 NullPointerException이 발생한다. String str = null; BigDecimal a = new BigDecimal(Optional.of(str).orElse("0") ); System.out.println(a); of 대신 ofNullable을 써보면 String str = null; BigDecimal a = ..

[JAVA] list에 객체 add시 주의할 점

개발하다가 반복문을 사용하여 list에 객체를 추가해야 하는 코드가 있었는데, 출력해보니 모든 객체가 같은 값을 가지고 있었다. 다음과 비슷한 코드인데, List pList = new ArrayList(); Person p = new Person(); for(int i = 0; i < 3; i++) { p.setAge(30+i); pList.add(p); } for(int i = 0; i < 3; i++) { System.out.println(pList.get(i).getAge()); } 이 코드를 실행해 보면 30 31 32 로 찍히지 않고 모두 32로 찍히는 것을 볼 수 있다. 이유는 같은 메모리 주소값을 사용하기 때문이다. JAVA 소스 내에서 new Person(); 를 수행하는 순간 하나의 객체..

[Spring Boot] CORS Configuration 설정하기

CORS 설정하는 방법에는 여러가지가 있는데, 서버에서 설정하는 법과 클라이언트에서 설정하는 법 중 서버에서 설정하는 게 표준이라고 한다. 서버에서 설정하는 방법 중 내가 선호하는 CORS 설정법은 Configuration 설정 파일을 만드는 것이다. 서버 url은 localhost:8080 클라이언트 url은 localhost:3000 이라고 가정한다. application.yml cors: allow: origins: http://localhost:3000 다음과 같이 cors 설정해줄 클라이언트 url을 적어준다. 꼭 cors.allow.origins 로 안해줘도 된다. Configuration 파일 생성 @Configuration public class WebConfig implements Web..

Spring Boot 2023.06.23

[MariaDB] sysdate() VS now()

[출처]https://gitabout.com/21 [마리아 DB] SYSDATE() 와 NOW() 의 차이점 SYSDATE()와 NOW()는 다르다 마리아 DB 현재 시각을 리턴해주는 함수 SYSDATE()와 NOW() 사이에는 중대한 차이점이 있습니다. 그 차이점을 확인해보고 올바르게 사용하는 방법을 알아보려 합니다. SYSDATE() gitabout.com SYSDATE()와 NOW()는 다르다 마리아 DB 현재 시각을 리턴해주는 함수 SYSDATE()와 NOW() 사이에는 중대한 차이점이 있습니다. 그 차이점을 확인해보고 올바르게 사용하는 방법을 알아보려 합니다. SYSDATE() 와 NOW() 는 다르다. (Designed by Freepik) SYSDATE()는 예측 불가능(non-determi..

DB 2023.06.05

[MariaDB] Mybatis - INSERT시 Sequence Nextval 사용하기

sequence값을 조회한 후 insert하는 방법을 정리해 보았다. 1 - Sequence 값 VO에 세팅하는 방법 SELECT 한 시퀀스값을 vo에 세팅해준다. SELECT NEXTVAL(sq_sample_seq) FROM DUAL INSERT INTO TBL_SAMPLE ( SAMPLE_SEQ, SAMPLE_ID ) VALUES ( #{sampleSeq} , #{sampleId} ) // 시퀀스 조회 String sampleSeq = sampleService.selectSeq(); // vo 생성 SamplePVO pvo = new SamplePVO(); // vo 세팅 pvo.setSampleId("sampleId"); pvo.setSampleSeq(sampleSeq); // insert samp..

DB 2023.06.05

[React.js] dependencies 모두 설치-npm install 중 에러 해결

이미 완성된 리액트 프로젝트를 실행시키려고 하니 라이브러리 설치된게 하나도 없어서 package.json 의 dependencies에 있는 라이브러리를 모두 설치하려고 한다. 일괄 설치하려면 npm install 을 치면 된다는데 무슨 에러가 잔뜩떠서 찾아보니 현재 node버전과 package.json에 있는 node-sass의 버전과 호환되지 않아서 별걸 다 해봐도 안되었던 것이다. (현재 node버전은 높은데 node-sass가 오래됨) node-sass버전을 바꾸는것 보단 node버전을 바꾸는게 낫다는 검색결과를 봐서 node 버전을 낮춰주니 npm install이 정상정으로 되었다. node버전 다운그레이드 하는 방법은 Mac OS는 많은데 윈도우는 좀 까다로운것 같아 그냥 낮은 버전으로 재설치했..

React.js 2023.04.13

[Vue.js] Spring Boot 게시판 만들기 -(4) 게시판 테이블 표현(Element Plus)

저번 포스팅에서 만든 조회하는 API로 화면에 표현하는 것 까지 했는데, 이번 포스팅에서는 조회한 데이터를 테이블로 표현해보겠다. 참고 블로그 https://dreamcoding.tistory.com/41 스프링 (Spring Vue) 게시판 만들기 #9. FrontEnd 데이터 테이블로 표현하기 이번에는 저번에 화면에 보여진 데이터(JSON)들을 테이블 형태로 표현하도록 하겠습니다. 프론트 라이브러리로는 Element-ui를 사용하도록 할겁니다. https://element.eleme.io/#/en-US Element - The world's most po dreamcoding.tistory.com Element Plus, moment 설치 프론트 라이브러르로 Element Plus를 설치한다. 참고한..

Vue.js 2023.03.30

[Vue.js] Parsing error: No Babel config file detected 에러 해결

vue 공부하는데 파일마다 맨위에 Parsing error가 생겨서 찾아보니 VSCode에서 프로젝트의 ESLint 설정 파일을 인식하는 부분에서 에러가 난 것이라고 한다. Parsing error: No Babel config file detected for D:\study\Vue-study\vue-test-front\src\components\HelloWorld.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files. .eslintrc.js 파일 생성하는 방법, settings.json파일 수정하는 방법 2가지 방법이 있는데 나는..

Vue.js 2023.03.29

[Vue.js] Spring Boot 게시판 만들기 (3) - 간단한 조회 기능 구현

게시물을 조회하는 간단한 API를 작성하고, 화면에 뿌리는 것 까지 해볼 것이다. 1. API 작성 클래스 생성 (1) BoardRepository import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.vue.test.common.entity.Board; @Repository public interface BoardRepository extends JpaRepository { } (2) BoardService package com.vue.test.board.service; import java.util.List; import org.spri..

Vue.js 2023.03.23

[Spring Boot] RequestMapping VS PostMapping/GetMapping

스프링 controller를 작성하려고 구글링하다보면 메소드에 어노테이션을 붙이는데 어떤건 RequestMapping을 붙이고 어떤건 PostMapping이나 GetMapping을 붙이는 걸 볼 수 있다. @RequestMapping(value = "/post", method = RequestMethod.POST) @RequestMapping(value = "/get", method = RequestMethod.GET) 이 코드가 각각 @PostMapping("/post") @GetMapping("/get") 와 동일한 코드이다. 개인적으로 간결하고 메소드를 구분하기 쉬워서 postmapping과 getmapping을 더 선호한다.

Spring Boot 2023.03.23