일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- --watch
- Packet Network
- draganddrop
- express
- mongoDB
- Unity IAP
- Git
- react
- Camera Movement
- critical rendering path
- nodejs
- rpg server
- screencapture
- Spring Boot
- Google Developer API
- spread 연산자
- docker
- java
- css framework
- server
- Unity Editor
- SDK upgrade
- Google Refund
- Camera Zoom
- unity
- Digital Ocean
- OverTheWire
- springboot
- linux
- MySQL
- Today
- Total
목록분류 전체보기 (89)
우당탕탕 개발일지
지금까지는 아래처럼, 문자열에 SQL 구문을 직접 적었다. 이런 방식은 여러가지 문제가 있다. public boolean isUserNotExist(int uid){ String querySQL = "select * from user where id = ?"; return jdbcTemplate.query(querySQL, (res,rowNum)->0,uid).isEmpty(); } 실수할 가능성이 많고, 실수를 인지하기 힘들다 . 문자열에 오타가 날 경우, 컴파일 시점이 아니라 런타임 시점에 발견되기 때문이다.특정 데이터베이스에 종속되게 된다. 상황에 따라 DB가 변경될 수 있는데, 만약 db가 변경될 경우, 모든 코드를 재작성해야한다.반복작업이 많아진다. CRUD 쿼리는..
윈도우에서 정상적으로 run까지 되는것을 확인하고 mac으로 옮겨왔는데 이런 현상이 발생gradle 버전도 동일하고 jdk-21버전도 분명히 존재한다.검색해보니 extension 중에 java language support 랑 충돌이 나서 그런거라고 한다.java language support를 제거하고 vscode를 재시작하면된다. vscode에서 스프링부트를 개발/실행하기 위한 extensions 목록은 다음과 같다Extension pack for javaSpring boot extension packJava
리팩토링하기이전에 UserController 에서 유저생성, 조회, 수정,삭제 API를 구현하였다. 이것을 리팩토링 해보고, 스프링컨테이너에 대해 알아보자. 컨트롤러에서 하던 작업들은 다음 3개로 분리될것이다.Controller : API의 진입지점으로써 HTTP Body를 객체로 변환한다Service : 현재 유저가 있는지등을 확인하여 예외처리 진행Repository : SQL을 사용해 실제 db와 통신을담당. 총 3개의 역할군으로 나누어서 작업을 하도록한다. 그럼 각 코드를 보도록 하자UserController.java@RestControllerpublic class UserController { private UserService userService; public UserControll..
Database 기본mysql 에 접속한다. 터미널을 열고,mysql -u root -p사용가능한 명령어들을 알아보자.아래 언어들은 DDL (Data Definition Language) 라고한다.create database [name]; ##데이터베이스 생성show databases; ##데이터베이스 목록보기drop database [name]; ##데이터베이스 삭제use [database-name]; ## 데이터베이스 접속## 데이터베이스 안으로 들어왔음.show tables; ##테이블 조회create table [테이블 이름]( [필드이름] [타입] [부가조건], ... primary key ([필드이름]));]drop table [테이블이름]; ##테이블 제거SQL 을 알아보자CRUD (Cre..
0. Java에 대한 이해C언어는 운영체제별로 컴파일러가 따로 있다. Java는 컴파일러가 한개고, 각 운영체제에 맞는 JVM이 각 운영체제가 이해할 수 있도록 재변환작업을 거친다. Java는 한번만 결과물을 만들어놓으면 운영체제에 상관없이 모두 동일한 결과를 만들 수 있다. 이 JVM은 인기가 많아서 다른 언어에서도 사용한다. java의 버전 = jdk 버전이다.JDK > JRE > JVM - java virtual machine : java 가상머신. 운영체제별로 각각 존재한다. 컴파일러가 만든 바이너리 코드를 읽고 검증하고 실행하는 역할을 한다-java runtime environment : jvm + java program . 실행에 필요한 라이브러리 파일을 포함하고있다.-Java Devel..
jdk를 설치했는데도 다음과 같은 에러가 발생했을 경우, 프로젝트에 설치한 jdk버전을 세팅해 주지 않아서 발생한 문제이다.아래는 개발도구 IntelliJ IDEA 기준 해결방법이다.우선 File > Project Structure > SDK 에서 설치한 jdk로 변경한다.나의 경우 다른 프로젝트에서 jdk 다른버전을 사용하고 있기 때문에, 환경변수에 설정되어있는 JAVA_HOME 의 경로를 수정할 수 없었다 (java11 사용중..)그래서 JAVA_HOME을 수정하지 않고 해결하는 방법을 찾아야했다.프로젝트로 가서File > Settings > Build, Excution, Depolyment > Build Tools > Gradle 에서 Gradle JVM을 설치한 jdk버전으로 변경해준다.Sync를..
날짜를 표기하는 여러 포맷들이 있다.YYYY-MM-DD 나, YYYY년 MM월 DD일 등등.. 이런 다양한 날짜 포맷을 Date 형식으로 변환하는 작업이 필요했다. 이때 알게 된 것이 dayjs이다. 프로젝트에 dayjs를 설치한다.npm install dayjs 커스텀 날짜 포맷을 적용하여 Date로 변환하기 import dayjs from 'dayjs';dayjs.extend(customParseFormat); //여러가지 커스텀 포맷을 지원하기 위해 확장//변환포맷을 커스텀으로 여러개 설정해놓는다.date_formats = [ 'YYYY년MM월DD일', 'YYYY년M월D일', 'YYYY/MM/DD', 'YYYY-MM-DD', 'YYYY.MM.DD hh:mm:ss', ..
준비사항 : github token 준비github를 이용하여 배포할 예정이다. 기본적으로 git 에 로그인할때 빔리번호가 아니라 패스키를 사용해야 한다. 깃허브 프로필 > Settings > developer settings > personal access token 을 발급받고 token값을 잘 보관해두자 ubuntu 포트 열기브라우저 > 웹 접속 포트는 80 이고 웹>서버API통신 포트는 3000 으로 잡았다. 통신을 하기 위해서는 ubuntu에서 포트를 열어주어야 한다.sudo ufw allow 3000sudo ufw allow 80sudo ufw reload 서버 ( nestJs ) 배포프로젝트가 ubuntu에 없을 경우 git clone 을 이용해 다운받는다. 그 뒤, 수정사항이 생길 경우 g..