개요 스프링 프로젝트에서 데이터베이스 연결정보, 서버 포트, 로깅수준 같은 어플리케이션에 관련된 다양한 설정값들을 저장하기 위해서 application.yml을 사용한다. 그런데 이러한 정보들 중에는 외부로 노출되어서는 안되는 값들이 많이 존재하기 때문에, 아무 생각없이 Github과 같은 public 저장소에 올렸다가는 정보가 다 털릴 수 있다. (백엔드에서 잘 처리해놨다고 생각해도 어떤식으로든(노션, 발표자료, organization 등등..) 노출될 수 있으니 항상 조심하자) 어쨌든 모든 git repository를 private로 닫아둘수는 없으므로, public으로 열어두려면 아예 configuration파일 자체의 노출을 막거나, 암호화하는 등의 처리를 해주어야 하는데, 그 방법들에 대해서 다..
swagger에는 크게 springfox, springdoc 2가지 라이브러리가 있다. springfox가 먼저 나왔고 springdoc이 나중에 나왔다고 하는데, 현재 Springboot 3.x버전의 경우 현재는 springfox를 이용할 수 없다. (정확히 말하면 springboot 3.x버전이 java17을 이용하기 때문에 그런 것 같다. 더 이상 업데이트가 되지 않는 것 같음) springfox를 이용하기 위해서는 springboot 2.x버전으로 다운그레이드하거나 업데이트를 기다려야 하는데, 본인이 스프링 3.x버전(java 17)을 사용한다면 springdoc을 이용하자. springdoc에서 configuration파일은 아래와 같이 구성하면 되고, @EnableSwagger2 어노테이션도 ..
자바스크립트는 자바를 이용한 서버 사이드 스크립트 언어이다. 따라서 스크립트 태그 내의 자바 소스코드를 컴파일하고, 나머지는 html로 간주하여 처리한다. 클라이언트가 JSP 요청을 하면, 서버에서 JSP 컨테이너를 통해 전달받은 jsp파일을 서블릿을 통해서 java파일로 변환하고 컴파일해서 클래스 파일을 생성한다. 이 클래스 파일은 메모리에 로딩 하여 실행된 이후, 그 결과는 html형태로 가공되어 응답되며, 웹 브라우저는 그것을 클라이언트에 표시한다. 스크립트 태그 - JSP 페이지에서 자바 코드를 삽입할 수 있는 부분. JSP컨테이너는 스크립트 태그 부분을 제외한 나머지 부분을 html등의 일반 텍스트로 간주 - 과 같이 사용한다. 선언문 : 자바 변수나 메소드를 정의할 때 사용한다. 스크립틀릿 :..
AJAX (Asynchronous Javascript And Xml) JS의 라이브러리 중 하나로, 전체 페이지를 고치지 않고도 페이지의 일부만을 위한 데이터를 로딩하는 기법. 자바스크립트를 이용해서 서버에 데이터를 요청하는 것을 말한다. 즉 웹 브라우저에 어떤 요청을 했을때 페이지 전체를 새로고침하는 것이 아닌, 일부를 랜더링하여 뷰를 갱신할 수 있다. ajax를 사용하는 이유 1. 요청이 아닌 응답을 html이 아닌, data(json)을 이용하여 받을 수 있다 회원가입을 서버에 요청했다면, 서버는 정보를 DB에 저장하고 그에 대한 응답을 해주게 되는데, ajax가 없다면 데이터를 이용하는 것이 불가능하다. (만약 서버가 html로만 응답할 수 있다면, 환경에 따른 response의 폭이 좁아지고 한..
타임리프는 스프링과 통합을 위한 다양한 기능을 제공한다. 타임리프 템플릿 엔진 스프링 빈 등록 스프링 부트는 build.gradle에 코드를 추가해주면 타임리프 템플릿 엔진을 스프링 빈에 등록하고, 타임리프용 뷰 리졸버를 스프링 빈으로 등록할 수 있게 해준다. (자동화 가능하다) implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 입력 폼 활용 name th:object를 적용하기 위해서는 Controller부분에서 model을 이용해서 오브젝트를 뷰로 전달해주고, 뷰에서는 form태그에 th:action과 th:object를 적용한 후 밑에서 타임리프 문법을 이용해서 전달받은 오브젝트로 사용하면 된다. 또한 th:object의..
https://www.thymeleaf.org/기본 기능: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html공식 메뉴얼 - 스프링 통합: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html - 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용하는 템플릿 엔진이다.다른 대표적인 SSR(서버사이드 렌더링) 언어인 jsp보다 더 스프링 친화적이기도 하고 jsp와 달리 순수 HTML형태를 유지하기 때문에 서버를 거치지 않고도 동적으로 렌더링된 결과를 확인하기에 좋다. - 기본적으로 타임리프는 기존 HTML태그에 th:*속성을 지정하는 방식으로 동작한다. th:..