본문 바로가기

분류 전체보기51

JWT (2) 스프링에서 JWT 사용하기 Gradle 의존성 추가 implementation 'com.auth0:java-jwt:4.2.1' https://mvnrepository.com/artifact/com.auth0/java-jwt/4.2.1 JWT 관련 설정 파일 생성 application-jwt.yml jwt: secretKey: access: expiration: 3600000 # 1시간 header: Authorization refresh: expiration: 1209600000 # 2주 header: Authorization-refresh jwt.secretKey 서버가 가지고 있는 개인키 암호화 알고리즘으로 HS512를 사용할 것이기 때문에, 64 bytes 이상의 영숫자 조합으로 아무렇게 작성 jwt.access.expira.. 2023. 5. 31.
JWT (1) 개념 정리 JWT 란? JSON Web Token의 약자로, 인증에 필요한 정보들을 암호화시킨 JSON TOKEN을 의미한다. JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화한 것이고, 토큰 내부에는 개인키를 통한 전자 서명이 포함된다. JWT를 통한 인증 과정 클라이언트는 로그인 아이디와 패스워드를 입력하여 서버에 로그인 요청 서버에서 서명된 JWT 토큰을 생성하여 응답 헤더에 저장하여 클라이언트에게 반환 클라이언트는 응답으로 반환된 JWT 토큰을 사용하여 요청마다 Http Header에 JWT 토큰을 담아서 요청 서버에서는 Http Request Header의 JWT를 검증하여 토큰이 유효한지 검증 후 요청에 맞는 응답 반환 JWT의 구조 Header 보통 토큰의 타입이나 전.. 2023. 5. 31.
[Spring] 벌크 연산 벌크 연산이란 여려 데이터를 한 번에 수정하거나 삭제하는 방법이다. 실제 벌크 연산을 하지 않을 경우, 어떤 성능적 이슈가 생기는지 예시를 통해서 알아보자. @Entity @AllArgsConstructor @NoArgsConstructor class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age; public void getOlder() { this.age += 1; } } Member member1 = new Member("john", 15); Member member2 = new Member("tom", 19); Member membe.. 2023. 5. 15.
[Spring] RestTemplate 싱글톤 등록 및 Connection Pool 설정 지난 프로젝트인 "QR 코드 기반 간편 주문 서비스"를 리팩토링하는 과정에서 배운 점에 대해서 기록하려고 한다. 간편 결제를 위해 KakaoPay 단건 결제 API를 사용하는 KakaoPayService 코드를 리팩토링 하는 과정에서 RestTemplate 객체를 생성하는 부분에 경고줄이 있다는 것을 확인하였다. 경고를 읽어보면 단순 중복된 코드라 쓰여있어 대수롭게 넘길려 했다. public String kakaoPayReady(Long orderId) { RestTemplate restTemplate = new RestTemplate(); Order order = orderService.findOrderById(orderId); ... } @Transactional public KakaoPayAppro.. 2023. 5. 14.
Docker - 서버관리의 역사 개발자가 개발을 잘하는 것은 당연히 중요하다. 하지만 SW마에스트로에서 여러 멘토님들께 멘토링을 들으면서, 개발을 잘하는 것도 중요하지만, 자신이 개발하고자 하는 애플리케이션의 목적과 요구사항에 맞춰서 적합한 기술을 선택하는 것에 대한 중요성을 많이 느낄 수 있었다. 이는 애플리케이션의 성능, 안정성, 보안성 등 비기능적인 요소를 디벨롭할 수 있도록 도와준다. 소프트웨어 마에스트로에서 진행하는 프로젝트에서 기능 개발에만 몰두하지 않고, 개발하기 전에 여러 가지 많은 고민과 설계를 바탕으로 개발을 하여, 소프트웨어 품질을 높이기 위해 많은 도전을 할 예정이다. 서론이 길었지만, 최근 Docker 멘토링에서 서버관리의 역사에 대해서 배웠다. 기술의 역사를 공부하는 과정에서 해당 기술이 왜 등장했는지에 대해서.. 2023. 5. 11.
[Java] 일급 컬렉션 소프트웨어 마에스트로 14기에 합격된 이후에 가장 먼저 하게 된 것은 백엔드 스터디에 참여한 것이었다.본격적인 스터디를 하기전에 스터디원들과 함께 우테코 프리코스를 진행하고 코드리뷰를 진행하였다. 그 과정을 통해 일급 컬렉션이라는 것을 알게되었다.생소한 용어였고, 처음 접해보았지만 일급 컬렉션을 사용하면 할수록 일급 컬렉션을 사용함으로써 얻을 수 있는 장점들에 대해서 느낄 수 있었다. 따라서, 해당 포스팅을 통해 일급 컬렉션에 대해서 정리하려고 한다. 먼저, 일급 컬렉션이란 Java Collection을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태를 말한다. List numbers = new ArrayList(); 위의 코드를 아래와 같이 Wrapping 하는 것이다. public cla.. 2023. 5. 7.