Spring 3

[개발일지] webp 확장자를 통한 이미지 제공 최적화 작업

공식 홈페이지 개발 중 프론트엔드에서 이미지를 띄우는 데 시간이 너무 오래 걸린다는 문제점을 확인했다. 이미지의 해상도가 너무 높아, 이미지의 크기가 큰 것이 문제였다.이렇게 큰 크기의 이미지가 동시에 8개가 제공되니, UX가 낮아질 것이 분명했고 대책을 찾고자 했다. 이를 해결하기 위해 처음엔 해상도를 낮추는 방식을 생각했었다. 여러 가지 해결책을 찾아보던 중 webp라는 확장자를 알게 되었고, 이를 프로젝트에 적용한 내용을 정리해보려 한다. Webp 확장자란?WebP는 구글에서 개발한 이미지 파일 형식으로, JPEG, PNG, GIF와 같은 기존 이미지 형식에 비해 더 높은 압축률을 제공한다.WebP는 두 가지의 압축 방식을 대표적으로 제공한다.손실 압축 (Lossy Compression): JPEG..

Spring Security 기본 개념공부 5. (Cors, Csrf란?)

Section 6. Cors란? Cross Origin Resource Sharing의 약자로 두 가지 이상의 다른 출처에서 자원을 공유한다는 의미이다. 두가지 이상의 다른 출처란 프론트와 백을 의미한다. 출처란 무엇일까?: http 프로토콜, 도메인주소(url), 포트번호의 조합을 출처라고 볼 수 있다. 셋중 하나라도 다르면 출처가 다르다로 할 수 있다. 이렇게 서로다른 출처에서 자원의 공유가 일어나면 최신 브라우저들은 모두 소통을 차단하도록 설정되어 있다. 그 이유는 이렇게 다른 출처에서 들어오는 요청을 차단함으로서 많은 보안적 이점을 가져갈 수 있기 때문이다. 그렇다면 우리는 웹을 개발할때 어떻게 해야할까? 첫 번째 방법은 @RestController 어노테이션 밑에 @CrossOrigin이라는 어..

Spring Security 기본개념 공부 4.

Section 3. UserDetailsService 커스텀 이제 jdbcUserDetailsManager가 아닌 우리만의 로직으로 UserDetails를 정의해보겠다.! 우선 LoadUserByUsername 메소드를 직접 작성해야한다. 그러기 위해 데이터베이스에서 유저 정보를 가져와 UserDetails 객체로 만들어 반환해주는 로직을 작성해줘야한다. public class EazyBankUserDetails implements UserDetailsService { 다음과 같이 UserDetailsService를 구현하여 만든다. @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundExceptio..