전체 글21 로그인 기능 구현(2) - JWT(Json Web Token) 지난번 글에서는 로그인 기능 구현을 위해 Cookie와 Session을 이용해 보았다.하지만 Cookie & Session을 이용하였을 때에도 필수적으로 저장소가 필요하기 때문에 사용자가 많아 질 경우 문제가 생길 수 있다. 또한 여러 대의 서버를 이용하였을 때에도 해당 Session 정보를 가져오는 데에 문제가 생길 수 있다. 그렇다면 이런 문제를 해결하기 위한 또 다른 로그인 방식 중 하나인 JWT(Json Web Token)에 대해 알아보자.1. JWT(Json Web Token) 이란? … JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA. When tok.. 2024. 8. 9. 로그인 기능 구현(1) - Cookie & Session HTTP는 Stateless(무상태)한 성격을 가지고 있다. Stateless한 성격 때문에 요청을 할 때마다 응답에 필요한 정보를 매 번 보내줘야 한다. 로그인과 같은 기능 또한 따지고 보면 매 번 요청을 보낸 후 인증을 받아야 하는 것이다. 하지만 우리는 로그인과 같은 기능을 유지하기 위해 Cookie, Session, JWT(Json Web Token)을 이용한 방법을 이용하여 로그인을 유지한다. 이번 포스팅에서는 Cookie와 Session을 이용한 로그인을 구현하고 알아보도록 하자.1. Cookie쿠키를 이용한 방법의 경우, 요청을 보낼 때 데이터를 담아 보내고 응답을 받아 올 때 저장된 쿠키를 응답받아 쿠키 저장소에 저장한다. 이 후, 해당 쿠키의 값이 필요할 때 쿠키 저장소에서 꺼내 사용할 .. 2024. 8. 8. LinkedList가 과연 ArrayList보다 빠를까? ArrayList와 LinkedList의 수행 속도를 비교하는 테스트 코드를 작성하면서 예상하지 못한 결과가 나와 당황했다.물론 어떤 결과가 나오겠지라는 예상을 하는 건 좋지 않지만 ArrayList와 LinkedList가 어떤 경우에 쓰여야 하고 어떨 때 빠를까?라는 이론은 익히 많은 블로그에 작성된 글이 많아 다들 알고 있을거라 생각한다. 그렇다면 예상하지 못한 결과라는 건 어떤 거였을까? 바로 말하자면, 인덱스의 중간에 데이터를 추가하는 경우 보통 LinkedList가 ArrayList보다 수행 속도가 빠르다라고 이해하고 있다.하지만, 여러 테스트 코드를 작성 해본 결과 추가되는 인덱스의 위치에 따라 수행 속도의 차이가 났다. 앞서 포스팅에서 인덱스 중간에 데이터를 삽입할 경우 ArrayList보다.. 2024. 8. 7. Collection - List 맛보기(수행속도 비교) 바로 앞 포스팅에서는 Collection 중, ArrayList와 LinkedList의 내부 구조를 뜯어보았다.이번 글에서는 ArrayList와 LinkedList의 수행 속도를 비교해 볼 것이다.1. add() 실행 속도 비교데이터를 추가하는 경우도 2가지로 나누어 비교해 보았다.순차적으로 데이터를 추가할 경우중간에 데이터를 추가할 경우1-1. 순차적으로 데이터를 추가할 경우설명하기 앞서 해당 테스트 코드는 정확한 속도 비교를 위해 nanoTime()으로 측정되었다.public void speedTestCompareToArrayListAndLinkedListInOrderAdd() { /** * list에 1000개의 데이터를 순차적으로 추가 */ long timeOfArrayLis.. 2024. 8. 6. Collection - List 물고 뜯기(내부구조 파헤치기) Collection의 개념을 재정의 하는 시간을 가지면서, 기본적인 개념은 알겠으나 List 인터페이스의 구현체인 ArrayList와 LinkedList를 언제 어떤 목적으로 써야하는지에 대해 명확한 기준을 세우기 위해 ArrayList와 LinkedList의 내부 구조를 뜯어보기로 하였다. 1. 우린 List야우선 ArrayList와 LinkedList가 가지는 List의 공통적인 속성에 대해서 알아보자.List는 순서를 가지고 있다.add(), addAll(), remove(), removeAll(), contains() 등의 Collection 인터페이스에서 구현한 메소드를 가지고 있다.get()의 경우 List 인터페이스에서 구현한 메소드이다.크기를 나타내는 메소드는 size()이다.이번 포스팅에.. 2024. 8. 5. finally문에 return 할까? 말까? 예외 처리를 해주는 try_catch_finally문에서 각 각 return문을 쓰면 어떤 데이터가 return 될까? 테스트 코드를 통해 확인해보기 전에 내가 생각한 예상 결과는 어떤 경우에도 finally문은 실행되기 때문에 finally문에 retrun문이 있다면 최종적으로 return되는 값은 finally문 안의 값이 아닐까?라고 생각했다. 그렇다면 실제 코드를 통해 어떤 결과가 나오는지 알아보도록 하자.테스트 코드는 아래의 시나리오와 같이 작성하였다.1. finally문 여부에 따른 테스트 코드 출력된 값을 확인해보면 배열의 크기보다 큰 인덱스에 데이터를 추가하니 예상한 ArrayIndexOutOfBoundsException이 발생하면서 catch문의 return 값을 받아오는 것을 확인할 수.. 2024. 8. 4. 이전 1 2 3 4 다음