스프링부트 6

[자동매매, SpringBoot] 3. 매도, 매수

2024.05.11 - [프로젝트/SpringBoot 업비트 자동매매 프로젝트] - [자동매매, SpringBoot] 2. 계좌 조회 이전 글에서 계좌 조회 기능을 만들었고, 매도 매수 기능을 추가 할 것이다. 업비트 개발자센터에서 API Reference를 보면  https://api.upbit.com/v1/orders 로 POST 요청을 보내 매도, 매수요청을 할 수 있고 Request Parameter 중 side 파라미터로 매수/매도 를 구분 한다. 나는 직관적으로 매수 / 매도 함수를 나눠서 만들것이다. 1. Util Class매수 / 매도 요청을 보낼 때 필요한 Jwt Token에는 클레임에 query_hash, query_hash_alg 를 포함해야 한다. 기존에 만든 Util Class에 ..

[Spring] Spring Security 5.7.0 이상 Config, desprecated

Spring Boot 3.0 이상 부터는 Spring Security 6.0 이상 버전이 적용된다. 이 전 버전들고 동일하게 SecurityConfig를 작성하고 나니 desprecated 된 (더 이상 사용하지 않는)함수들이 많아서 기록 하고자 함 extends WebSecurtyConfigurerAdapter -> SecurityFilterChain @Bean 등록 람다식 사용 EnableGlobalMethodSecurity -> EnableMethodSecurity authorizeRequests -> authorizeHttpRequests access("hasAnyRole('ROLE_ADMIN', 'ROLE_MANAGER')") -> .hasAnyRole("ADMIN", "MANAGER") any..

[Spring] DTO, MultiPartFile 동시에 요청하기

User의 프로필을 수정하는 기능을 만들기 위해 UserUpdateDto 를 만들었다. 업데이트 내용에는 이름, 소개 글, 프로필 이미지가 포함 되는데 아래와 같이 RequestBody로 String인 username, profileText, MultipartFile인 image를 JSON타입으로 같이 받을 수 없었다. class UserUpdateDto{ private String username; private String profileText; private MultipartFile image; } 그래서 DTO에서 MultipartFile을 제외 시키고 class UserUpdateDto{ private String username; private String profileText; } Reque..

[Spring] devtools로 서버 재 시작 없이 resource(html, css, js) 반영하기, Automatic Restart

개발을 하다보면 html, css, js 을 자주 수정 할 일이 생기는데 devtools를 이용하면 서버를 재 시작하지 않고 변경내용을 반영 할 수 있다. devtools는 크게 5가지 기능을 제공하는데, 그 중 Automatic Restart를 이용하는 방법이다. Automatic Restart Property Defaults Live Reload Global Settings Remote Applications Automatic Restart (서버 재시작) classpath에 속해있는 파일이 수정되었는지 감지하고 자동으로 재시작을 해준다. 소스를 수정하고 재컴파일하면 서버가 실행중이어도 변경된 값이 반영 된다. 사용방법은 devtools 의존성 추가하면 끝이다. 의존성 추가 (gradle 기준) im..

[Spring] 패키지 구조 - 계층형/도메인형

Spring 패키지 구조는 계층형 / 도메인형 으로 나눌 수 있습니다. 계층형 구조 계층형으로 디렉터리를 구성합니다. - controller, service, repository, domain, exception, dao ... 등 장점 구조 파악이 빠르다 단점 디렉토리에 클래스들이 너무 많이 모인다. 도메인형 구조 도메인 기준으로 디렉터리를 구성합니다. - order, member, item ... 등 장점 관련 코드들이 응집해 있다. 단점 구조 파악이 어렵다.

[Spring] 빈 생명주기(Bean LifeCycle) 콜백 개념 및 방식

애플리케이션 시작시점 및 종료시점에 작업이 필요한 경우가 있습니다. ex) 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결 ex) 종료 시점에 연결 종료 스프링을 통해 초기화 작업 및 종료작업을 어떻게 진행하는지 알아보겠습니다. 스프링 빈의 생명주기 스프링 빈은 다음과 같은 생명주기를 가집니다. 객체생성 -> 의존관계 주입 스프링 빈은 객체를 생성하고 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료 되는데 개발자가 의존관계 주입이 끝난 시점을 어떻게 알 수 있을까요? 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 스프링은 의존..