분류 전체보기 212

@RequestBody 호출 시 일어나는 일을 간단히 알아보기 (feat. MessageConverter, ObjectMapper)

Http 요청 시 항상 보게되는 @RequestBody 어노테이션이 있다. @ModelAttribute 어노테이션과 항상 비교되는 어노테이션이다. 오늘은 @RequestBody만 딥하게 파보도록 하겠다. 지금까지는 @RequestBody를 '스프링 내부의 리플렉션으로 매핑을 해주며 JSON으로 요청이 가능하고 자바객체로 역직렬화를 해준다' 라고만 알고있었다. 더 들어가보자. @RequestBody 애너테이션의 역할은 클라이언트가 보내는 HTTP 요청 본문(JSON 및 XML 등)을 Java 오브젝트로 변환하는 것이다. HTTP 요청 본문 데이터는 Spring에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환된다. 1. HttpMessageConverter 이동 @Reque..

Back-end/java 2023.12.06

간호간병통합서비스 병원 환자 입원 시 안내사항, 검진안내사항, 간호서비스 종류

1. 입원 안내 사항 1) 입원시 준비 물품 비누, 치약, 칫솔, 수건, 미끄럽지 않은 실내화, 화장지, 물컵/물통, 보호자 침구류 등 입원 전 복용하던 약이 있는 경우에는 약과 약물정보지(약 처방전 또는 약 이름이 써있는 약봉투)를 가지고 오십시오. 필요하신 물품은 병원 내 1층 편의점에서 구입하실 수 있습니다. 보호자용 침구류는 제공하지 않으므로 개인적으로 준비해주시기 바랍니다. 입원 전 복용하던 약이 있는 경우에는 약과 약물정보지(약처방전 또는 약 이름이 써있는 약봉투)를 간호사에게 전달해 주시기 바랍니다. 사용 제한 : 가습기 (감염예방) / 커피포트, 전기장판, 찜질팩 (화재 및 화상예방) 2) 의사 회진 시간 입원 시 담당 의사는 정해진 시간 내 하루에 1회 정도 병실을 방문하며, 회진 시간에..

[Vue] Visual Studio Code에서 Vue3 설치 (NodeJS)

1. nodeJS 설치 https://nodejs.org/en/download Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. vue 개발환경 다운로드 npm install -g @vue/cli 를 입력하여 vue 개발환경을 빠르게 다운로드 받는다. 3. 확장자 설치 1. Vetur 2. HTML CSS Support 3. Vue 3 Snippets 4. vue 프로젝트 생성 vue create [프로젝트명] https://haenny.tistory.com/247 [VueJS] VSCode 에서 VueJS 시작하기 - ① 설치 및 세팅 방법 [VueJS] VSCod..

Frond-end/Vue 2023.12.04

MariaDB / DBeaver 에서 컬럼 Auto increment 숫자 변경

스케줄러를 적용했더니,, row가 너무 많아져서 테스트하기 불편했다. 다시 깔끔하게 몇 row 만 남기고 테스트 하려고 했는데, 자동으로 증가하는 index값이 초기화가 되지 않았다. 구글링 한 결과 , 아래와 같이 쿼리를 작성해주면 된다! ALTER TABLE hospital.round_schedule AUTO_INCREMENT = 862; 이렇게 해주면 자동으로 지정한 숫자부터 인덱스가 생성된다!

DB/Database 2023.11.30

[Spring] 스프링을 구동하면 일어나는 일 / 생성자 주입을 사용해야 하는 이유 (스프링 빈 라이프사이클)

스프링을 구동 (run) 하면 일어나는 일들을 알아보며 생성자 주입과 필드 주입의 차이를 알아보자. 스프링을 구동하면 스프링은 스프링 빈 라이프사이클을 거치며, 7단계의 순서로 진행이 된다. 스프링 컨테이너 생성 → 빈 생성 → 의존성 주입 → 초기화 콜백 메서드 호출 → 사용 → 소멸 전 콜백 메서드 호출 → 스프링 종료 자세히 알아보자. 1. 스프링 컨테이너 생성 스프링을 구동하면 , 먼저 스프링 컨테이너가 생성이 된다. 컴포넌트스캔이나 @Bean 으로 등록된 클래스 등 빈으로 설정한 아이들을 스프링 컨테이너 생성과 함께 모두 빈으로 등록한다. 2. 빈 생성 스프링 컨테이너는 등록된 빈의 클래스를 기반으로 실제 빈 객체를 생성한다. 스프링을 실행(run) 하자마자 빈 등록과 빈 생성이 바로 이루어진다..

Back-end/Spring 2023.11.17

MariaDB 설치 및 Dbeaver로 접속하기

1. MariaDB 설치하기 https://kitty-geno.tistory.com/55 MariaDB | 윈도우 MariaDB 설치 및 접속하기 ▶ MariaDB란? 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 kitty-geno.tistory.com 위의 블로그를 그대로 따라했다. TCP port 값 설정 시, 3306 기본값이 이미 있어서 3307 로 설정해주었다. 2. DBeaver로 MariaDB에 접속하기 회사의 DB정보 (IP, port번호, ID, PW)를 받았다. 선임께서 디비 정보로 DB에 접근하라고 하셨다. 디비버를 사용해 접근을 ..

DB/Database 2023.11.13

아파치 이차트(Apache ECharts) 란?

이 전에 프로젝트를 진행하면서 HiChart를 써 본 경험이 있다. 찾아보니, 아파치 이차트 라는 아파치 소프트웨어에서 지원하는 좋은 차트 라이브러리도 있어서 정리를 해보려고 한다. ECharts 개념 아파치 이차트(Apache ECharts)는 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 지원하는 자바스크립트(JavaScript) 오픈 소스 시각화 라이브러리입니다. ECharts 특징 및 장점 1. 무료 및 오픈소스인 Apache 라이센스이기 때문에, 프로젝트 사용에 자유로우며 안정성과 신뢰성, 긴 호환성을 보장한다. (가장 큰 특징 및 장점) 2. 버전업/릴리즈 주기가 상당히 빠르다. v5.0.0, v5.0.1, v5.0.2 - 버전업 주기가 한달 미만이다. ..

AOP를 사용하여 에러 로그 찍기

앞의 두 글에 심화된 내용이다. 설정은 그대로 하고,  package com.example.first.aop;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.springframework.stereotype.Component;@Aspect@Component@Slf4j@RequiredArgsConstructorpublic..

Back-end/java 2023.09.26

빌드 중 NoSuchFileException 에러 미해결

평소처럼 자바 프로그램을 실행 시키는 중에 아래와 같은 에러가 났다.2023-09-26 09:23:02.151 WARN 23408 --- [ main] o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/C:/Users/weaver-gram-002/.gradle/caches/modules-2/files-2.1/com.oracle.database.security/oraclepki/21.3.0.0/oracle.osdt/osdt_cert.jar] from classloader hierarchyjava.io.IOException: java.lang.reflect.InvocationTargetException at org.apac..

Back-end/java 2023.09.26

게시판 페이징 기능 완료

페이징 처리는 막상 해보니, 크게 어려움은 없었는데 변수가 많아서 헷갈렸다. 가장 중요한 변수는 세가지 정도이다. 총 게시물 (boards), 페이지 사이즈 (한 페이지에 담기는 게시물 수, pageSize), 총 페이지 수(총 게시물을 페이지사이즈로 나눈 수, totalPages) 기본적으로 페이지 사이즈는 10으로 잡는다. 나도 10으로 잡았다. 1. BoardController // 게시판 글 조회 (페이징 처리 된) @GetMapping public String getAllBoards(Model model, @RequestParam(defaultValue = "1") int currentPage) { int pageSize = 10; // 페이지당 게시물 수 List boards = boardSe..

Back-end/java 2023.09.24

파일 업로드 기능 구현 중 에러 - IllegalStateException: File has been moved - cannot be read again

ERROR 14924 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: File has been moved - cannot be read again] with root causejava.lang.IllegalStateException: File has been moved - cannot be read again at org.springfr..

Back-end/java 2023.09.21

게시판 페이징 기능 구현 중 에러 (Uncaught SyntaxError: missing ) after argument list)

스크립트에서 화면으로 렌더링 하는 과정에서 에러가 발생한 듯하다.. 에러메시지:  Uncaught SyntaxError: missing ) after argument list (at (색인):125:50)  BoardController @GetMapping public String getAllBoards2(@ModelAttribute("params") final SearchDto params, Model model) { PagingResponse response = boardService.findAllBoards(params); model.addAttribute("boards", response); model.addAttribute("params", para..

스프링 부트 페이징처리 (jsp, mybatis, postgresql)

https://congsong.tistory.com/26 스프링 부트(Spring Boot) - 페이징(Paging) & 검색(Search) 처리하기 1/2 [Thymeleaf, MariaDB, IntelliJ, Gradle, MyBat본 게시판 프로젝트는 단계별(step by step)로 진행되니, 이전 단계를 진행하시는 것을 권장드립니다. DBMS 툴은 DBeaver를 이용하며, DB는 MariaDB를 이용합니다. (MariaDB 설치하기) 화면 처리는 HTML5 기반congsong.tistory.com  https://carrotweb.tistory.com/257 Spring에 Paging(페이징) 처리 및 적용게시판에서 게시물 리스트를 가져올 때 가져올 게시물 리스트 수를 지정하여 가져오지 않으면..

Back-end/java 2023.09.21

스프링부트 로컬에서 이미지 불러오기

http://antananarivo.tistory.com/63 스프링, 로컬에서 이미지 불러오기 최종. 일주일을 해맸다. 정확히 말하면 5일.결론을 얻은것 같았는데 다시 원점으로 돌아오기를 반복... 그래도 결국 답을 찾아냈다.(스프링 버젼은 4.3, jdk는 1.8, tomcat은 8.0 버젼을 사용중임) 방법은 크 antananarivo.tistory.com 3가지 클래스만 수정해주면 된다. 1. HomeController @RequiredArgsConstructor @Controller @Slf4j @CrossOrigin public class HomeController { private final UserService userService; private final HomeMapper homeMa..

Back-end/java 2023.09.19

AbstractMethodError: Receiver class net.sf.log4jdbc.sql.jdbcapi.ResultSetSpy does not define or inherit an implementation of the resolved method 'abstract java.lang.Object getObject(java.lang.String, java.lang.Class)' of interface java.sql.ResultSet.

https://momobob.tistory.com/23 [JDBC Error] log4jdbc를 이용한 DB설정 시 에러 해결 Spring boot에서 log4jdbc.sql.jdbcapi.DriverSpy 드라이버를 이용한 DB 설정시 아래와 같은 에러가 발생함 java.lang.RuntimeException: Driver net.sf.log4jdbc.sql.jdbcapi.DriverSpy claims to not accept jdbcUrl, jdbc:log4jdbc:oracle:thin:@l momobob.tistory.com https://makeaplayground.tistory.com/179 Spring Boot SQL 로그 설정 (Log4jdbc) Gradle 적용시키기 Log4jdbc Log..

Back-end/java 2023.09.19

DBeaver에서 컬럼명 언더바 오류 해결

1. mybatis-config.xml 아래 세팅 추가! // 아래 세팅 추가! 2. mapper.xml 으로 시작하는 설정 추가! DB에 있는 컬럼명을 현재 VO 명과 맞추는 작업이다. 그리고 원하는 쿼리로 내려가서, 만들어준 설정의 값(resultMap = "userResultMap") 을 넣어준다! SELECT "userId", password, name, username, nickname, phone_number, zipcode, street_adr, detail_adr FROM postgres.first_project.users WHERE username = #{username}

Back-end/java 2023.09.19

유효성 검사시 기존 작성 데이터가 사라지는 문제 해결

function register() { // e.preventDefault(); // 폼 제출 방지 // 1. 여기서 내가 화면에서 post 로 입력하는 정보를 하나하나 가져오기 var name = $('#name').val() var nickname = $('#nickname').val() var username = $('#username').val() var password = $('#password').val() var passwordConfirm = $('#passwordConfirm').val() var phoneNumber = $('#phoneNumber').val() var profilePicture = $('#profilePicture').val() var zipcode = $('#zipc..

Back-end/java 2023.09.14

카카오 주소 검색 api 로 회원가입 시 주소 입력하기 & 에러

http://postcode.map.daum.net/guide Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. postcode.map.daum.net 카카오 공식문서에서 제공하는 api 예시 코드이다. 내가 작성한 register.jsp 코드 회원가입 이름 이름을 입력해주세요. 별명 별명을 입력해주세요. 주소 입력 우편번호 도로명 주소 상세주소 이메일 이메일을 입력해주세요. 인증 인증번호 인증번호를 입력해주세요. 비밀번호 비밀번호를 입력해주세요. 비밀번호 확인 비밀번호를 다시 입력해주세요. 휴대폰 번호 휴대폰 번호를 입력해주세요. 프로필 사진 이미지 파일을..

Back-end/java 2023.09.13

ajax xhr서버 요청 실패 에러/ 회원가입 최종성공 jsp코드

컨트롤러 @RequiredArgsConstructor @Controller @Slf4j @CrossOrigin public class HomeController { private final UserService userService; // 1. 회원가입 화면 @GetMapping("/register") public String signupForm() { return "register"; } // 2. 회원가입 @PostMapping("/register") @ResponseBody public void signup(@RequestBody UserDto userDto) { System.out.println("TEST"); System.out.printf("testDto == " + userDto.getEma..

UnsatisfiedDependencyException , NoClassDefFoundError 에러

회원가입 시 아래 에러가 남 에러가 난 상태의 코드.. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-09-13T10:26:55.675+09:00 ERROR 11084 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'homeController' defined in file [C:\User..

Back-end/java 2023.09.13