![[Thymeleaf] 타임리프 특징과 기본 사용법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnoZ75%2FbtsE6VZL2TL%2FjcCrdY3XhzsYjHXMtVpSf1%2Fimg.png)
타임리프란? 타임리프(Thymeleaf)는 자바 웹 애플리케이션 개발에 사용되는 모던 서버사이드 Java 템플릿 엔진 중 하나이다. HTML, XML, 텍스트, 자바스크립트, CSS 등 다양한 마크업 파일을 생성할 수 있으며, 주로 웹 애플리케이션에서 동적인 뷰를 생성하는 데 사용된다. 타임리프의 가장 큰 특징 중 하나는 natural templates 을 지원한다는 것으로, 애플리케이션이 실행되지 않는 상태에서도 HTML 파일을 웹 브라우저에서 직접 열어볼 수 있다. 이는 개발 과정을 보다 효율적으로 만들어준다. 타임리프의 주요 특징 네츄럴 템플릿: 타임리프 템플릿은 실행되지 않는 상태에서도 HTML 파일로서 자연스럽게 보여질 수 있어, 디자이너와 개발자 간의 협업을 용이하게 한다. 서버 사이드 렌더링..
![[Spring] 어노테이션 정리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxsunt%2FbtsE2Dr43zB%2FyfeRLp3rA0bBg5Vkb4eOE0%2Fimg.png)
@Component클래스를 스프링 빈으로 등록하기 위한 일반적인 스테레오타입 어노테이션. 스프링이 관리하는 컴포넌트임을 나타낸다. @Component 어노테이션은 @Repository, @Service, @Controller와 같은 더 구체적인 스테레오타입 어노테이션의 기반으로 작용한다.이들은 각각 데이터 접근 계층, 비즈니스 로직 계층, 프레젠테이션 계층의 클래스를 나타내는 데 사용되며, @Component의 특수한 형태로 볼 수 있다. 이 구체적인 어노테이션들을 사용함으로써, 개발자는 애플리케이션의 다양한 부분을 더 명확하게 구분할 수 있고, 스프링은 특정 역할을 가진 컴포넌트를 적절히 처리할 수 있다. @ComponentScan스프링이 @Component 어노테이션이 붙은 클래스를 찾아 빈으로 등록..

아래의 모든 명령어은 Homebrew가 설치되어있다고 가정한다. DBeaver 설치 터미널에서 아래의 명령어를 입력하면 특별한 오류가 나지 않는이상 설치는 완료된다. brew install --cask dbeaver-community 이후 앱을 실행하면 된다. Oracle(XE) Oracle XE Oracle Database Express Edition (Oracle XE)은 Oracle Corporation에서 제공하는 무료, 경량 버전의 Oracle 데이터베이스이다. 이 버전은 개발자, 교육용으로, 그리고 소규모 배포를 위해 설계되었다. Oracle XE는 기능적으로는 전체 Oracle 데이터베이스 시스템의 서브셋을 제공하지만, 많은 기본적인 기능과 툴을 포함하고 있어 데이터베이스 학습이나 개발, 테..
![[DBeaver] Public Key Retrieval is not allowed Public Key Retrieval is not allowed](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoJJk5%2FbtsFfeDFosf%2FnbyQzeKqHtuTpfJPE7G0Ck%2Fimg.png)
DBeaver 에서 MySQL을 연결하려고 하였으나 Public key retrieval is not allowed 오류가 발생하였다.이 오류는 데이터베이스 서버로부터 공개 키를 안전하게 검색하는 것이 기본적으로 허용되지 않을 때 발생하는데, 주로 MySQL 8.0 이상 버전에서 새로운 인증 방식을 사용할 때 나타난다고 한다. 해결 방법은 간단했다.이미 설정된 연결 목록에서 해당 연결을 우클릭하고 "Edit Connection"을 선택"Connection Settings" 창에서 "Driver Properties" 탭으로 이동여기서 allowPublicKeyRetrieval 속성을 찾아 값을 true로 설정모든 변경 사항을 적용한 후, "OK" 또는 "Apply" 버튼을 클릭하여 연결 설정을 저장 이제 ..
![[Spring MVC] 기본 기능 - HTTP 응답](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx6oSB%2FbtsE2BNEaEW%2FL1dEYCDhpp1e3f2sgVOcnk%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 -예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다. 뷰 템플릿 사용 -예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. HTTP 메시지 사용 -HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 정적 리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static , /public , /resources , /META-INF/resources ..
![[Spring MVC] 기본 기능 - HTTP 요청, 요청 파라미터](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvGMgo%2FbtsE6HGvFuD%2FjDwkUxigPtaIiIUnLRn6n0%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. HTTP 요청 어노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 지원한다. @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletResponse response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, @CookieValue(valu..
![[Spring MVC] 기본 기능 - 요청 매핑](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDd3Pt%2FbtsE0ha1tSb%2FGFAJsMTLgTD9foWgqprnMk%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. @RestController 특정 클래스를 RESTful 웹 서비스의 컨트롤러로 지정한다. 이 어노테이션을 사용한 클래스는 HTTP 요청을 처리하는 핸들러 메소드를 포함하며, 각 메소드는 특정 HTTP 요청(예: GET, POST, DELETE 등)에 매핑된다. @RestController는 @Controller 와 유사하지만, 차이점은 @RestController 로 지정된 컨트롤러의 메소드가 기본적으로 HTTP 응답 본문(Body)에 직접 데이터를 작성한다는 점이다.이는@ResponseBody 어노테이션을 모든 핸들러 메소드에 적용한 것과 같은 효과를 가진다. @Controller 는 반환 값이 String..
![[Spring] Logging](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFLIjp%2FbtsE7qYwHar%2F7je6jbaooiKyuUKGPxf9YK%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. SLF4J - http://www.slf4j.org Logback - http://logback.qos.ch 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이..