본문 바로가기

Backend/Spring7

[Spring] Swagger 스프링 3.x버전 적용 접속 방법 http://localhost:8080/swagger-ui/index.html config에 SwaggerConfig 생성 SwaggerConfig import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityScheme; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configurat.. 2024. 4. 15.
동기,비동기 처리 필요성 및 소켓서버 동기와 비동기 소켓 서버는 네트워크 프로그래밍에서 중요한 개념입니다. 동기 소켓 서버는 클라이언트의 요청을 순차적으로 처리합니다. 한 요청이 완료될 때까지 다음 요청은 대기 상태에 머무릅니다. 반면, 비동기 소켓 서버는 여러 요청을 동시에 처리할 수 있습니다. 이는 서버의 효율성과 성능을 크게 향상시킵니다. 예를 들어, 동기 소켓 서버는 은행 창구와 비슷하다고 볼 수 있습니다. 한 사람이 창구에 서서 업무를 처리하고 나가면, 다음 사람이 창구에 서서 업무를 처리합니다. 이런 방식은 간단하고 이해하기 쉽지만, 한 사람이 업무를 처리하는 동안 다른 사람들은 대기해야하므로 효율성이 떨어질 수 있습니다. 반면에 비동기 소켓 서버는 슈퍼마켓의 계산대와 비슷하다고 볼 수 있습니다. 여러 사람들이 동시에 계산대에 서.. 2024. 3. 23.
[Spring] 배치 스케줄러-작성중 배치 프로세싱 개요 배치 프로세싱은 주기적으로 발생하거나 반복적으로 처리해야 하는 작업을 자동화하기 위한 도구입니다. 이를 위해 스프링 배치와 쿼츠 스케줄러가 주로 사용됩니다. 주요 도구 스프링 배치 (Spring Batch): 스프링 프레임워크의 핵심 요소를 활용하여 배치 프로세싱을 구현합니다. 쿼츠 스케줄러 (Quartz Scheduler): 오픈소스 기반의 스케줄러로, 주기적으로 작업을 실행할 수 있습니다. Cron 표현식 스케줄러를 설정할 때 사용하는 Cron 표현식은 다음과 같습니다. 초 분 시 일 월 요일 연도 리눅스 / 유닉스 크론 표현식 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(1-7) 연도(1970-2099) 쿼츠 크론 표현식 초(0-59) 분(0-59) 시간(0-.. 2024. 3. 23.
[Spring] PostConstruct를 사용한 테스트 환경 구축 간단한 웹 프로젝트를 진행하면서 테스트할 때마다 데이터베이스에 데이터를 추가해야 하는 번거로움을 겪었습니다. 이를 해결하기 위해 TestData 클래스를 만들어 스프링 빈으로 등록하고, init() 메서드에 @PostConstruct를 적용하여 스프링 컨테이너에 빈이 등록될 때 자동으로 테스트 데이터를 DB에 추가하도록 하였습니다. 그런데 Member, MemberService, MemberRepository 클래스를 구현한 결과를 살펴보니 MemberService에는 @Transactional을 걸어주었지만, MemberRepository에는 @Transactional을 걸어주지 않았습니다. TestData 클래스에서는 MemberService와 MemberRepository를 모두 주입받아서 테스트용.. 2024. 3. 23.
[Spring] JPA 일반적으로 서비스가 실행되면 데이터는 데이터베이스에 최종적으로 저장됩니다. 데이터베이스 모델 중에서도 관계형 데이터베이스는 일반적으로 사용되며, 주로 키(pk)를 사용하여 값을 조회합니다. 자바 개발 환경에서는 JDBC API를 사용하여 데이터베이스와 직접적으로 연결합니다. JDBC 예제 코드를 살펴보면 connection을 생성하고 SQL 쿼리를 전송하여 데이터를 주고받은 후, connection을 닫는 형태를 가지고 있습니다. 이러한 반복적인 로직을 개발자가 매번 작성하는 것은 비효율적입니다. 이러한 반복을 줄이기 위해 SQL Mapper, ORM 등의 기술이 등장했는데, 오늘은 ORM의 개념을 담은 JPA에 대해 살펴보겠습니다. JPA는 Java Persistence API의 약자로, 자바 진영의 .. 2024. 3. 23.
[Spring/JWT] Access Token 과 Refresh Token 보호되어 있는 글 입니다. 2023. 11. 14.
[스프링] 스프링 https://start.spring.io gradle java 3.1.1 group→ 기업도메인 artifact→이름 packaging jar java 11 add spring web thymeleaf(html →변환시켜주는 템플릿엔진) spring boot 2.~ →java 11 spring boot 3.~ →java 17 gen zip파일 다운됨 홈에서 풀기 인텔리제이에서 build.gradle열기 gradle→버전설정하고 라이브러리 땡겨옴 gitignore →git 세팅값 gradlew→ 그레드로 빌드할때 gradley.bat 메인메서드 실행 2023-06-26 16:29:07.862 INFO 8081 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServ.. 2023. 7. 5.