본문 바로가기

분류 전체보기63

[Thymleaf] 타임리프 - 기본 :: 주석, 블록, 자바스크립트 인라인 인프런 강의 내용 정리주석타임리프 파서 주석 주석 */--> - 타임리프 랜더링 시 주석 부분을 제외하고 렌더링한다.타임리프 프로토타입 주석 주석 /*/--> - HTML 파일로 열면 주석처리가 되지만, 타임리프 렌더링할 경우 해당 내용이 보이게된다.더보기java/hello/thymeleaf/basic/BasicController.javapackage hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bi.. 2024. 11. 18.
[Thymleaf] 타임리프 - 기본 :: 속성 값 설정, 반복, 조건부 인프런 강의 내용 정리속성 값 설정th:* :: 속성을 지정하면 타임리프는 기존 속성을 th:*로 지정한 속성으로 대체한다. 기존 속성이 없다면 새로 만든다.   ex) -> 타임리프 랜더링 후 속성 추가- th:attrappend : 속성 값의 뒤에 값을 추가한다.  ex) th:attrappend="class=' large'" (추가하려는 속성에 이미 데이터가 있을 경우 이어붙일 때 공백을 줘야함)- th:attrprepend : 속성 값의 앞에 값을 추가한다. ex) th:attrprepend="class='large '" (뒤에 속성 값이 추가될 수 있으니 공백을 주면 좋음)- th:classappend : class 속성에 자연스럽게 추가한다. ex) th:classappend="large"c.. 2024. 11. 14.
[Thymleaf] 타임리프 - 기본 :: 기본 객체, 유틸리티 객체, 링크, 연산 인프런 강의 내용 정리기본 객체${#locale}스프링 3.0 이전 버전에서만 사용가능한 기본 객체 - ${#request}, ${#response}, ${#session}, ${#servletContext}편의 객체 - HTTP 요청 파라미터 접근: param  ex) ${param.paramData} - HTTP 세션 접근 : session  ex) ${session.sessionData} - 스프링 빈 접근: @  ex) ${@helloBean.hello('Spring!')}더보기java/hello/thymeleaf/basic/BasicController.javapackage hello.thymeleaf.basic;import jakarta.servlet.http.HttpServletRequest;.. 2024. 11. 12.
[Thymleaf] 타임리프 - 기본 :: 텍스트, 변수, 리터럴 인프런 강의 내용 정리텍스트th:text - HTML 태그 안에 속성을 추가해서 텍스트를 출력한다.ex) [[...]]- HTML 태그 속성이 아닌 HTML 콘텐츠 영역 안에서 텍스트를 출력할 경우 사용한다.ex) [[${data}]]더보기java/hello/thymeleaf/basic/BasicController.javapackage hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotati.. 2024. 11. 11.
[Thymleaf] 타임리프 - 기본 :: 특징, 사용 선언, 기본 표현식 인프런 강의 내용 정리타임리프 특징서버 사이드 HTML 랜더링 (SSR) - 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용네츄럴 템플릿 - 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용 가능스프링 통합 지원 - 스프링의 다양한 기능 사용 가능 타임리프 사용 선언 기본 표현식간단한 표현 - 변수 표현식: ${...} -  선택 변수 표현식: *{...}  -   메시지 표현식: #{...}  -   링크 URL 표현식: @{...}  -   조각 표현식: ~{...}리터럴 -   텍스트: 'one text', 'Another one!', …  -   숫자: 0, 34, 3.0, 12.3, …  -   불린: true, false  -   널: null  -   리터럴 토큰: one, s.. 2024. 11. 11.
[Kafka] 아파치 카프카 기본 개념 :: 카프카 커넥트 - 싱크 커넥터 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리싱크 커넥터는 토픽의 데이터를 타깃 애플리케이션 또는 타깃 파일로 저장하는 역할을 한다.싱크 커넥터를 만들 때는 connect-api 라이브러리를 추가해야 한다. connect-api 라이브러리에는 커넥터를 개발하기 위한 클래스들이 포함되어 있다. 소스 커넥터를 만들 때 필요한 클래스는 2개다. 첫 번째는 SinkConnector이고 두번째는 SinkTask이다. SinkConnector는 태스크를 실행하기 전에 사용자로부터 입력받은 설정값을 초기화하고 초기화하고 어떤 태스크 클래스를 사용할 것인지 정의하는 데에 사용한다. SinkConnector에는 실질적인 데이터 처리 로직이 들어가지 않는다.SinkTask가 커넥트에서 컨슈머 역할.. 2024. 11. 6.
[Kafka] 아파치 카프카 기본 개념 :: 카프카 커넥트 - 소스 커넥터 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리소스 커넥터는 소스 애플리케이션 또는 소스 파일로부터 데이터를 가져와 토픽으로 넣는 역할을 한다.소스 커넥터를 만들 때는 connect-api 라이브러리를 추가해야 한다.connect-api 라이브러리에는 커넥터를 개발하기 위한 클래스들이 포함되어 있다.소스 커넥터를 만들 때 필요한 클래스는 2개다. 첫 번째는 SourceConnector이고 두번째는 SourceTask이다. SourceConnector는 태스크를 실행하기 전 커넥터 설정파일을 초기화하고 어떤 태스크 클래스를 사용할 것인지 정의하는 데에 사용한다. 그렇기 때문에 SourceConnector에는 실질적인 데이터를 다루는 부분이 들어가지 않는다.SourceTask가 실제로.. 2024. 11. 5.
[Kafka] 아파치 카프카 기본 개념 :: 카프카 커넥트 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리카프카 커넥트(kafka connect)는 카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다.커넥트는 특정한 작업 형태를 템플릿으로 만들어놓은 커넥터(connector)를 실행함으로써 반복 작업을 줄일 수 있다.커넥터는 각 커넥터가 가진 고유한 설정값을 입력받아서 데이터를 처리한다. 예를 들어, 파일의 데이터를 토픽으로 보내는 커넥터가 있다면 파일이 존재하는 디렉토리 위치, 파일 이름을 설정해야 한다.커넥터는 프로듀서 역할을 하는 '소스 커넥터(Source Connector)'와 컨슈머 역할을 하는 '싱크 커넥터(Sink Connector)' 2가지로 나뉜.. 2024. 11. 1.
[Kafka] 아파치 카프카 기본 개념 :: 카프카 스트림즈 - 스트림즈DSL 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리 스트림즈 DSL에는 레코드의 흐름을 추상화한 3가지 개념인 KStream, KTable, GolbalKTable이 있다.이 3가지 개념은 컨슈머, 프로듀셔, 프로세서 API에서는 사용되지 않고 스트림즈DSL에서만 사용되는 개념이다.KStreamKStream은 레코드의 흐름을 표현한 것으로 메세지 키와 메세지 값으로 구성되어 있다.KStream으로 데이터를 조회하면 토픽에 존재하는(또는 KStream에 존재하는) 모든 레코드가 출력된다.KStream은 컨슈머로 토픽을 구독하는 것과 동일한 선상에서 사용하는 것이라고 볼 수 있다.KTableKTable은 KStream과 다르게 메세지 키를 기준으로 묶어서 사용한다.KStream은 토픽의 .. 2024. 10. 22.
[Kafka] 아파치 카프카 기본 개념 :: 카프카 스트림즈 아파치 카프카 애플리케이션 프로그래밍 with 자바 책 공부 내용 정리카프카 스트림즈는 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리다.카프카 스트림 데이터 처리를 위해 다양한 오픈소스 애플리케이션이 존재하지만, 스트림즈는 카프카에서 공식적으로 지원하는 라이브러리다. 자바 기반 스트림즈 애플리케이션은 카프카 클러스타와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다.보통의 빅데이터 처리에 필수적이라고 판단되었던 분산 시스템이나 스케줄링 프로그램들은 스트림즈를 운영하는 데에 불필요하다. 자바 라이브러리로 구현하는 스트림즈 애플리케이션은 JVM 위에서 하나의 프로세스로 실행되기 때문이다.스트림즈 애플리케이션은 내부.. 2024. 10. 8.