java 18

aws linux 기본 세팅하기(java,nginx,scouter,nmon,jenkins)

1.자바설치 -sudo amazon-linux-extras install java-openjdk11 -java -version(설치완료 후 제대로 설치 됐나 버전확인) 2.nginx설치 -sudo amazon-linux-extras install -y nginx1 - nginx -v(설치완료 후 제대로 설치 됐나 버전확인 ) 3. nmon설치 다운로드 -wget https://sourceforge.net/projects/nmon/files/nmon16g_x86.tar.gz 압축풀기 -tar zxvf nmon16g_x86.tar.gz # 압축을 해제하면 nmon 파일들이 나옴, 실행가능하도록 적용해서 실행되는 nmon 파일 사용하면 됨. -sudo cp ./nmon16g_x86_fedora25 /usr/l..

aws/EC2 2022.11.25

Springboot 예약시스템 만들기!(1) 연/월/일/요일 뿌리기!

이전에 kimscafe에서는 '당일' 예약만 가능한 시스템이었다 이번엔 언제든 가능한 예약시스템을 사용해보자! 시나리오 자리 선택->년/월/날짜 표시-> 날짜 선택-> 시간표시-> 예약 프런트 서버 html 서버에 정보가 오면 뿌려줄 자리를 만들어 놓는다 js 같은 코드가 겹치는데 나중에 리팩토링 해주고 지금은 백엔드에 최대한 집중하자! 자리를 선택하면 function showDate(seat,month,year)함수가 작동한다 서버와 통신을 하고 성공시 년/월 다음/이전 버튼 $('#nextButton').append(""); $('#beforeButton').append(""); $('#nextButton2').append(""); $('#beforeButton2').append(""); 날짜들을 뿌..

Springboot 인증 시스템 리팩토링!(1) with interface

이전 글 https://cordingmonster.tistory.com/108?category=1038496 Springboot Jwt+휴대폰인증!(2) 인증번호 확인 이제 인증번호가 맞는지 안 맞는지 판별해보자 프런트 js json형태로 번호/입력 전송 let data=JSON.stringify({ "phoneNum":""+document.getElementById('phoneNum').value+"", "tempNum":""+document.ge.. cordingmonster.tistory.com 고민이 있었다 너무 비슷한 로직이었다 문자인증/전화인증 로직인데 둘 다 인증번호를 받아서 검사해주면 됐었다 그래서 떠오른 아이디어 아 이럴 때 인터페이스를 써볼까..? 하고 만들었다 interface ema..

javaFx 예약시스템+날짜표시해주기(1) with sceneBuilder

일단 흐름은 이렇다 일을 클릭하면 시간을 선택할 수 있는 창이 띄어지게 해달라는 요청을 받았다 이러려면 달력을 만들어야 하는데 datePicker로는 부족해서 일 하나하나를 버튼으로 만들었다 이제 저 month/button들에게 사용자가 접속시 해당 달 과일을 출력 해주자 reservationPage.fxml 일일이 버튼마다 id를 부여했다 fx:id="day 15" 버튼을 누를 시 day값을 저장하려고 함수를 만들어준다 onAction="#click15" 마지막으로 시간선택창이 열릴 수 있게 함수를 만들어준다 onMouseClicked="#show" onAction/onMouseClicked 둘 다 클릭 시 작동하지만 순서가 다르다 시간선택 전에 day값이 들어가야 하므로 먼저 작동되는 onAction..

javaFx/달력 2021.08.08

Springboot 당일 예약시스템 만들기!(2) with Enum

생활 치료소에 온 지 5일이 지났다 5일 동안 열이 좀 나서 코딩을 못하다 이제 괜찮아져서 다시 적는다 두 가지에 대한 검증을 할 건데 1. 예약하는 사이에 이미 예약 이참 2. 불법 적으로 이전 시간으로 조작해서 예약을 시도 service 상황에 맞게 검증해보자 그리고 경우가 늘어나므로 반환 형식을 string로 해준다 service true면 예약이 진행 나머지면 enum의 .valueOf를 이용해서 메시지를 던 저주자! 정상적 예약 시도 중복 시간 예약 시도 (다른 아이디 사용) 이전 시간 예약 시도 마지막 줄은 enum메시지인데 j쿼리가 아직 엉망이어서 받지 못하는 중이다 일단 그건 마지막에 하고 이제 히스토리를 만들러 가자! 히스토리는 모든 예약을 가지고 있는 테이블로 만들 것이다! 아 예약 게..

Springboot 당일 예약시스템 만들기!(1)

아 정말 혼자 공부했을 때 뿌듯했던 파트였다 근데... 지금 아버지가 격리 시설에 들어가시고... 나도 몸살이 좀 있어서 검사를 받았다 정말 열심히 쓰고 싶었던 파트인데 국비지원도 같이 들으면서 열심히 하고 있는데 정말 절망이 찾아온 거 같다 격리 시설 가게 된다면... 노트북으로라도 진행할 생각인데 망할 lombok이 안 먹는다@data가 진짜 젠장 일단 대충 설명을 해야 할 거 같다 여기서는 일단 j쿼리를 사용했고 추후에 교체 예정이다 html 테스트를 위해 잠시 authorize 밖에 빼놨다 j쿼리 부분은 옛날에 짜는 거라 너무 개판이라 나중에 올리는 게 좋을 거 같아서 나중에 올려보자 service 첫 번째로 예를 들어 지금이 현재 오후 8시라면 당일 오전 6시 가 예약이 없었어도 던져주면 안 되..

Springboot 게시판만들기!(14) 게시글 삭제

이제 대망의 삭제를 할 건데 게시글이 삭제될때 게시글만 삭제되면 안 되고 사진/내용/댓글 모두 삭제시키려고 한다 이미 사진삭제하는 함수는 만들어 놨으니 글/댓글부터 삭제해주는 함수를 만들자 commentdao native쿼리를 이용해서 게시글 번호로 관련된 댓글들을 한 번에 삭제할 수 있게 해 주자 commentservice dao를 불러주는 함수이다 boardservice Listalreadyimages=new ArrayList(); uploadimageservice.deleteImage(alreadyimages, bid); 이전 함수를 호출해서 빈 배열을 준다 이렇게 되면 기존 사진의 배열이 비어있으므로 db의 사진 정보가 그대로 deleteimages배열에 들어가서 그대로 delete문으로 들어가게..

Springboot 예외처리및응답하기!(2) with @Transactional And @Transactional(rollbackFor = {Exception.class})

전체적으로 중간 소스 정리를 해보았다 재밌었다 이전에는 예외를 일부로 일으킨다고..? 굳이 이런생각이 있었는데 왜 그런지 어떤 부분에서 일으켜야 하는데 조금은 알거 같은 생각이 들었다 @Transactional에 대해서도 이해가 조금더 높아졌다 또 한 번 느꼈지만 처음부터 변 수명이 나형식을 잘 정해서 해야 편하다는 걸 다시 느꼈다 예를 들어 댓글 등록/수정에는 @Transactional만 붙여놨다 이유는 행동이 하나이다 댓글의 코멘트만 바뀌면 되게 해 놨기 때문이다 하지만 글 등록/수정 시에는 @Transactional(rollbackFor = {Exception.class}) 사용했다 이유는 사진 같은 파일도 받는 과정에서 예기치 못한 에러가발생한다 예를 들어 실수로 이미지가 아닌 다른 형식의 파일을..

Spingboot 예외처리! with @RestControllerAdvice and @ExceptionHandler

원래는 어느 정도 만들고 이제 boolean으로 받던걸 map으로 프런트에게 던져주려 했는데 rollback에 대해 찾아보면서 생각이 좀 바뀌었다 훨씬 빠르게 편하게 예외처리가 가능한 방법을 봤다 @RestControllerAdvice/@ExceptionHandler 였는데 restcontroller 고으로 예외를 만드는 함수를 하나 만든다 그리고 새로운 예외처리 클래스를 만들어준다 @RestControllerAdvice restcontroller에서 터지는 모든 예외를 여기로 가져다준다 @ExceptionHandler(value = Exception.class)해당 예외가 터지면 여기로 와서 수행한 행동을 하게 해 준다 일단 간단하게 메세지만 전송할 거여서 모든 예외로 지정했다(value = Excep..

Springboot 게시판만들기!(11) 댓글 삭제

백엔드는 그냥 cid값으로 delete 해주면 된다 라는 생각을 가지고 임했는데 문제는 프론트 앤드였다 삭제/수정 버튼을 눌렀을 때 지목한 수정 버튼만 적용이 돼야 했었고 또 지정한 댓글의 id값을 어떻게 넘겨줘야 하나 생각했다 그리고 처음 js를 구현했을 때는 window.onload에 꽂혀서 어떤 방식이냐면 예를 들어 cid값이 70인 댓글 삭제를 누르면 document.querySelectorAll('.updateCommnetButton2').forEach(function(item)를 반복문 돌려서 찾아서 cid 값을 찾아서 던 저주는 형식인데 문득 onclick이라는 것이 생각나서 이렇게 바꿨다 onclick이용 어 진짜 이렇게 간단한걸 며칠 동안 아 도대체.. 어떤 댓글인지 어떻게 알지.. 라고..