스프링

· Spring
개요프로젝트를 진행하던 도중 실수로 유저가 동시에 버튼을 두 번 연속으로 누를 경우에 회원가입이 두번 발생하는 현상이 있다는 것을 알게되었다.이런 문제를 해결하는 방법을 찾아보던 중 동시성 제어를 해서 두 개의 스레드가 동시에 임계 구역으로 진행하지 못하도록 세마포 역할을 하는 무언가가 있어야한다는 것을 알게되었고 해당 내용을 테스트 해보았습니다.자바의 동시성 제어여러 스레드가 하나의 자원을 공유해서 레이스 컨디션이 발생하는 것을 방지해야 합니다. 자바에서는 synchronized 키워드를 통해서 메서드에 대한 동시성을 제어할 수 있었습니다.📌 synchronized 키워드 Essential Java Classes > Concurrency)" data-og-descri..
· Spring
개요 프로젝트를 진행하던 도중 Spring JPA를 사용해서 데이터베이스 테이블을 일대다 관계를 만들어야 했지만 방법을 몰라 알아보고 만든 것을 작성하겠다. 먼저 Spring JPA는 자바에서 사용하는 객체의 개념과 데이터베이스에서 사용하는 테이블간의 다른 차이점을 해소시켜서 매핑해주는 API이다. 즉, JPA가 하고자하는 방향은 객체지향적인 방법으로 데이터베이스를 만드는 것이다. 따라서 데이터베이스 테이블의 관계도 객체지향적인 개념으로 접근해야 했지만 이해하기가 정말 어려웠다. 연관관계 단방향과 양방향 먼저 JPA에서 테이블의 연관관계를 만들어주는 방법은 단방향과 양방향으로 나뉜다. 단방향 class A{ private B b; } class B{ private int number; } 단방향 : 객체..
· 웹
원인 서비스 계층의 테스트를 작성하면서 assertJ로 테스트를 작성했다. Service계층은 DAO에 종속되어 메소드를 사용하기 때문에 DAO를 통해서 새로 만들어진 객체를 삭제해주어야 했고 DAO를 통해서 작업을 수행한다. 따라서 Service의 단위 테스트는 DAO에 종속되어 있었고 DAO 빈을 가져와서 일일히 값을 삭제하면서 테스트를 진행했다. 이런 불편한 점을 제거하고 단위 테스트가 DAO에 종속되지 않도록 만들기 위해서 Mockito 프레임워크를 적용해서 DAO에 대한 Mock 객체를 만들어 사용했다. @SpringBootTest public class AuthServiceTest { private UserDTO user1; private UserDTO user2; private UserDTO..
창e
'스프링' 태그의 글 목록