본문 바로가기

STUDY/Spring

(79)
Spring Boot | Kafka를 이용한 채팅 (2) Kafka 연동 설정 1. Kafka관련 설정하기 1-0. constant작성 ✔️KAFKA_TOPIC - 생성한 토픽의 이름. 아래에서 토픽을 생성할 것임 (동일한 이름으로 생성하기) ✔️GROUP_ID - consumer를 식별할 수 있는 그룹 ✔️KAFKA_BROKER - Kafka 클러스터에 연결하기 위한 호스트:포트 값 public class KafkaConstants { public static final String KAFKA_TOPIC = "kafka-chat"; public static final String GROUP_ID = "foo"; public static final String KAFKA_BROKER = "localhost:9092"; } 토픽 생성 kafka-topics --create --zoo..
Spring Boot | Kafka를 이용한 채팅 (1) Kafka설치 및 프로젝트 생성 Realtime Chat app using Kafka, SpringBoot, ReactJS, and WebSockets In this tutorial, we would be building a simple real-time chat application that demonstrates how to u... dev.to 0. Kafka, Zookeeper 설치 아래 링크에서 Binary downloads 중 Scala 2.12에 해당하는 압축파일 다운로드 Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 혹은 homebrew를 이용해 설치(Mac OS) brew install zookeeper brew install ..
Spring Boot | S3파일 업로드 후 CloudFront SignedURL 생성하기 Spring Boot | S3 파일 업로드 1. gradle 설정 프로젝트 생성 후 AWS 의존성을 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-.. gaemi606.tistory.com S3와 CloudFront Amazon Simple Storage Service(Amazon S3)? 인터넷 스토리지 서비스(저장소) = 데이터(사진, 동영상, 문서 등)를 저장해두는 곳 = 웹에서 파일에 접근 할 수 있음 저장 공간을 무제한으로 제공하고 고가용성 gaemi606.tistory.co..
Spring Boot | S3 파일 업로드 1. gradle 설정 프로젝트 생성 후 AWS 의존성을 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // AWS s3 // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-aws compile group: 'org.sprin..
Spring Boot | 스케쥴러(Scheduler) 사용해보기 Scheduled Task 작성하기 @Scheduled annotation에 해당 메서드가 언제 실행될지를 정의 @Scheduled annotation 속성값 fixedRate : 이전 수행이 시작된 시점을 기준으로 함 (수행 시작 후 지정된 시간 이후에 실행) fixedDelay : 이전 수행이 종료된 시점을 기준으로 함 (수행 종료 후 지정된 시간 이후에 실행) cron : 초(0-59) - 분(0-59) - 시간(0-23) - 일(1-31) - 월(1-12) - 요일(0-7) 순으로 지정 zone : 시간대를 설정할 수 있음 설정하지 않으면 서버 시간을 기준으로 함 @Component public class Scheduler { private static final Logger logger = Lo..
Spring Boot | 프로젝트 생성, 실행하기 1. 스프링 이니셜라이저로 프로젝트 생성하기 - start.spring.io/ 스프링 이니셜라이저? 스프링 부트 프로젝트를 만들어주는 스프링에서 운영하는 사이트 라이브러리(Dependencies)는 아래와 같이 Spring Web, Thymeleaf를 추가한다. Project는 Gradle로 선택 Language는 java Spring Boot는 스프링 부트 버전을 선택하는 부분인데, SNAPSHOT이나 M1같은게 붙은 것 말고 정식 릴리즈 버전을 선택하는 것이 좋음 Project Metadata의 Group은 보통 기업명/기업도메인명을 적는 곳, Artifact는 빌드되어 나올 때 결과물로 프로젝트명을 적는다. Name, Description, Package name은 자동 생성되는 값을 유지! 2. ..
SpringBoot | java.lang.IllegalArgumentException 배열로 된 파라미터를 보낼 때 이런 에러가 발생했다. 톰캣의 특정 버전이 파라미터의 키값에 []같은 특수문자가 들어갈 경우 발생하는 에러라고 함. 이런식으로 RequestParam의 value값에 []를 넣어 배열로 받았는데, 이게 localhost에서는 문제없이 돌아갔었음.. 아무튼 해결은 []이 괄호를 삭제해주었더니.. 잘 된다...
Spring Boot | 스프링 시큐리티 X-Frame-Option 설정 클라이언트 측에서 서버의 서드파티 모듈을 아이프레임으로 띄우려고 할 때 X-Frame-Option 어쩌구 에러 등장 스프링 시큐리티 설정을 수정해주면 된다. sameOrigin이 가장 안전하겠지만 클라이언트와 서버 도메인이 달라서 부득이하게 disable한 후 허용할 url을 등록해주었다. @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.headers().frameOptions().disable() .addHeaderWriter(new StaticHeadersWriter..