재고 시스템을 통해 동시성 문제를 알아보고, 이를 해결해보겠다. 동시성 문제란, 동일한 하나의 데이터에 2 이상의 스레드, 혹은 세션에서 가변 데이터를 동시에 제어할 때 나타는 문제로, 하나의 세션이 데이터를 수정 중일때, 다른 세션에서 수정 전의 데이터를 조회해
서론 스프링이 자바에서 가장 중요하게 가치를 두는 것은 객체지향 프로그래밍 언어라는 점. 스프링을 이해하기 위해서는 오브젝트의 생애주기(살아서 소멸까지 전과정)을 이해해야함. 더 나아가 오브젝트에 대한 관심은 더 나은 오브젝트 설계로 발전. 1장에서는 스프링은 무엇이고
이글을 적는 이유는 적어도 현시점(23.09.24) 기준으로 아래의 방식대로 해야 제대로 설치가 된다.내가 진짜 별의 별 블로그랑 문서를 뒤져보면서 설치하는데, 4일이나 애를 먹었다... 그 이유는 예전 글 + 키 변경 등등 다양한 이유로 인해 설치시 에러가 났다.아래
이 글을 적는 이유는 다른 사람들이 혹시나 SSE에 대해 처음 도입을 할때, 내가 했던 삽질을 안했으면 좋겠는 마음에 적는다.!🤯내가 이전부터 해오던 프로젝트는 대게 클라이언트가 요청을 보내면, 서버에서 응답을 전달하는 형태로 통신이 진행됐었다. 따라서 개발을 하는데
현재 진행중인 프로젝트에서 조회를 하는 부분에 대해서는 @Transactional 을 read-only 로 설정하여서 조금의 성능을 향상시켰었다. 하지만, 서비스에서 가장 많은 트래픽이 몰리는 서비스가 조회서비스이므로 매번 DB에서 조회해서 가져오는 행위는 불필요하다고
오늘은 막연히 알고 있던 동기와 비동기의 개념에 대해 정리해보고자 한다.사실 진행중인 프로젝트에서 멀티프로세싱, 멀티스레딩 등에 대한 고려를 하면서 동시에 동기와 비동기 개념에 대해 다시 공부중인데, 헷갈리는 점들이 좀 있어서 명확하게! 정리하려고 한다.동기: 요청한
AOP(Aspect-Oriented Programming)는 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것이다.Aspect-Oriented Programming를 해석하면 관점(관심) 지향 프
Rest Docs를 처음 접했기 때문에 무한 구글링과 rest docs 원서를 읽으면서 열심히(?) 테스트 코드를 바탕으로 API 명세서를 만들고 있었다.잘 만들던 중 모든 파라미터와 요청응답을 맞게 설정했음에도 불구하고 응답 data 부분이 null로 뜨는 에러를 만
Nginx는 경량 웹 서버이다.클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.Ngi
이전 글에서 main 브랜치로 push시 Github actions가 작동하여 jar 파일을 S3에 올리는 작업까지 진행했다.이번에는 CodeDeploy에게 S3의 jar 파일을 가져가서 담당한 배포그룹의 ec2에 배포하는 과정을 진행한다.CodeDeploy는 Sour
요즘 날씨가 너무 덥다... 그래서 유독 연구실에서 시간을 많이 보내는것 같다. 현재 프로젝트를 3개 진행중인데, 해당 프로젝트에서 무중단 배포를 진행해보고 싶어서 기술 경험하고, 정리해보기 위헤 해당 글을 작성한다. 우선 나는 아래의 블로그를 보고 무중단 배포를 경
Access Token 만을 통한 인증 방식의 문제는 제 3자에게 탈취당할 경우 보안에 취약하다는 점이다.Access Token은 발급된 이후, 서버에 저장되지 않고 토큰 자체로 검증을 하며 사용자 권한을 인증하기 떄문에, Access Token이 탈취되면 토큰이 만료
springboot+mysql+docker 멀티 컨테이너 환경 구성 + ec2에서 실행하기\[2]이전 글을 보고오면java.sql.SQLException: Incorrect string value: '\\xEC\\x82\\xB0\\xEC\\x97\\x85...' for
springboot+mysql+docker 멀티 컨테이너 환경 구성[1] 이전 글에 이어서 작성하도록 하겠다. 우선 이전글대로 따라할 경우 localhost에서 작동이 되는 모습을 볼 수 있었다. 이번 글에서는 ec2 ubuntu환경에 배포를 하고, 퍼블릭으로 접근하는
교내에서 프로젝트를 구성하고, 배포하기 위해서 도커를 이용하던 중 3일이라는 시간을 투자하게 만든 난관에 대해 설명하려고 한다. 1. application.yml 정말 정말 yml 파일을 잘 설정하자. 필자는 로컬에서 설정한 yml을 그대로 사용한 상태로 도커 빌드
프로젝트 중 아래와 같이 컨트롤러를 작성하고 run을 하였는데 java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 위와 같은 에러가 발생하였다. 해당 에러는 하나의 Url을 여러개의 컨트로러에 매핑시켰기 때문에 발생하는 것이다. 즉, url로 들어오는 것은 dele...
프로젝트 진행중 entity를 생성하고, hibernate의 ddl 옵션을 이용하여 테이블을 생성해보았다.그러나 (GenerationTarget encountered exception accepting command : Error executing DDL), (org.
교내 프로젝트로 학사 시스템을 구성하던 중 위와 같이 user 엔티티를 만들고 있었다.JPA를 이용하여 find 기능을 추가하기 위해 위와 같이 코드를 작성하고 application 을 run 했다.이렇게 실행을 하면Failed to create query for me