분류 전체보기 47

[JAVA] java.sql.Date vs java.util.Date

spring으로 개발하다 보면 Date 자료형을 써야할 때가 많은데, import 하려고 보면 보통 java.sql.Date와 java.util.Date 두가지 타입이 있다. 우선 java.sql.Date는 java.util.Date를 상속한 것. java.sql.Date : JDBC등을 이용해서 DB에 격납된 날짜나 시각정보를 데이터로서 추출하거나 - 데이터베이스에 격납할 때의 영역으로 사용하며, 문자열 형식이 "2008-12-30 12:30:20" 와 같은 형태의 데이터 에 특화해서 사용하는데에 적합하다. - 연월일시분초등의 요소를 따로 따로 분리하지 않고 하나의 정보로서 다룬다. - 해당 클래스의 사용 목적은 년도, 월, 일을 유지하는 SQL 데이터를 다루기 위함이다. - 시간 정보는 다루지 않고 ..

[Vue.js] Spring Boot 게시판 만들기 (2) - Spring Boot, Vue 프로젝트 생성 & 포트 번호 변경

1. Spring Boot 프로젝트 생성 STS프로그램을 사용하고, 빌드도구는 Gradle과 Maven중 Gradle로 진행했다. 프로젝트 생성 Spring Starter project로 프로젝트를 하나 생성한다. dependency는 대충 Lombok, SpringBootDevTools, SpringWeb, MariaDB Driver 정도 체크하고 Finish를 눌러준다. 나중에 build.gradle 파일에서 추가할 수 있다. application.yml server: port: 8081 spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/vue_test_db?characterE..

Vue.js 2023.03.23

[Vue.js] Spring Boot 게시판 만들기 (1) - Database 생성

서버는 Spring Boot로 하고 프론트는 vue를 사용해서 게시판을 만들어 보겠다. vue는 처음이지만 일단 만들어보기 https://dreamcoding.tistory.com/29 여기 블로그 코드를 참고해서 만들었다. 이 블로그는 spring, mybatis를 사용하지만 나는 spring boot, jpa를 사용할 것이다. MySQL Client를 실행해서 다음 코드를 실행해 데이터베이스를 만들어준다. 데이터베이스명 : vue_test_db mysql> show databases; mysql> create database vue_test_db; mysql> create user 'vue_test'@'%' identified by '1234'; mysql> grant all privileges on..

Vue.js 2023.03.22

[Python] ModuleNotFoundError: No module named 에러 해결

import dateutil 이 안돼서 찾아보니 pip install python-dateutil을 해주래서 해주었는데도 안됨. pip install python-dateutil을 해주면 계속 Requirement already satisfied 어쩌구 하면서 이미 설치되었다고 한다. 더 구글링 해보니 시스템 환경변수를 추가해줘야 한다고 한다. (아무래도 python 설치하고 모듈을 처음 install 해서 그렇지 않을까 예상된다) 모듈 설치 경로 확인 우선 pip install python-dateutil을 해주고 Requirement already satisfied 뒤에 붙은 경로를 복사해준다. ( 내 경우 c:\users\*******\appdata\local\programs\python\pytho..

[Python] list, dict 자료형

1. list 선언 빈 리스트 만들기 list = [] list = list() 정해진 범위로 리스트 만들기 list = list(range(0, 10)) 크기가 정해진 리스트 만들기 list = [0 for i in range(n)]# 모두 0으로 관련 메소드 list.append(n) : 추가하기 list.remove(n) : 제거하기. 가장 앞에 있는 n 제거 list.sort(key = None, reversed = False) : 정렬하기 list.clear() : 초기화하기 ( list = []와 동일) 중복 없는 리스트 만들기 -> set() 사용 list = [1, 1, 1] list = set(list) 2. dict 선언 빈 dict 만들기 dict = dict() dict = {} 특..

프로그래머스 코딩테스트 lv2-구명보트 : int 배열 정렬

https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr int 배열 정렬하기 Arrays.sort 이용 오름차순 -> int[] intArray = {1,3,5,7,2,4,6}; Arrays.sort(intArray); 내림차순 -> int[] intArray = {1,3,5,7,2,4,6}; // primitive Type을 Wrapper클래스로 박싱해주어야 reverseOrder 사용가능. Integer[] tmp = Arrays.stream(in..

[JAVA] Stack

Stack 사용 그냥 짝맞는거 찾아서 하나하나 제거하는 식으로 풀었었는데 정확성은 100%이지만 효율성에서 다 틀렸다. 찾아보니 Stack으로 푸는 방법이 있다해서 알게 되었다. 다행히 학교다닐 때 배운 개념과 코드가 거의 유사해서 이해하는데는 어려움이 없었다. 선입선출(FIFO) 데이터 추가 : push 데이터 꺼내기 : pop (제일 나중에 추가한 것부터 꺼냄) 코드 Stack stack = new Stack(); // Stack에 데이터 추가 stack.push("A"); stack.push("B"); stack.push("C"); // Stack에서 데이터 꺼내기 System.out.println(stack.pop()); // ==> C // Stack의 최상단 값 출력(제거하지 않음) Syste..

프로그래머스 코딩테스트 lv2-다음 큰 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 반복문만 사용해서 문제를 풀었었지만 효율성에서 틀려서 새롭게 푼 코드 정확성은 맞지만 효율성이 틀린 답 class Solution { public int solution(int n) { int answer = 0; String bi = Integer.toBinaryString(n); StringBuilder sb = new StringBuilder(bi); if(sb.indexOf("0") < 0..

[JPA] Persistable 인터페이스

회원가입 개발하다가 같은 회원정보를 입력해서 save() 메서드를 사용했는데도 에러가 나지 않아 보니까 insert 되지 않고 update가 되는 것을 볼 수 있었다. 먼저 맨 처음 엔티티를 생성할때는 insert가 된다. 그런데 아래 로그를 보면 insert 전에 select가 되는 것을 볼 수 있다. @Id를 지정한 컬럼은 똑같이 하고 나머지를 다르게 입력하고 save() 메소드를 실행시키면 로그가 길지만 자세히 보면 update 하기전에 select를 한 번 더 하는 것을 볼 수 있다. 아예 같은 정보를 입력하면 select만 한다. 이렇게 insert, update 할 때 마다 select를 하는 것은 매우 비효율 적이다. https://kdhyo98.tistory.com/63

Spring Boot 2022.11.22