본문 바로가기
728x90

springboot40

[Spring] 동시성 이슈 해결 방법 (3) 지난번 포스팅과 코드를 이어간다. https://devhooney.tistory.com/109 [Spring] 동시성 이슈 해결 방법 (2) 지난번 포스팅과 코드를 이어간다. https://devhooney.tistory.com/108 [Spring] 동시성 이슈 해결 방법 (1) 간단한 재고 시스템으로 알아보는 동시성 이슈 Stock @Entity public class Stock { @Id @GeneratedVal.. devhooney.tistory.com DB를 활용하여 데이터 정합성을 맞추는 여러가지 방법을 알아보려한다. Mysql(mariaDB)를 활용한 방법은 3가지가 있다. Pessimistic Lock (exclusive lock) Optimistic Lock Named Lock - Pes.. 2022. 9. 22.
[Spring] 동시성 이슈 해결 방법 (2) 지난번 포스팅과 코드를 이어간다. https://devhooney.tistory.com/108 [Spring] 동시성 이슈 해결 방법 (1) 간단한 재고 시스템으로 알아보는 동시성 이슈 Stock @Entity public class Stock { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long productId; private Long quantity;.. devhooney.tistory.com 지난번에 race condition을 방지하기 위해서 데이터에 하나의 쓰레드만 접근하도록 하는것이 방법이었다. 이외에도 다른 방법들이 있는데, 하나씩 정리해보려고 한다. 자바에서 지원하는 방법으로 문제를 해.. 2022. 9. 21.
[Spring] 동시성 이슈 해결 방법 (1) 간단한 재고 시스템으로 알아보는 동시성 이슈 Stock @Entity public class Stock { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long productId; private Long quantity; @Version private Long version; public Stock(){ } public Stock(Long productId, Long quantity) { this.productId = productId; this.quantity = quantity; } public Long getQuantity() { return quantity; } public void decrease.. 2022. 9. 20.
[Spring] 스프링시큐리티 OAuth2.0 적용해보기(Naver) 이번엔 네이버 로그인을 작업해보려 한다. 지난 포스팅을 참고하고, 이어서 작업하려 한다. https://devhooney.tistory.com/101 [Spring] 스프링시큐리티 OAuth2.0 적용해보기(Facebook) 이번엔 페이스북 로그인을 작업해보려한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/100 [Spring] 스프링시큐리티 OAuth2.0 적용해보기(Google) 구글, 페이스북, 네 devhooney.tistory.com 1. 네이버 개발자 센터 - 상단 메뉴의 Application에서 애플리케이션 등록 클릭하여 이름을 작성하고 사용 API selectbox에서 네이버 로그인 선택 - checkbox가 나오면 회원이름,.. 2022. 9. 2.
[Spring] 스프링시큐리티 OAuth2.0 적용해보기(Facebook) 이번엔 페이스북 로그인을 작업해보려한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/100 [Spring] 스프링시큐리티 OAuth2.0 적용해보기(Google) 구글, 페이스북, 네이버 로그인을 적용해보려고 한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/99 [Spring] 스프링시큐리티 예제 이전에 작성한 포스팅은 단순 devhooney.tistory.com 1. 페이스북 개발자 사이트 - 사이트에 접속해서 내 앱 > 앱 만들기 클릭 - 소비자 선택 - 표시 이름 작성, 선택된 비즈니스 관리자 계정 없음 선택 후 앱 만들기 - 만들어진 앱 선택 후 Facebook 로그인 빠.. 2022. 9. 1.
[Spring] Message 적용해보기 개발하다보면 한 화면을 여러 언어로 보여줘야 하는 경우가 있다. 언어마다 같은 HTML을 작성하지 않고, 스프링을 이용하여 편리하게 구현해봤다. - 먼저 Bean 등록을 해준다. LocaleConfig라는 파일을 생성하여 작성했다. - @Value값 안에 들어가는 내용은 application.properties에 작성했다. - basename에는 앞으로 여러 언어를 같은 코드로 관리하기 위한 파일인 messages.properties파일의 경로를 넣어주었다. - 나같은 경우 messages/messages를 넣었다. - encoding은 UTF-8을 넣어주었다. - 스프링 부트의 경우 Bean등록을 안해도 된다는 글들이 많았는데, 안해주니 나는 에러가 발생했다.(해주면 이상 없음) @Bean public.. 2022. 8. 21.
[Spring] Validation 적용해보기 프론트에서만 유효성 검사를 했었는데, 언제든지 우회할 수 있다고 듣고, 서버쪽에서도 유효성 검사하는 로직을 추가하려했다. 근데 스프링에서는 validation이라는 프레임워크로 편하게 할 수 있었다. 그 과정을 남기려고 한다. - 라이브러리 설치(build.gradle) implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.2' - 먼저 회원가입을 한다고 하면 User 엔티티가 필요하다. @Entity @Getter @NoArgsConstructor public class User { @Id @GeneratedValue(strategy = GenerationType.IDEN.. 2022. 8. 18.
[Spring] 스웨거(Swagger) 라이브러리 기존에는 api 테스트를 위해서 포스트맨을 사용했는데, 스웨거는 서버로 요청되는 api 리스트를 html 화면으로 문서화해서 테스트할 수 있는 라이브러리이다. @RestController를 읽어서 api를 분석해서html문서로 정리해준다. 아주 편리해보인다. - dependency에 아래 두 가지를 넣어준다. implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' - 나는 gradle을 사용 중이기 때문에 buid.gradle 파일 안에 넣어줬다. - config.. 2022. 8. 17.
[Spring] 스프링 시큐리티 (3) 스프링 시큐리티가 변경되었다. - 버전 5.7.0-M2 버전부터 변경되었고, SecurityFilterChain을 빈으로 등록해서 사용해야 한다. - 아래 코드는 카카오 로그인 구현 중에 작성한 코드다. private final CustomOauth2UserService customOauth2UserService; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() // enable h2-console .headers() .frameOptions() .disable() .and() .authorizeRequests() .antMatchers("/api/**").perm.. 2022. 8. 12.
728x90