개발 공부는 어려워
반응형
article thumbnail
Thymeleaf 설정
study/spring 2023. 11. 21. 15:34

타임리프란? 위에서 말했듯 결국 MVC패턴에서 View에 해당하는 화면을 만들때 사용하는 템플릿 엔진이다. 타임리프 의존성 주입 타임리프를 사용하기 위해서는 의존성을 주입해야 하는데, https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf 위 링크를 들어가 사용할 버전을 클릭후에 사용하고 있는 프로젝트 설정에 따라 추가하면 된다. 하지만 Spring Initializr(https://start.spring.io/) 사이트를 이용한다면, ADD DEPENDENCIES...를 클릭하여 사용할 내용을 입력하면 된다. 혹은 인텔리제이에서 프로젝트 생성시 추가하면 된다. 설정 경로설정 Thymeleaf를 사용할 기본 경로를 설정해야 하는데 아래 경로에 있는 res..

0.개요

[주요 기능] 기본적인 CRUD 기능이 있는 게시판 스프링, 시큐리티 카카오, 네이버 로그인 처리 일반 로그인 스프링 배치 Oauth 2.0 사용 [개발언어] Java 17 [개발환경] IDE : InteliJ spring boot : 3.0.11 JPA spring security spring batch Oauth 2.0 스웨거 [DB] mysql [형상관리] Git [설명] 게시판 + 로그인 혼술 관련 커뮤니티 사이트

@ModelAttribute 어노테이션
study/spring 2023. 8. 2. 22:32

@ModelAttribute 어노테이션은 컨트롤러에서 model을 넘길때 사용되는데 아래 코드를 보자 @GetMapping("/") public String a(Model model){ model.addAttribute("test1","테스트1"); model.addAttribute("test2","테스트2"); return "test"; } 이런식으로 model에 test1, test2를 담아야 하는 상황이 여러번 생긴다고 생각하면 매번 코드에 작성을 해야한다. 하지만 위에서 따로 @ModelAttribute 어노테이션을 사용해서 빼두면 편하게 사용할 수 있다. 만약에 ENUM으로 테스트1, 테스트2를 설정해 두었다면 아래와 같이 사용할 수 있다. @ModelAttribute("test") public..

@SpringBootTest 어노테이션 사용 이유
study/spring 2023. 8. 1. 17:47

이전 글에서 테스트 코드 작성시 @Value를 사용하면 받아오는 데이터가 없다고 설명했다. 그 이유는 테스트클래스에 @SpringBootTest 어노테이션이 없기 떄문이다. package hello.jdbc.connection; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import java.sql.Connection; import stati..

Application.yml에 작성한 데이터 사용하기
study/spring 2023. 8. 1. 17:37

Spring Boot를 사욜하다보면 applcation.yml파일을 본적이 있을 것이다. DB로 예시를 들면 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: url username: 유저UD password: 비밀번호 Mysql를 사용할떄 application.yml에 datasource를 이런식으로 셋팅해줘야 db연동이 된다. 만약에 우리가 해당 데이터 베이스가 잘 연동됐는지 확인하기 위해서 package hello.jdbc.connection; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import jav..

비어있는 for문
study/java 2023. 3. 28. 11:46

알고리즘책에 있는 코드를 공부를 하다 처음보는 내용을 발견해 정리해본다. static void shellSort(int[] a, int n) { int h; for (h = 1; h 0; h /= 3) { for (int i = h; i = 0 && a[j] > tmp; j -= h) { a[j + h] = a[j]; } a[j + h] = tmp; } } } 위 코드에서 for (h = 1; h < n / 9; h = h * 3 + 1) ; 이 부분을 처음 봤을때는 for문은 단순히 반목해서 무언가를 처리하는 함수..

HTTP헤더 - 캐시와 조건부 요청
개념 정리/Http 2023. 3. 15. 18:00

1. 캐시 기본 동작 헤더에 cache-control;이 들어가면 캐시가 적용된다. 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 빨라진다. 캐시 시간 초과 다시 캐시 데이터를 불러와서 캐시 데이터를 갱신한다. 2. 검증 헤더와 조건부 요청 1 서버에서 기존 데이터를 변경 할 경우 다시 데이터를 받아와서 캐시 데이터를 갱신한다. 서버에서 기존 데이터를 변경하지 않을 경우 캐시에는 데이터 최종 수정일이 함께 저장되는데, 시간 초과가 되어 재 요청을 보냈을 때 데이터 최종 수정일도 함께 보낸다. 해당 수정일을 서버와 캐시 데이터를 확인하여 동일한 경우 304 Not Modified를 보내면서 HTTP 바디에 해당하는 데이터는 보내지 않는다...

HTTP 일반 헤더
개념 정리/Http 2023. 3. 15. 14:08

HTTP 헤더란? HTTP 전송에 필요한 모든 부가정보 분류 General 헤더 : 메세지 전체에 적용되는 정보 Request 헤더 : 요청 정보 Response 헤더 : 응답 정보 Entity 헤더 : 엔티티 바디 정보 HTTP BODY 메세지 본문을 통해 표현 데이터 전달 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 데이터 유형(html,json), 데이터 길기, 압축 정보 등등 2. 표현 Content-Type : 표현 데이터의 형식 미디어 타입, 문자 인코딩 ex) text/html; charset=utf-8, application/json, image/png Content-Encoding : 표현 데이터의 압축 형식 데이터를 전달하는 곳에서 ..

HTTP 상태 코드
개념 정리/Http 2023. 3. 14. 17:04

클라이언트가 보낸 요청이 처리 상태를 응답에서 알려주는 기능 1XX (informational) : 요청이 수신되어 처리중 2XX (Successful) : 요청 정상 처리 200 : OK 201 : Created 202 : Accepted 요청이 접수되었으나, 처리가 완료되지 않음 배치 처리 같은 곳에서 사용 204 : No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 3XX (Rediection) : 요청을 완료하려면 추가 행동이 필요 웹 브라우저는 3XX 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동한다. -> 리다이렉트 리다이렉션 이해 영구 리다이렉션 : 특정 리소스의 URI 영구적으로 이동 301 : Moved P..

HTTP 메서드 활용
개념 정리/Http 2023. 3. 14. 13:56

1. 클라이언트에서 서버로 데이터 전송 쿼리 파라미터 GET 정렬 필터(검색어) 메세지 바디 POST PUT PATCH 회원가입, 상품 주문, 리소스 등록, 리소스 변경 예시 정적 데이터 조회 이미지, 정적 텍스트 문서 GET 방식 쿼리 파라미터 없이 단순 리소스 경로로 조회 동적 데이터 조회 쿼리 파라미터 사용 검색, 정렬 필터 GET은 쿼리 파라미터 사용해서 데이터를 전달 HTML Form을 통한 데이터 전송 Form submit에서 POST 전송 GET 전송도 가능 HTML Form 전송은 GET, POST만 지원한다. HTTP API를 통한 데이터 전송 서버 서버 앱 클라이언트 웹 클라이언트 AJAX React, Vue.... TEXT, XML, JSON.... 2. HTTP API 설계 예시 컬..

반응형