728x90
반응형

0+ 스프링/0 + SpringBoot(스프링부트) 7

[스프링] 동시성 문제 해결(ThreadLocal)

[Spring] 동시성 문제 해결(ThreadLocal) 스프링 핵심 원리 - 고급편 - 인프런 | 강의 이 글은 인프런에서 스프링 핵심 원리 - 고급편 강의를 참고하여 작성했습니다. 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 🏃‍♂️오픈 런 이라는 말을 들어보신적 있으신가요? “매장문이 열리자마다 달려가서 구매함” 을 의미합니다. 이렇게 되면 매장은 1개인데 사람은 여러명이 동시에 들어가게 되니 매장이 마비가 됩니다. 웹 서버에서도 마찬가지 입니다. 매장을 자원, 사람을 스레드라고 비유하면 하나의 자원에 여러 스레드가 동시에 접속하는 현상 입..

[스프링] HTTP Only와 Secure Cookie

HTTP Only와 Secure Cookie Web HTTP Only와 Secure Cookie 이해하기 SpringBoot에서 HttpOnly 쿠키방식을 이용한 refreshToken 발급 SpringBoot에서 HttpOnly 쿠키방식을 이용한 refreshToken 발급 jwt의 access_token과 refresh_token를 구현하는 과정에서 프로젝트 프론트 팀원분이 refresh_token은 쿠키에 담아서 전송해달라는 요청이 들어왔다. 과정은 대략 아래와 같다. 전송방식은 Http Only 방식으로 dncjf64.tistory.com [Web] HTTP Only와 Secure Cookie 이해하기 Cookie에 대한 이해 쿠키는 ASP.NET, PHP와 같은 특정 기술영역에 국한된 것도 아니..

[JPA 에러 해결] Named parameter not bound: ~

[JPA] Named parameter not bound: ~ 작성한 쿼리를 테스트 하기위해 테스트 코드 작성한 것을 실행해보았다. //쿼리 public interface FaultJpaRepository extends JpaRepository { @Query(value = "select f from Fault f" + " where f.resolveTime is null" + " and (f.type =: type1 or f.type =: type2)" + " order by f.writeTime desc") List findBmsWarning(@Param("type1") int type1, @Param("type2") int type2); } @Test void findBmsWarningQueryTe..

[JPA 에러 해결] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~ " 오류 해결

문제 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~" 신규 프로젝트를 진행하던 도중 위와 같은 오류가 발생했다.. 😮 스프링 버전 문제인가 생각해서 버전을 변경해봐도 같은 오류가 발생했다. 원인 분석 DB 예약어? 무엇인가에 홀린듯이 계속 검색을 해봤지만, Entity에 DB 예약어를 사용한 경우에 발생한 경우가 대부분이었다. 정말로 예약어 문제인지 확인하기 위해서 간단하게 Entity를 새롭게 만들어봤다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long..

JPA 복합키 사용방법(@IdClass, @EmbeddedId)

실무에서 JPA를 이용하여 개발하던 중에 이와 같은 경고 메시지를 받게 되었다..😫 경고이니 처음에는 그냥 개발했는데,, 그래도 이건 아니다 싶어 알아보았다. 우선 JPA에서 PK가 단일 키 일때는 @Id를 이용하여 쉽게 Entity를 구현했다. 하지만, 복합키인 경우가 있기 때문에 아래와 같은 설정을 해줘야한다. 복합키를 구성하기 위해서는 필수 조건이 있다. 1. @EmbeddedId 또는 @IdClass 2. public의 no-args constructor 3. serializable을 상속 받기 4. equals(), hashCode() Override 여기서는 @IdClass를 이용하여 구현한 예제를 만들어 보겠습니다. (@EmbeddedId를 이용한 예시는 아래의 블로그 링크로 방문해주세요) ..

Websocket Server headers 추가 방법(javax.websocket, spring boot)

웹소켓 프로젝트 중 웹소켓 헤더를 수정할 일이 발생했다. 검색 중에 한국어도 정리된 내용이없어서 이에 대한 내용을 정리하려고 한다. 먼저 현재 구현된 웹소켓 코드부터 보자..! 1. configuration Gradle에 의존성을 추가한다. (매우매우매우매우 중요!!!!!!!!!!!!!!!!) // https://mvnrepository.com/artifact/javax.websocket/javax.websocket-api compileOnly group: 'javax.websocket', name: 'javax.websocket-api' @Configuration public class ServerConfigurator extends ServerEndpointConfig.Configurator impl..

JPA 다중 DataSource 설정

스프링 부트를 이용하면 application.properties 또는 application.yml에 설정하여 db에 쉽게 연결 할 수 있다. 하지만 n개의 db에 접속하기 위해서는 application.properties, application.yml에 설정한 것에 따라 bean에 직접 등록해야한다. 글쓴이는 yml을 이용하여 2개의 mariadb에 연결하는것을 포스팅 하겠습니다. 1. application.yml 설정 spring: jpa: hibernate: ddl-auto: validate naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl properties: hibernate: #..

728x90
반응형